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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x34
push 0
push esi
mov dword [esp + 0x44], 0xffffff9d
mov dword [esp + 0x48], 1
call fcn.004a6ff0
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov dword [esi + 0x24], eax
fild dword [edi]
add esp, 0xc
fmul qword [0x4c5da0]
call fcn.004ab120
fstp qword [esp + 0x70]
fld qword [0x4c6040]
call fcn.004ab120
fdivr qword [esp + 0x70]
sub esp, 8
fadd qword [0x4c5b80]
fstp qword [esp]
call fcn.004a64f0
fsub qword [0x4c5bf8]
add esp, 8
call fcn.004a7d20
fild dword [ebp + 0x18]
mov ebx, eax
mov dword [esi + 0x20], ebx
fstp dword [esp + 0x50]
fild dword [ebp + 0x14]
fst qword [esp + 0x68]
fld dword [esp + 0x50]
fmul qword [0x549240]
fmul qword [0x4c5b80]
fdivrp st(1)
call fcn.004ab120
fmul qword [0x5491d8]
lea ecx, [ebx + 1]
mov edx, 1
fsub qword [0x5491e8]
shl edx, cl
mov dword [esp + 0x5c], edx
fild dword [esp + 0x5c]
fmulp st(1)
fisub dword [edi]
call fcn.004a7d20
fild dword [ebp + 0x14]
mov edi, eax
mov dword [esi + 0x1c], edi
fadd qword [0x549240]
fmul dword [esp + 0x50]
fmul qword [0x4c5b80]
fdiv qword [esp + 0x68]
call fcn.004ab120
fmul qword [0x5491d8]
lea ecx, [ebx + 1]
mov eax, 1
fsub qword [0x5491e8]
shl eax, cl
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fmulp st(1)
fadd qword [0x4c5b80]
call fcn.004a7d20
mov ebx, dword [ebp + 0x14]
sub eax, edi
inc eax
lea edi, [ebx*4]
push edi
mov dword [esi + 0x28], eax
call fcn.004a7dcb
push edi
mov dword [esi + 0x10], eax
call fcn.004a7dcb
push edi
mov dword [esi + 0x14], eax
call fcn.004a7dcb
add esp, 0xc
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [0x4c5c5c]
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 4], ecx
mov dword [esi], ebx
mov dword [esi + 0x2c], eax
movss dword [esi + 0x30], xmm0
cmp eax, 0x6590
jge 0x46a125
xorps xmm0, xmm0
jmp 0x46a145
cmp eax, 0x9470
jge 0x46a136
movss xmm0, dword [0x54923c]
jmp 0x46a145
cmp eax, 0xb3b0
jle 0x46a14a
movss xmm0, dword [0x549238]
movss dword [esi + 0x30], xmm0
xor edi, edi
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov dword [esp + 0x34], edi
movsd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fmul qword [0x5491d0]
fsub qword [0x4c6040]
fadd qword [0x5491e8]
fmul qword [0x5491e0]
call fcn.004ab26c
fadd st(0), st(0)
sub esp, 8
fmul qword [esp + 0x70]
fdiv qword [esp + 0x78]
fadd qword [0x4c5b80]
fstp qword [esp]
call fcn.004a64f0
add esp, 8
call fcn.004a7d20
mov edx, dword [esp + 0x34]
movss xmm0, dword [edx*4 + 0x543688]
cmp edi, eax
jge 0x46a31e
movss xmm1, dword [edx*4 + 0x54368c]
cvtps2pd xmm2, xmm0
cvtps2pd xmm1, xmm1
subsd xmm1, xmm2
mov ecx, eax
sub ecx, edi
xorps xmm2, xmm2
cvtsi2ss xmm2, ecx
cvtps2pd xmm2, xmm2
divsd xmm1, xmm2
movsd xmm2, qword [0x4c5c20]
cvtpd2ps xmm1, xmm1
cmp ecx, 4
jl 0x46a2d6
lea ecx, [edi + 2]
lea esp, [esp]
cmp edi, ebx
jge 0x46a31e
mov edx, dword [esi + 0x10]
cvtps2pd xmm3, xmm0
addsd xmm3, xmm2
cvtpd2ps xmm3, xmm3
movss dword [edx + edi*4], xmm3
xorps xmm3, xmm3
cvtps2pd xmm0, xmm0
cvtss2sd xmm3, xmm1
addsd xmm3, xmm0
lea edx, [ecx - 1]
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
cmp edx, ebx
jge 0x46a313
mov edx, dword [esi + 0x10]
cvtps2pd xmm3, xmm0
addsd xmm3, xmm2
cvtpd2ps xmm3, xmm3
movss dword [edx + edi*4 + 4], xmm3
xorps xmm3, xmm3
cvtps2pd xmm0, xmm0
cvtss2sd xmm3, xmm1
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
cmp ecx, ebx
jge 0x46a316
mov edx, dword [esi + 0x10]
cvtps2pd xmm3, xmm0
addsd xmm3, xmm2
cvtpd2ps xmm3, xmm3
movss dword [edx + edi*4 + 8], xmm3
xorps xmm3, xmm3
cvtps2pd xmm0, xmm0
cvtss2sd xmm3, xmm1
addsd xmm3, xmm0
lea edx, [ecx + 1]
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
cmp edx, ebx
jge 0x46a31b
mov edx, dword [esi + 0x10]
cvtps2pd xmm3, xmm0
addsd xmm3, xmm2
cvtpd2ps xmm3, xmm3
movss dword [edx + edi*4 + 0xc], xmm3
xorps xmm3, xmm3
cvtps2pd xmm0, xmm0
cvtss2sd xmm3, xmm1
addsd xmm3, xmm0
add edi, 4
lea edx, [eax - 3]
add ecx, 4
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
cmp edi, edx
jl 0x46a200
cmp edi, eax
jge 0x46a31e
lea ebx, [ebx]
cmp edi, ebx
jge 0x46a31e
mov ecx, dword [esi + 0x10]
cvtps2pd xmm3, xmm0
addsd xmm3, xmm2
cvtpd2ps xmm3, xmm3
movss dword [ecx + edi*4], xmm3
xorps xmm3, xmm3
cvtps2pd xmm0, xmm0
cvtss2sd xmm3, xmm1
addsd xmm3, xmm0
inc edi
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
cmp edi, eax
jl 0x46a2e0
jmp 0x46a31e
inc edi
jmp 0x46a31e
add edi, 2
jmp 0x46a31e
add edi, 3
mov eax, dword [esp + 0x50]
mov dword [esp + 0x34], eax
cmp eax, 0x57
jl 0x46a15d
cmp edi, ebx
jge 0x46a391
mov edx, ebx
sub edx, edi
cmp edx, 4
jl 0x46a375
lea ecx, [ebx - 3]
nop
mov eax, dword [esi + 0x10]
fld dword [eax + edi*4 - 4]
lea eax, [eax + edi*4]
fstp dword [eax]
mov edx, dword [esi + 0x10]
fld dword [edx + edi*4]
lea eax, [edx + edi*4]
fstp dword [eax + 4]
mov eax, dword [esi + 0x10]
fld dword [eax + edi*4 + 4]
add edi, 4
fstp dword [eax + edi*4 - 8]
mov eax, dword [esi + 0x10]
fld dword [eax + edi*4 - 8]
fstp dword [eax + edi*4 - 4]
cmp edi, ecx
jl 0x46a340
cmp edi, ebx
jge 0x46a391
lea esp, [esp]
mov eax, dword [esi + 0x10]
fld dword [eax + edi*4 - 4]
lea eax, [eax + edi*4]
inc edi
fstp dword [eax]
cmp edi, ebx
jl 0x46a380
mov dword [esp + 0x34], 0
test ebx, ebx
jle 0x46a5b7
mov eax, dword [ebp + 0x18]
lea ecx, [ebx + ebx]
cdq
idiv ecx
mov edi, eax
mov ebx, eax
imul ebx, edi
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x4c]
fild dword [esp + 0x50]
imul edx, dword [esp + 0x34]
fstp dword [esp + 0x48]
mov dword [esp + 0x5c], edx
fild dword [esp + 0x5c]
fmul qword [0x549230]
call fcn.004ab300
fmul qword [0x549228]
fstp qword [esp + 0x60]
fld dword [esp + 0x48]
fmul qword [0x549220]
call fcn.004ab300
fmul qword [0x549218]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x78]
fadd qword [esp + 0x60]
add eax, dword [esp + 0x38]
fld dword [esp + 0x48]
fmul qword [0x549210]
faddp st(1)
fstp dword [esp + 0x5c]
cmp eax, dword [esp + 0x34]
jge 0x46a4dd
movss xmm1, dword [ecx + 0x70]
mov ecx, dword [esp + 0x38]
movss xmm0, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
mov eax, edi
imul eax, ecx
mov dword [esp + 0x48], eax
mov eax, ebx
imul eax, ecx
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x40], eax
jmp 0x46a468
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
fild dword [esp + 0x48]
imul eax, ecx
fstp dword [esp + 0x54]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [0x549230]
call fcn.004ab300
fmul qword [0x549228]
fstp qword [esp + 0x60]
fld dword [esp + 0x54]
fmul qword [0x549220]
call fcn.004ab300
fmul qword [0x549218]
fadd qword [esp + 0x60]
fld dword [esp + 0x54]
fmul qword [0x549210]
faddp st(1)
fld qword [esp + 0x78]
fcompi st(1)
fstp st(0)
jbe 0x46a4da
mov eax, dword [esp + 0x58]
inc dword [esp + 0x38]
add dword [esp + 0x40], ebx
add dword [esp + 0x48], edi
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x34]
jl 0x46a460
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x3c]
cmp eax, dword [ebp + 0x14]
jg 0x46a586
mov ecx, dword [ecx + 0x7c]
add ecx, dword [esp + 0x34]
mov dword [esp + 0x60], ecx
mov ecx, edi
imul ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, ebx
imul ecx, eax
mov dword [esp + 0x54], ecx
cmp eax, dword [esp + 0x60]
jl 0x46a572
fild dword [esp + 0x48]
imul ecx, eax
fstp dword [esp + 0x58]
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
fmul qword [0x549230]
call fcn.004ab300
fmul qword [0x549228]
fstp qword [esp + 0x40]
fld dword [esp + 0x58]
fmul qword [0x549220]
call fcn.004ab300
fmul qword [0x549218]
mov eax, dword [ebp + 0xc]
fadd qword [esp + 0x40]
fld dword [esp + 0x58]
fmul qword [0x549210]
faddp st(1)
fld dword [eax + 0x74]
mov eax, dword [esp + 0x3c]
fadd dword [esp + 0x5c]
fcompi st(1)
fstp st(0)
jbe 0x46a586
mov ecx, dword [esp + 0x54]
add dword [esp + 0x48], edi
inc eax
add ecx, ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], ecx
cmp eax, dword [ebp + 0x14]
jle 0x46a507
mov ecx, dword [esp + 0x38]
add dword [esp + 0x4c], ebx
add dword [esp + 0x50], edi
shl ecx, 0x10
lea edx, [ecx + eax - 0x10001]
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x18]
mov dword [ecx + eax*4], edx
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [ebp + 0x14]
jl 0x46a3bb
mov ebx, dword [ebp + 0x14]
xor edi, edi
mov dword [esp + 0x34], edi
test ebx, ebx
jle 0x46a621
fld qword [0x4c5b80]
fild dword [esp + 0x34]
fadd qword [0x549240]
fmulp st(1)
fmul qword [esp + 0x70]
fdiv qword [esp + 0x68]
call fcn.004ab120
fmul qword [0x5491d8]
mov ecx, dword [esi + 0x20]
inc ecx
fsub qword [0x5491e8]
mov edx, 1
shl edx, cl
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
fmulp st(1)
fld qword [0x4c5b80]
fadd st(1), st(0)
fxch st(1)
call fcn.004a7d20
mov ecx, dword [esi + 0x14]
mov dword [ecx + edi*4], eax
inc edi
mov dword [esp + 0x34], edi
cmp edi, ebx
jl 0x46a5c7
fstp st(0)
mov eax, dword [ebp + 0xc]
movss xmm0, dword [eax + 0x1c]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x18]
movss dword [esp], xmm0
movsd xmm0, qword [esp + 0x78]
mulsd xmm0, qword [0x4c5b80]
divsd xmm0, qword [esp + 0x70]
push ebx
push ecx
cvtpd2ps xmm0, xmm0
add eax, 0x24
movss dword [esp], xmm0
push eax
call fcn.00469060
push 0xc
mov dword [esi + 8], eax
call fcn.004a7dcb
add esp, 0x18
mov dword [esi + 0xc], eax
xor edi, edi
jmp 0x46a680
lea eax, [ebx*4]
push eax
call fcn.004a7dcb
mov edx, dword [esi + 0xc]
mov dword [edi + edx], eax
add edi, 4
add esp, 4
cmp edi, 0xc
jl 0x46a680
xor edi, edi
mov dword [esp + 0x34], edi
test ebx, ebx
jle 0x46a7f5
movsd xmm0, qword [esp + 0x68]
mulsd xmm0, qword [0x4c6040]
movsd qword [esp + 0x78], xmm0
fild dword [esp + 0x34]
fadd qword [0x4c5b80]
fmul qword [esp + 0x70]
fdiv qword [esp + 0x78]
call fcn.004ab120
fmul qword [0x5491d8]
fsub qword [0x5491e8]
fadd st(0), st(0)
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fldz
fcompi st(1)
fstp st(0)
jbe 0x46a6fa
xorps xmm0, xmm0
jmp 0x46a710
movss xmm0, dword [esp + 0x5c]
movss xmm1, dword [0x54920c]
comiss xmm0, xmm1
jb 0x46a710
movaps xmm0, xmm1
mov ecx, dword [esi + 4]
cvttss2si eax, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
xorps xmm1, xmm1
cvtpd2ps xmm1, xmm0
movsd xmm0, qword [0x4c5bf8]
cvtps2pd xmm2, xmm1
subsd xmm0, xmm2
movss xmm2, dword [ecx + eax*4 + 0x88]
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm1
mulsd xmm2, xmm3
movss xmm3, dword [ecx + eax*4 + 0x84]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
cvtps2pd xmm3, xmm3
mulsd xmm3, xmm0
addsd xmm2, xmm3
cvtpd2ps xmm2, xmm2
movss dword [edx + edi*4], xmm2
mov ecx, dword [esi + 4]
movss xmm2, dword [ecx + eax*4 + 0xcc]
cvtps2pd xmm3, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm2, xmm3
movss xmm3, dword [ecx + eax*4 + 0xc8]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
cvtps2pd xmm3, xmm3
mulsd xmm3, xmm0
addsd xmm2, xmm3
cvtpd2ps xmm2, xmm2
movss dword [edx + edi*4], xmm2
mov ecx, dword [esi + 4]
movss xmm2, dword [ecx + eax*4 + 0x110]
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
mulsd xmm2, xmm1
movss xmm1, dword [ecx + eax*4 + 0x10c]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 8]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
addsd xmm2, xmm1
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm2
movss dword [ecx + edi*4], xmm0
inc edi
mov dword [esp + 0x34], edi
cmp edi, ebx
jl 0x46a6c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret