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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
push esi
mov esi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x78]
mov ebx, ecx
push edi
mov ecx, esi
call edx
fstp dword [esp + 0x2c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
call edx
fstp dword [esp + 0x28]
mov eax, dword [ebx + 0x184]
call fcn.0040f7f0
test eax, eax
je 0x47113b
mov eax, dword [ebx + 0x74]
fild dword [eax + 0xc]
push ecx
fstp dword [esp + 0x1c]
fld dword [eax + 0x10]
fstp dword [esp + 0x78]
fld dword [esp + 0x1c]
fsub dword [esp + 0x30]
fst qword [esp + 0x64]
fstp dword [esp + 0x34]
fld dword [esp + 0x78]
fsub dword [esp + 0x2c]
fst qword [esp + 0x3c]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fld dword [esp + 0x34]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.00403a20
fstp dword [esp + 0x14]
add esp, 4
fld qword [esp + 0x60]
lea edi, [esp + 0x60]
fld st(0)
lea eax, [esp + 0x30]
fld qword [0x687300]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x50]
fld qword [esp + 0x38]
fadd qword [0x6867e8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x54]
fxch st(2)
faddp st(1)
fstp dword [esp + 0x58]
fstp dword [esp + 0x5c]
fld dword [esp + 0x34]
fchs
fstp dword [esp + 0x48]
fld dword [esp + 0x10]
fdivr qword [0x6867f0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fmul dword [esp + 0x48]
fstp dword [esp + 0x48]
fmul dword [esp + 0x30]
fstp dword [esp + 0x4c]
call fcn.0044fc20
fld dword [eax]
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x38]
fmul dword [eax + 4]
fstp dword [esp + 0x3c]
fld dword [esp + 0x38]
fld qword [0x686d10]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x40]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x70]
fld dword [esp + 0x44]
fadd dword [esp + 0x28]
fstp dword [esp + 0x6c]
fld dword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
mov eax, dword [ebx + 0x3f8]
mov esi, dword [eax]
fmul st(1)
add ebx, 0x3f4
mov dword [esp + 0x18], ebx
fstp dword [esp + 0x54]
mov dword [esp + 0x3c], esi
fld dword [esp + 0x58]
fmul st(1)
fstp dword [esp + 0x58]
fmul dword [esp + 0x5c]
fstp dword [esp + 0x5c]
cmp ebx, ebx
mov edi, dword [ebx + 4]
je 0x470d6d
call fcn.0062492b
cmp esi, edi
je 0x47113b
cmp esi, dword [ebx + 4]
jne 0x470d7f
call fcn.0062492b
mov edi, dword [esi + 8]
mov eax, dword [edi + 0xd0]
cmp byte [eax + 0x14], 0
mov dword [esp + 0x30], edi
jne 0x471124
cmp byte [edi + 0x25], 0
je 0x471124
mov eax, dword [eax + 0x10]
cmp eax, 1
je 0x470dbb
cmp eax, 3
je 0x470dbb
cmp eax, 4
je 0x470dbb
cmp eax, 2
jne 0x471124
mov edx, dword [edi]
mov eax, dword [edx + 0x78]
mov ecx, edi
call eax
fstp dword [esp + 0x10]
mov edx, dword [edi]
mov eax, dword [edx + 0x7c]
mov ecx, edi
call eax
fstp dword [esp + 0x1c]
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
xor esi, esi
xor ebx, ebx
call eax
cmp eax, 6
jne 0x470df0
mov eax, edi
mov esi, edi
call fcn.004a47a0
fld dword [esp + 0x1c]
xor al, al
fld dword [esp + 0x4c]
fld dword [esp + 0x48]
fld dword [esp + 0x70]
fld dword [esp + 0x28]
jmp 0x470e0a
fxch st(4)
test ebx, ebx
jl 0x470f24
test esi, esi
fld dword [esp + 0x10]
fstp dword [esp + 0x14]
fxch st(4)
fst dword [esp + 0x20]
je 0x470eb0
mov ecx, dword [esi + 0x108]
fstp st(0)
test ecx, ecx
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
je 0x470e4b
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x470e50
call fcn.0062492b
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
fstp dword [esp + 0x14]
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x470e7d
mov eax, dword [esi + 0x10c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x470e82
call fcn.0062492b
mov ecx, dword [esi + 0x108]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
fstp dword [esp + 0x20]
fld dword [esp + 0x4c]
fld dword [esp + 0x48]
fld dword [esp + 0x1c]
fld dword [esp + 0x70]
fld dword [esp + 0x28]
fxch st(4)
fxch st(3)
fxch st(2)
fld dword [esp + 0x74]
fcomp st(5)
fnstsw ax
fld st(3)
fdiv st(3)
test ah, 5
fld dword [esp + 0x14]
fsub dword [esp + 0x2c]
fmul st(1)
fadd st(6)
fcomp st(2)
fnstsw ax
jp 0x470eef
test ah, 1
jne 0x470f0d
fld dword [esp + 0x20]
fsub st(3)
fmulp st(1)
fadd dword [esp + 0x6c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x470f0f
mov al, 1
jmp 0x470f11
test ah, 0x41
jp 0x470f0d
fld dword [esp + 0x20]
fsub st(3)
fmulp st(1)
fadd dword [esp + 0x6c]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x470f0f
mov al, 1
jmp 0x470f11
fstp st(0)
xor al, al
sub ebx, 1
test al, al
je 0x470e08
fstp st(3)
fstp st(1)
fstp st(0)
jmp 0x470f34
test al, al
fstp st(3)
fstp st(1)
fstp st(0)
je 0x471118
fxch st(1)
test esi, esi
jne 0x470f54
mov ecx, dword [edi + 0xd0]
xor edx, edx
cmp dword [ecx + 0x10], 1
setne dl
lea edx, [edx + edx + 0xa]
mov dword [esp + 0x20], edx
jmp 0x470fe9
fstp st(0)
lea eax, [esp + 0x78]
fstp st(0)
push eax
fldz
fst dword [esp + 0x7c]
fst dword [esp + 0x80]
fstp dword [esp + 0x24]
call fcn.00497fb0
test al, al
je 0x470fba
fld dword [esp + 0x78]
push ecx
fsub dword [esp + 0x14]
fstp dword [esp + 0x64]
fld dword [esp + 0x80]
fsub dword [esp + 0x20]
fstp dword [esp + 0x68]
fld dword [esp + 0x68]
fld dword [esp + 0x64]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.00403a20
fstp dword [esp + 0x24]
add esp, 4
mov ecx, dword [edi + 0xd0]
fld dword [esp + 0x20]
cmp dword [ecx + 0x10], 1
fmul qword [0x6872f8]
je 0x470fd6
fadd qword [0x686e30]
call fcn.0062a660
fld dword [esp + 0x1c]
fld dword [esp + 0x28]
mov dword [esp + 0x20], eax
fxch st(1)
fld dword [esp + 0x2c]
fsub dword [esp + 0x10]
fstp dword [esp + 0x40]
fsubp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x54]
fld st(0)
fld dword [esp + 0x50]
fld st(0)
fld st(2)
fmulp st(3)
fmul st(0), st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0x14]
fmul dword [esp + 0x44]
fld dword [esp + 0x40]
fmulp st(2)
fsubrp st(1)
fld dword [esp + 0x14]
fld st(0)
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x1c]
call fcn.00644f90
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x58]
fmul dword [esp + 0x44]
fld dword [esp + 0x5c]
fmul dword [esp + 0x40]
fsubp st(1)
fld dword [esp + 0x10]
fld st(0)
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0x1c]
call fcn.00644f90
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x10]
fild dword [esp + 0x20]
fadd qword [0x687250]
fst qword [esp + 0x20]
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4710d7
fld dword [esp + 0x10]
fcompp
fnstsw ax
test ah, 0x41
je 0x47111c
jmp 0x4710d9
fstp st(0)
mov esi, dword [ebp + 8]
lea ebx, [esp + 0x30]
call fcn.00441a20
fld dword [esp + 0x14]
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4710fa
fstp st(0)
jmp 0x4710fc
fstp st(1)
fdiv qword [esp + 0x20]
mov esi, dword [ebp + 0xc]
lea ebx, [esp + 0x30]
fsubr qword [0x665830]
fstp dword [esp + 0x30]
call fcn.00442d70
jmp 0x47111c
fstp st(1)
fstp st(0)
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
cmp esi, dword [ebx + 4]
jne 0x47112e
call fcn.0062492b
mov edx, dword [esi]
mov dword [esp + 0x3c], edx
mov esi, edx
jmp 0x470d61
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8