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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x4eac74]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
mov ebx, ecx
movss dword [esp + 0x24], xmm3
push esi
push edi
movss dword [esp + 0x24], xmm2
cmp dword [ebx + 0x1a0], 0xc8
movss dword [esp + 0x10], xmm1
jge 0x46f71d
mov eax, dword [ebx + 0x19c]
lea edx, [esp + 0xc]
push 0
push edx
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x2c]
test eax, eax
js 0x46f71d
movss xmm4, dword [esp + 0x2c]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [0x4e00dc]
subss xmm0, xmm4
mov eax, dword [ebx + 0x17c]
cdq
and edx, 3
movss xmm3, dword [esp + 0x10]
movss xmm2, dword [esp + 0x24]
divss xmm0, xmm1
lea edi, [edx + eax]
sar edi, 2
neg edi
mov eax, edi
addss xmm2, xmm4
cvttss2si ecx, xmm0
movss xmm0, dword [esp + 0x24]
subss xmm0, xmm4
sub eax, ecx
cdq
mov ecx, 0
sub eax, edx
sar eax, 1
divss xmm2, xmm1
cmovns ecx, eax
mov eax, dword [ebx + 0x180]
mov dword [esp + 0x40], ecx
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
mov eax, esi
neg eax
divss xmm0, xmm1
cvttss2si ecx, xmm0
movaps xmm0, xmm3
addss xmm0, xmm4
sub eax, ecx
cdq
mov ecx, 0
sub eax, edx
sar eax, 1
divss xmm0, xmm1
cmovns ecx, eax
mov dword [esp + 0x18], ecx
cvttss2si ecx, xmm0
sub edi, ecx
mov eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, 0x3f
sar edi, 1
cmp edi, eax
cvttss2si ecx, xmm2
cmovg edi, eax
neg esi
mov dword [esp + 0x3c], edi
sub esi, ecx
mov ecx, 0x3f
mov eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
cmp eax, 0x3f
cmovg eax, ecx
mov dword [esp + 0x48], eax
cmp edx, eax
jg 0x46f711
movss xmm6, dword [0x4dfe90]
movss xmm7, dword [0x4dfea8]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
cmp ecx, edi
jg 0x46f704
lea eax, [edx*8]
add eax, 8
lea edi, [ecx*8]
mov dword [esp + 0x30], eax
mov eax, ecx
shl eax, 4
add eax, edx
mov dword [esp + 0x14], edi
lea eax, [eax + eax*4]
lea eax, [eax + 0x70]
lea edx, [ebx + eax*4]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov ecx, 3
mov esi, 1
sub ecx, dword [edx]
mov edx, dword [esp + 0x18]
shl esi, cl
mov dword [esp + 0x28], esi
lea edx, [edx*8]
mov dword [esp + 0x1c], edx
cmp edx, eax
jg 0x46f6d0
mov ecx, dword [esp + 0x14]
nop
lea eax, [ecx + 8]
mov edi, ecx
cmp ecx, eax
jg 0x46f6ba
movaps xmm5, xmm4
addss xmm5, xmm4
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebx + 0x1a0]
movaps xmm4, xmm3
mov ecx, dword [ebx + 0x17c]
add ecx, edi
add edx, dword [ebx + 0x180]
lea eax, [eax + eax*2]
mov dword [esp + 0x20], eax
lea eax, [ecx + esi]
lea eax, [eax + eax*4]
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
subss xmm4, xmm0
divss xmm4, xmm5
addss xmm4, xmm7
comiss xmm4, dword [0x4dfee0]
ja 0x46f69f
lea eax, [ecx + ecx*4]
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
subss xmm3, xmm0
xorps xmm0, xmm0
divss xmm3, xmm5
addss xmm3, xmm7
comiss xmm0, xmm3
ja 0x46f699
movss xmm2, dword [esp + 0x24]
lea eax, [edx + esi]
lea eax, [eax + eax*4]
movaps xmm1, xmm2
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
subss xmm1, xmm0
divss xmm1, xmm5
addss xmm1, xmm7
comiss xmm1, dword [0x4dfee0]
ja 0x46f699
lea eax, [edx + edx*4]
add eax, eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
subss xmm2, xmm0
xorps xmm0, xmm0
divss xmm2, xmm5
addss xmm2, xmm7
comiss xmm0, xmm2
ja 0x46f699
mov ecx, dword [esp + 0x28]
add esi, edi
cmp esi, 0x7e
mov eax, 0x7e
cmovg esi, eax
add ecx, dword [esp + 0x1c]
cmp ecx, eax
cmovg ecx, eax
imul edx, dword [esp + 0x1c], 0x81
imul ecx, ecx, 0x81
lea eax, [edx + edi]
lea eax, [eax + eax*8]
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x54], eax
lea eax, [ecx + edi]
lea eax, [eax + eax*8]
movq qword [esp + 0x4c], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x6c], eax
lea eax, [edx + esi]
lea eax, [eax + eax*8]
mov edx, dword [esp + 0x20]
movq qword [esp + 0x64], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x60], eax
lea eax, [ecx + esi]
lea eax, [eax + eax*8]
movq qword [esp + 0x58], xmm0
movq xmm0, qword [ebx + eax*4 + 0x1c50]
lea ecx, [edx + edx*8]
mov eax, dword [ebx + eax*4 + 0x1c58]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
movq qword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [eax + ecx*4 + 0x1c], xmm3
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x20], xmm2
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x18], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x10], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x14], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x54]
movss dword [eax + ecx*4 + 8], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [0x4dfe30]
movss dword [eax + ecx*4 + 4], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x58]
movss dword [eax + ecx*4 + 0x40], xmm4
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x44], xmm2
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x3c], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x30], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x34], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x38], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x24], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x60]
movss dword [eax + ecx*4 + 0x2c], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, dword [0x4dfe30]
mov eax, dword [esp + 0xc]
movss dword [esp + 0x44], xmm0
movss dword [eax + ecx*4 + 0x28], xmm0
mov eax, dword [esp + 0xc]
lea ecx, [edx + edx*8]
movss xmm0, dword [esp + 0x64]
movss dword [eax + ecx*4 + 0x64], xmm3
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x68], xmm1
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x60], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x54], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x58], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x5c], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x48], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x6c]
movss dword [eax + ecx*4 + 0x50], xmm0
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [0x4dfe30]
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x4c], xmm0
inc dword [ebx + 0x1a0]
mov eax, dword [ebx + 0x1a0]
movss dword [esp + 0x20], xmm0
cmp eax, 0xc8
jge 0x46f711
lea edx, [eax + eax*2]
movss xmm0, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
lea ecx, [edx + edx*8]
movss dword [eax + ecx*4 + 0x1c], xmm4
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x20], xmm1
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x18], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x10], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x14], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x78]
movss dword [eax + ecx*4 + 8], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x74]
addss xmm0, dword [0x4dfe30]
movss dword [eax + ecx*4 + 4], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x64]
movss dword [eax + ecx*4 + 0x40], xmm3
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x44], xmm1
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x3c], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x30], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x34], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x38], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x24], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x6c]
movss dword [eax + ecx*4 + 0x2c], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x20]
movss dword [eax + ecx*4 + 0x28], xmm0
lea ecx, [edx + edx*8]
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x58]
movss dword [eax + ecx*4 + 0x64], xmm4
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x68], xmm2
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x60], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x54], 0
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x58], 0x3f800000
mov eax, dword [esp + 0xc]
mov dword [eax + ecx*4 + 0x5c], 0
mov eax, dword [esp + 0xc]
movss dword [eax + ecx*4 + 0x48], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x60]
movss dword [eax + ecx*4 + 0x50], xmm0
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x44]
movss dword [eax + ecx*4 + 0x4c], xmm0
inc dword [ebx + 0x1a0]
cmp dword [ebx + 0x1a0], 0xc8
jge 0x46f711
mov esi, dword [esp + 0x28]
movss xmm3, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add edi, esi
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 8]
cmp edi, eax
jle 0x46f200
movss xmm4, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add edx, esi
mov dword [esp + 0x1c], edx
cmp edx, eax
jle 0x46f1e0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
add edi, 8
mov edx, dword [esp + 0x38]
inc ecx
add edx, 0x140
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], edi
cmp ecx, dword [esp + 0x3c]
jle 0x46f1b1
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
inc edx
mov dword [esp + 0x18], edx
cmp edx, eax
jle 0x46f170
mov eax, dword [ebx + 0x19c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004958e0
mov esp, ebp
pop ebp
ret