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

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x38]
push ebp
push esi
push edi
push 0x34
push 0
push ebx
mov dword [esp + 0x20], 0xffffff9d
call fcn.00434d70
mov edi, dword [esp + 0x58]
mov eax, dword [edi]
mov dword [ebx + 0x24], eax
movd xmm0, dword [edi]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58feb8]
cvtps2pd xmm0, xmm0
call fcn.0043d200
movsd qword [esp + 0x3c], xmm0
movsd xmm0, qword [0x511ec8]
call fcn.0043d200
movsd xmm1, qword [esp + 0x3c]
add esp, 4
divsd xmm1, xmm0
addsd xmm1, qword [0x511ee0]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
fstp qword [esp]
call fcn.0043ca10
movd xmm1, dword [esp + 0x5c]
mov esi, 1
mov ebp, dword [esp + 0x58]
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
subsd xmm0, qword [0x58a238]
movd xmm2, ebp
cvtdq2pd xmm2, xmm2
cvttsd2si ecx, xmm0
cvtdq2ps xmm0, xmm1
mov dword [ebx + 0x20], ecx
inc ecx
shl esi, cl
movsd qword [esp + 0x38], xmm2
mulss xmm0, dword [0x58fe4c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x511ee0]
divsd xmm0, xmm2
call fcn.0043d200
mulsd xmm0, qword [0x58fe78]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
subsd xmm0, qword [0x58fe98]
mulsd xmm0, xmm1
movd xmm1, dword [edi]
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movd xmm1, dword [esp + 0x5c]
cvtdq2ps xmm1, xmm1
cvttsd2si edi, xmm0
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
mov dword [ebx + 0x1c], edi
addss xmm0, dword [0x58fe4c]
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x511ee0]
divsd xmm0, qword [esp + 0x38]
call fcn.0043d200
mulsd xmm0, qword [0x58fe78]
movd xmm1, esi
lea esi, [ebp*4]
cvtdq2pd xmm1, xmm1
push esi
subsd xmm0, qword [0x58fe98]
mulsd xmm0, xmm1
addsd xmm0, qword [0x511ee0]
cvttsd2si eax, xmm0
sub eax, edi
inc eax
mov dword [ebx + 0x28], eax
call fcn.0043b08f
push esi
mov dword [ebx + 0x10], eax
call fcn.0043b08f
push esi
mov dword [ebx + 0x14], eax
call fcn.0043b08f
mov dword [ebx + 0x18], eax
add esp, 0x14
mov eax, dword [esp + 0x48]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x54]
mov dword [ebx], ebp
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], 0x3f800000
cmp eax, 0x6590
jge 0x41f6ca
mov dword [ebx + 0x30], 0
jmp 0x41f6e8
cmp eax, 0x9470
jge 0x41f6da
mov dword [ebx + 0x30], 0x3f70a3d7
jmp 0x41f6e8
cmp eax, 0xb3b0
jle 0x41f6e8
mov dword [ebx + 0x30], 0x3fa33333
xor esi, esi
xor edi, edi
nop dword [eax]
xorps xmm0, xmm0
lea eax, [edi + 1]
cvtsi2sd xmm0, eax
mov dword [esp + 0x4c], eax
mulsd xmm0, qword [0x58fe68]
subsd xmm0, qword [0x511ec8]
addsd xmm0, qword [0x58fe98]
mulsd xmm0, qword [0x58fe70]
call fcn.0043e2d0
addsd xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esp + 0x54]
sub esp, 8
mulsd xmm0, qword [esp + 0x38]
divsd xmm0, xmm1
addsd xmm0, qword [0x511ee0]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.0043ca10
movss xmm1, dword [edi*4 + 0x58a310]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si ecx, qword [esp + 0x28]
cmp esi, ecx
jge 0x41f887
movss xmm2, dword [edi*4 + 0x58a314]
mov eax, ecx
movsd xmm4, qword [0x58feb0]
subss xmm2, xmm1
sub eax, esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
cmp eax, 4
jl 0x41f860
cmp esi, ebp
jge 0x41f887
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movaps xmm3, xmm2
addsd xmm0, xmm4
addss xmm3, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + esi*4], xmm0
lea eax, [esi + 1]
cmp eax, ebp
jge 0x41fbf1
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movaps xmm1, xmm2
addsd xmm0, xmm4
addss xmm1, xmm3
cvtpd2ps xmm0, xmm0
movss dword [eax + esi*4 + 4], xmm0
lea eax, [esi + 2]
cmp eax, ebp
jge 0x41fbf1
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movaps xmm3, xmm2
addsd xmm0, xmm4
addss xmm3, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + esi*4 + 8], xmm0
lea eax, [esi + 3]
cmp eax, ebp
jge 0x41fbf1
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movaps xmm1, xmm2
addsd xmm0, xmm4
addss xmm1, xmm3
cvtpd2ps xmm0, xmm0
movss dword [eax + esi*4 + 0xc], xmm0
add esi, 4
lea eax, [ecx - 3]
mov edx, esi
cmp esi, eax
jl 0x41f7a2
cmp edx, ecx
jge 0x41f887
nop word [eax + eax]
cmp esi, ebp
jge 0x41f887
mov eax, dword [ebx + 0x10]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [eax + esi*4], xmm0
inc esi
movaps xmm0, xmm2
addss xmm1, xmm0
cmp esi, ecx
jl 0x41f860
mov edi, dword [esp + 0x4c]
cmp edi, 0x57
jl 0x41f6f0
cmp esi, ebp
jge 0x41f8ef
mov eax, ebp
sub eax, esi
cmp eax, 4
jl 0x41f8e0
lea edx, [ebp - 3]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + esi*4 - 4]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + esi*4]
mov dword [ecx + esi*4 + 4], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + esi*4 + 4]
mov dword [ecx + esi*4 + 8], eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + esi*4 + 8]
mov dword [ecx + esi*4 + 0xc], eax
add esi, 4
mov eax, esi
cmp esi, edx
jl 0x41f8a4
cmp eax, ebp
jge 0x41f8ef
nop dword [eax + eax]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + esi*4 - 4]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
jl 0x41f8e0
mov dword [esp + 0x4c], 0
test ebp, ebp
jle 0x41fbf8
mov eax, dword [esp + 0x54]
lea ecx, [ebp*2]
cdq
idiv ecx
mov ecx, eax
imul eax, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x20], eax
xor edx, edx
lea edi, [eax + 1]
imul eax, edx
xorps xmm0, xmm0
mov esi, ecx
imul esi, edx
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x58fe40]
cvtps2pd xmm0, xmm0
call fcn.0043dfe0
mulsd xmm0, qword [0x58fe90]
xorps xmm1, xmm1
cvtsi2ss xmm1, esi
movsd qword [esp + 0x28], xmm0
mulss xmm1, dword [0x58fe48]
cvtps2pd xmm0, xmm1
call fcn.0043dfe0
mulsd xmm0, qword [0x58fea8]
mov edx, dword [esp + 0x48]
movsd xmm1, qword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
addsd xmm1, xmm0
add eax, dword [edx + 0x78]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mulss xmm0, dword [0x58fe44]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x28], xmm0
cmp eax, ecx
jge 0x41fa75
subss xmm0, dword [edx + 0x70]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
imul ebx, ebp
movss dword [esp + 0x24], xmm0
nop dword [eax + eax]
mov esi, dword [esp + 0x1c]
mov eax, ebx
imul eax, ebp
xorps xmm0, xmm0
imul esi, ebp
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x58fe40]
cvtps2pd xmm0, xmm0
call fcn.0043dfe0
mulsd xmm0, qword [0x58fe90]
xorps xmm1, xmm1
cvtsi2ss xmm1, esi
movsd qword [esp + 0x14], xmm0
mulss xmm1, dword [0x58fe48]
cvtps2pd xmm0, xmm1
call fcn.0043dfe0
mulsd xmm0, qword [0x58fea8]
mov edx, dword [esp + 0x48]
movsd xmm1, qword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mulss xmm0, dword [0x58fe44]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x24]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm1
jbe 0x41fa69
mov eax, dword [edx + 0x78]
inc ebp
add ebx, dword [esp + 0x10]
add eax, ebp
cmp eax, ecx
jl 0x41f9d0
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x50]
cmp edi, ebp
jg 0x41fb37
add ecx, dword [edx + 0x7c]
mov eax, dword [esp + 0x10]
mov ebx, eax
mov dword [esp + 0x24], ecx
imul ebx, edi
nop dword [eax]
cmp edi, ecx
jl 0x41fb28
mov esi, dword [esp + 0x1c]
mov eax, ebx
imul eax, edi
xorps xmm0, xmm0
imul esi, edi
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x58fe40]
cvtps2pd xmm0, xmm0
call fcn.0043dfe0
mulsd xmm0, qword [0x58fe90]
xorps xmm1, xmm1
cvtsi2ss xmm1, esi
movsd qword [esp + 0x38], xmm0
mulss xmm1, dword [0x58fe48]
cvtps2pd xmm0, xmm1
call fcn.0043dfe0
mulsd xmm0, qword [0x58fea8]
mov eax, dword [esp + 0x48]
movsd xmm1, qword [esp + 0x38]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mulss xmm0, dword [0x58fe44]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x28]
addss xmm0, dword [eax + 0x74]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm1
jbe 0x41fb33
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
inc edi
add ebx, eax
cmp edi, ebp
jle 0x41fa90
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebx + 0x18]
shl ecx, 0x10
add ecx, 0xfffeffff
add ecx, edi
mov dword [eax + edx*4], ecx
inc edx
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], eax
cmp edx, ebp
jl 0x41f925
movsd xmm1, qword [0x511ee0]
xor esi, esi
nop word [eax + eax]
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
addss xmm0, dword [0x58fe4c]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esp + 0x54]
mulsd xmm0, xmm1
divsd xmm0, qword [esp + 0x30]
call fcn.0043d200
mov ecx, dword [ebx + 0x20]
mov eax, 1
mulsd xmm0, qword [0x58fe78]
inc ecx
shl eax, cl
xorps xmm1, xmm1
subsd xmm0, qword [0x58fe98]
cvtsi2sd xmm1, eax
mov eax, dword [ebx + 0x14]
mulsd xmm0, xmm1
movsd xmm1, qword [0x511ee0]
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov dword [eax + esi*4], ecx
inc esi
cmp esi, ebp
jl 0x41fb80
jmp 0x41fc00
mov esi, eax
jmp 0x41f887
movsd xmm1, qword [0x511ee0]
mov eax, dword [esp + 0x48]
sub esp, 8
movss xmm0, dword [eax + 0x1c]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x18]
add eax, 0x24
movss dword [esp], xmm0
movd xmm0, dword [esp + 0x5c]
cvtdq2pd xmm0, xmm0
push ebp
push ecx
mulsd xmm0, xmm1
divsd xmm0, qword [esp + 0x40]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
call fcn.00420ef0
push 0xc
mov dword [ebx + 8], eax
call fcn.0043b08f
add esp, 0x18
mov dword [ebx + 0xc], eax
xor esi, esi
lea edi, [ebp*4]
nop dword [eax]
push edi
call fcn.0043b08f
mov ecx, dword [ebx + 0xc]
add esp, 4
mov dword [esi + ecx], eax
add esi, 4
cmp esi, 0xc
jl 0x41fc60
xor esi, esi
test ebp, ebp
jle 0x41fda9
movsd xmm1, qword [esp + 0x30]
addsd xmm1, xmm1
movsd qword [esp + 0x30], xmm1
xorps xmm0, xmm0
xorps xmm2, xmm2
cvtsi2sd xmm2, dword [esp + 0x54]
cvtsi2sd xmm0, esi
addsd xmm0, qword [0x511ee0]
mulsd xmm0, xmm2
divsd xmm0, xmm1
call fcn.0043d200
mulsd xmm0, qword [0x58fe78]
xorps xmm1, xmm1
mov eax, dword [ebx + 4]
movss xmm3, dword [0x58febc]
movsd xmm2, qword [0x58a238]
subsd xmm0, qword [0x58fe98]
addsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
maxss xmm1, xmm0
xorps xmm0, xmm0
minss xmm3, xmm1
cvttss2si ecx, xmm3
movss xmm1, dword [eax + ecx*4 + 0x84]
cvtsi2ss xmm0, ecx
cvtps2pd xmm1, xmm1
subss xmm3, xmm0
cvtps2pd xmm0, xmm3
subsd xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [eax + ecx*4 + 0x88]
mov eax, dword [ebx + 0xc]
mulsd xmm1, xmm2
mov eax, dword [eax]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [eax + esi*4], xmm0
movaps xmm0, xmm3
mov eax, dword [ebx + 4]
movss xmm1, dword [eax + ecx*4 + 0xc8]
mulss xmm0, dword [eax + ecx*4 + 0xcc]
mov eax, dword [ebx + 0xc]
cvtps2pd xmm1, xmm1
mov eax, dword [eax + 4]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [eax + esi*4], xmm0
mov eax, dword [ebx + 4]
movss xmm1, dword [eax + ecx*4 + 0x10c]
mulss xmm3, dword [eax + ecx*4 + 0x110]
mov eax, dword [ebx + 0xc]
cvtps2pd xmm1, xmm1
mov eax, dword [eax + 8]
cvtps2pd xmm0, xmm3
mulsd xmm1, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movsd xmm1, qword [esp + 0x30]
movss dword [eax + esi*4], xmm0
inc esi
cmp esi, ebp
jl 0x41fc91
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret