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

Disassembly:
sub esp, 0x58
mov eax, dword [esp + 0x5c]
push ebx
mov ebx, dword [eax]
push ebp
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x10], ebx
cmp dword [ebx + 8], ebp
je 0x4731e8
mov eax, dword [ebx + 0x24]
mov esi, dword [ebx + 4]
imul esi, eax
add esi, dword [ebx + 0x18]
mov dword [ebx + 0x20], eax
je 0x4731e8
fldz
mov edi, dword [0x52b40c]
mov dword [esi + 0x2c4], ebp
mov eax, dword [edi + 0x11698]
or edx, 0xffffffff
xor ecx, ecx
cmp eax, edx
je 0x472e19
mov eax, dword [esi + eax*4 + 0x2d4]
cmp dword [esi + 0x20], eax
jle 0x472e19
cmp eax, edx
je 0x472e19
mov ecx, 1
mov dword [esi + 0x2c4], ecx
cmp dword [esi + 0x28], ebp
jne 0x4731a8
cmp ecx, ebp
jne 0x4731bc
mov eax, dword [esi + 4]
cmp eax, 1
jne 0x47304a
fild dword [esi + 0x84]
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x24], eax
fstp dword [esp + 0x14]
mov dword [esp + 0x20], ecx
fld dword [esp + 0x24]
fld dword [esp + 0x20]
jmp 0x472e5a
fxch st(2)
mov ecx, dword [esi + 0x60]
mov eax, dword [esi + 0x64]
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x30], ecx
fadd dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x48]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
fld dword [esp + 0x2c]
mov dword [esp + 0x34], eax
fadd dword [esp + 0x34]
mov dword [esi + 0x44], ecx
fstp dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fld dword [esi + 0x70]
mov dword [esi + 0x48], eax
fmul dword [esi + 0x60]
fstp dword [esi + 0x60]
mov ecx, dword [esi + 0x60]
fld dword [esi + 0x74]
mov dword [esp + 0x40], ecx
fmul dword [esi + 0x64]
fstp dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov dword [esp + 0x44], eax
fld st(0)
fadd dword [esp + 0x40]
fstp dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
fld st(1)
mov dword [esi + 0x60], ecx
fadd dword [esp + 0x44]
fstp dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
fxch st(2)
mov dword [esi + 0x64], eax
fcom dword [esi + 0x60]
fnstsw ax
test ah, 5
jp 0x472ef3
mov dword [esi + 0x34], 1
jmp 0x472f00
fcom dword [esi + 0x60]
fnstsw ax
test ah, 0x41
jne 0x472f00
mov dword [esi + 0x34], edx
fld dword [esi + 0x44]
fld dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
jne 0x472f1e
fcom dword [esi + 0x60]
fnstsw ax
test ah, 0x41
je 0x47302d
fld dword [esi + 0x48]
fild dword [esi + 0x88]
fcompp
fnstsw ax
test ah, 0x41
jne 0x472f3e
fcom dword [esi + 0x64]
fnstsw ax
test ah, 0x41
je 0x47302d
fld dword [esi + 0x44]
fild dword [esi + 0x8c]
fcompp
fnstsw ax
test ah, 5
jp 0x472f5e
fcom dword [esi + 0x60]
fnstsw ax
test ah, 5
jnp 0x47302d
fld dword [esi + 0x48]
fild dword [esi + 0x90]
fcompp
fnstsw ax
test ah, 5
jp 0x472f7e
fcom dword [esi + 0x64]
fnstsw ax
test ah, 5
jnp 0x47302d
fild dword [esi + 0x80]
fstp dword [esp + 0x1c]
fld dword [edi + 0x11840]
call fcn.00499690
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esi + 0x44]
fld dword [edi + 0x10ef8]
fld dword [esp + 0x1c]
fld st(0)
fsubp st(2)
fld dword [esp + 0x18]
fld st(0)
fsubp st(3)
fxch st(3)
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x473029
fld dword [esi + 0x44]
fld dword [edi + 0x10ef8]
faddp st(2)
fxch st(1)
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x47302d
mov eax, dword [esi + 0x2c]
cmp eax, ebp
jle 0x472fed
dec eax
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x3c]
cmp dword [esi + 0x24], eax
jl 0x472ffa
cmp eax, 0xffffffff
jne 0x47302d
fstp st(1)
fstp st(1)
mov ecx, dword [esi + 0x2c0]
lea eax, [esi + 0x288]
mov dword [esi + 0x2bc], ecx
call fcn.00401b90
mov eax, dword [esi + 0x28]
cmp eax, ebp
jle 0x4731b1
dec eax
mov dword [esi + 0x28], eax
jmp 0x4731bc
fstp st(0)
fstp st(0)
mov dword [esi + 4], 2
mov dword [esi + 0x24], ebp
mov eax, dword [esi + 4]
or edx, 0xffffffff
cmp eax, 1
je 0x472e58
fstp st(1)
fstp st(1)
add eax, 0xfffffffe
cmp eax, 2
ja 0x473164
mov ecx, dword [esi + 0x60]
mov eax, dword [esi + 0x64]
mov dword [esp + 0x50], ecx
fld dword [esp + 0x50]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x58], ecx
fadd dword [esp + 0x58]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x48]
fstp dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
fld dword [esp + 0x54]
mov dword [esp + 0x5c], eax
fadd dword [esp + 0x5c]
mov dword [esi + 0x44], ecx
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 4]
cmp eax, 2
jne 0x4730a5
cmp dword [esi + 0x14], edx
je 0x4730b9
cmp eax, 3
jne 0x4730af
cmp dword [esi + 0x18], edx
je 0x4730b9
cmp eax, 4
jne 0x4730ca
cmp dword [esi + 0x10], edx
jne 0x4730ca
mov edx, dword [ebx + 0x20]
mov edi, dword [esp + 0x6c]
call fcn.00472d70
jmp 0x472ffe
cmp dword [esi + 0x24], ebp
jne 0x47312e
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x6c]
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], edx
cmp eax, 2
jne 0x4730e5
mov ebx, dword [esi + 0x14]
jmp 0x4730f2
cmp eax, 4
jne 0x4730ef
mov ebx, dword [esi + 0x10]
jmp 0x4730f2
mov ebx, dword [esi + 0x18]
lea edi, [esi + 0x288]
call fcn.00401c80
mov eax, dword [edi]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
imul ecx, dword [edi + 0xc]
mov edx, dword [eax + 0x18]
cmp dword [ecx + edx + 8], ebp
jg 0x47312a
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x20]
mov edi, dword [esp + 0x6c]
call fcn.00472d70
mov ebx, dword [esp + 0x10]
jmp 0x472ffe
mov ebx, dword [esp + 0x10]
mov ecx, dword [esi + 0x288]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
imul edx, dword [esi + 0x294]
mov eax, dword [eax + 0x18]
mov ecx, dword [esi + 0x2a4]
cmp ecx, dword [edx + eax + 8]
jne 0x472ffe
mov edx, dword [ebx + 0x20]
mov edi, dword [esp + 0x6c]
call fcn.00472d70
jmp 0x472ffe
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
mov edx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
imul eax, edx
add eax, dword [ecx + 0x18]
je 0x472ffe
mov ecx, dword [eax + 0x2dc]
cmp ecx, ebp
je 0x473198
mov dword [ecx + 0x18], ebp
mov ecx, dword [eax + 0x2dc]
mov dword [ecx + 8], ebp
mov dword [eax + 0x2dc], ebp
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.00403170
jmp 0x472ffe
cmp ecx, ebp
jne 0x4731bc
jmp 0x472ffe
mov eax, 1
add dword [esi + 0x20], eax
add dword [esi + 0x24], eax
mov ecx, dword [ebx + 0x20]
cmp ecx, dword [ebx + 0x28]
jge 0x4731e6
mov eax, ecx
shl eax, 4
add eax, dword [ebx + 0x1c]
add eax, 0x10
inc ecx
cmp dword [eax], ebp
je 0x4731cc
mov esi, dword [ebx + 4]
imul esi, ecx
add esi, dword [ebx + 0x18]
mov dword [ebx + 0x20], ecx
jne 0x472de3
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret