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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ac
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
fld qword [ebp + 0x20]
mov dword [ebp - 0xd8], vtable.et.0
fstp qword [ebp - 0x190]
mov dword [esp + 4], edi
mov dword [esp], ebx
fldz
fst qword [ebp - 0xd0]
fst qword [ebp - 0xc8]
fstp qword [ebp - 0xc0]
call fcn.0047f990
lea eax, [edi + 0x40]
fstp qword [ebp - 0x118]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0047f990
lea eax, [edi + 0x20]
fstp qword [ebp - 0x110]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0047f990
fld qword [edi + 0x88]
mov eax, dword [ebp + 0xc]
fmul qword [edi + 0x80]
mov dword [esp], eax
fld st(0)
fld qword [ebp - 0x118]
fmul st(2)
fstp qword [ebp - 0xd0]
fld qword [ebp - 0x110]
fmulp st(2)
fxch st(1)
fstp qword [ebp - 0xc8]
fmulp st(1)
fstp qword [ebp - 0xc0]
call fcn.00472800
mov edx, dword [edi + 0xa8]
mov eax, dword [edi + 0xac]
fstp qword [ebp - 0x198]
sub eax, edx
sar eax, 3
imul eax, eax, 0xc4ec4ec5
test eax, eax
je 0x478abc
mov dword [ebp - 0x11c], 0
jmp 0x47821b
mov edx, dword [edi + 0xa8]
mov eax, dword [edi + 0xac]
add dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
sub eax, edx
sar eax, 3
imul eax, eax, 0xc4ec4ec5
cmp ecx, eax
jae 0x478abc
imul eax, dword [ebp - 0x11c], 0x68
add edx, eax
cmp byte [edx + 0x58], 0
je 0x4781ef
cmp byte [edx + 0x30], 0
je 0x4781ef
fldz
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
fld qword [ebp - 0x198]
mov dword [ebp - 0xfc], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x104]
mov dword [esp + 8], ecx
fucompi st(1)
fstp st(0)
mov dword [esp], eax
seta byte [ebp - 0x185]
movzx edx, byte [ebp - 0x185]
mov dword [esp + 0xc], edx
call fcn.00477b70
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x104]
mov eax, ecx
sub eax, edx
sar eax, 5
imul eax, eax, 0xcccccccd
test eax, eax
je 0x478910
mov dword [ebp - 0x184], 0
mov eax, dword [ebp - 0x184]
lea eax, [eax + eax*4]
shl eax, 5
add eax, edx
cmp byte [ebp - 0x185], 0
fld qword [eax]
mov dword [ebp - 0x120], eax
fadd qword [eax + 0x28]
fld dword [0x4bbd50]
fmul st(1), st(0)
fxch st(1)
fstp qword [ebp - 0x110]
fld qword [eax + 8]
fadd qword [eax + 0x30]
fmulp st(1)
fstp qword [ebp - 0x118]
fld1
je 0x478a80
fchs
fstp qword [ebp - 0x128]
lea eax, [ebp - 0xd8]
fld qword [ebp - 0x118]
mov dword [esp + 0x18], eax
fstp qword [esp + 0xc]
mov eax, dword [ebp + 0xc]
fld qword [ebp - 0x110]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0xb8]
fstp qword [esp + 4]
mov dword [esp], eax
call fcn.00472690
mov eax, dword [ebp - 0x120]
fld qword [ebp - 0x118]
fstp qword [esp + 0xc]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0xd8]
fld qword [ebp - 0x110]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
fstp qword [esp + 4]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x98]
mov dword [esp], eax
call fcn.00472380
lea eax, [ebp - 0x98]
mov dword [esp + 8], eax
lea eax, [ebp - 0xb8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.0047f8f0
lea eax, [ebp - 0x98]
fld qword [ebp - 0x128]
mov dword [esp + 4], eax
lea eax, [ebp - 0x78]
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.0047f960
fldz
lea eax, [ebp - 0x38]
fld qword [ebp - 0x70]
mov dword [esp + 4], eax
lea eax, [ebp - 0x58]
fadd st(1)
mov dword [esp], eax
fstp qword [ebp - 0x158]
fld qword [ebp - 0x68]
fadd st(1)
fstp qword [ebp - 0x168]
fadd qword [ebp - 0x60]
fstp qword [ebp - 0x160]
fld qword [ebp - 0x128]
fstp qword [esp + 8]
call fcn.0047f960
fldz
mov edx, dword [edi + 0xa8]
mov eax, dword [edi + 0xac]
fld st(0)
sub eax, edx
fld qword [ebp - 0x50]
sar eax, 3
imul eax, eax, 0xc4ec4ec5
fadd st(1)
test eax, eax
fstp qword [ebp - 0x150]
fld qword [ebp - 0x48]
fadd st(1)
fstp qword [ebp - 0x148]
fadd qword [ebp - 0x40]
fstp qword [ebp - 0x140]
fst qword [ebp - 0x180]
fst qword [ebp - 0x178]
fstp qword [ebp - 0x170]
je 0x4785c0
xor esi, esi
jmp 0x4784ff
fxch st(2)
fchs
fxch st(1)
cmp dword [ebp - 0x11c], esi
fchs
fxch st(2)
fchs
je 0x478570
jmp 0x478472
fxch st(1)
mov eax, dword [ebp - 0x120]
fstp qword [ebp - 0x138]
mov dword [esp + 4], ebx
fstp qword [ebp - 0x130]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
fstp qword [ebp - 0x128]
mov dword [esp], eax
call fcn.00472040
fld qword [ebp - 0x128]
test al, al
fld qword [ebp - 0x130]
fld qword [ebp - 0x138]
je 0x478590
fadd qword [ebp - 0x158]
fstp qword [ebp - 0x158]
fxch st(1)
fadd qword [ebp - 0x168]
fstp qword [ebp - 0x168]
fadd qword [ebp - 0x160]
fstp qword [ebp - 0x160]
mov edx, dword [edi + 0xa8]
add esi, 1
mov eax, dword [edi + 0xac]
sub eax, edx
sar eax, 3
imul eax, eax, 0xc4ec4ec5
cmp esi, eax
jae 0x4785c0
imul ebx, esi, 0x68
fld qword [ebp - 0x118]
add ebx, edx
fsubr qword [ebx + 8]
lea eax, [ebx + 0x10]
fld qword [ebp - 0x110]
fsubr qword [ebx]
mov dword [esp + 8], eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], vtable.et.0
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
fstp qword [ebp - 0x50]
fstp qword [ebp - 0x48]
fldz
fstp qword [ebp - 0x40]
call fcn.0047fa20
fld qword [ebp - 0x20]
cmp byte [ebx + 0x30], 0
fld qword [ebp - 0x28]
fld qword [ebp - 0x30]
je 0x478450
fsubr qword [ebx + 0x40]
fxch st(1)
cmp dword [ebp - 0x11c], esi
fsubr qword [ebx + 0x48]
fxch st(2)
fsubr qword [ebx + 0x50]
jne 0x478470
jmp 0x478572
fxch st(1)
fstp qword [ebp - 0x170]
fxch st(1)
fstp qword [ebp - 0x178]
fstp qword [ebp - 0x180]
jmp 0x4784dd
fadd qword [ebp - 0x150]
fstp qword [ebp - 0x150]
fxch st(1)
fadd qword [ebp - 0x148]
fstp qword [ebp - 0x148]
fadd qword [ebp - 0x140]
fstp qword [ebp - 0x140]
jmp 0x4784dd
mov dword [ebp - 0x118], 0
fld qword [ebp - 0x158]
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x98], vtable.et.0
mov dword [ebp - 0x78], vtable.et.0
fstp qword [ebp - 0x90]
test eax, eax
fld qword [ebp - 0x168]
fstp qword [ebp - 0x88]
fld qword [ebp - 0x160]
fst qword [ebp - 0x80]
fld qword [ebp - 0x150]
fstp qword [ebp - 0x70]
fld qword [ebp - 0x148]
fstp qword [ebp - 0x68]
fld qword [ebp - 0x140]
fstp qword [ebp - 0x60]
je 0x478af8
fstp st(0)
fld qword [ebp - 0x180]
fadd qword [ebp - 0x150]
fstp qword [ebp - 0x70]
fld qword [ebp - 0x178]
fadd qword [ebp - 0x148]
fstp qword [ebp - 0x68]
fld qword [ebp - 0x170]
fadd qword [ebp - 0x140]
fstp qword [ebp - 0x60]
lea eax, [ebp - 0x98]
mov dword [esp + 8], eax
lea eax, [ebp - 0x78]
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.0047f8f0
lea eax, [ebp - 0x38]
fld dword [0x4bbd50]
mov dword [esp + 4], eax
lea eax, [ebp - 0x58]
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.0047f960
mov eax, dword [ebp - 0x120]
fld qword [eax + 0x28]
fsub qword [eax]
fld qword [eax + 0x30]
fsub qword [eax + 8]
fld st(0)
fxch st(2)
fmul st(0)
fxch st(2)
fmulp st(1)
faddp st(1)
fld st(0)
fsqrt
fucomi st(0)
jp 0x478aad
fstp st(1)
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
sar eax, 3
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
mov ecx, dword [ebp - 0x120]
sar eax, 1
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x38]
lea esi, [ebx + 1]
mov dword [ebp - 0x110], ecx
cmp esi, eax
je 0x478950
mov ecx, esi
lea esi, [esi + esi + 1]
shl ecx, 4
mov dword [ebp - 0x130], ecx
lea ecx, [esi*8]
mov dword [ebp - 0x138], ecx
mov ecx, dword [ebp - 0x110]
lea esi, [ecx + 1]
cmp esi, eax
je 0x478943
mov eax, esi
lea esi, [esi + esi + 1]
shl eax, 4
shl esi, 3
mov ecx, dword [ebp - 0x130]
fstp qword [ebp - 0x128]
add ebx, ebx
fld qword [edx + ecx]
mov ecx, dword [ebp - 0x138]
fsub qword [edx + ebx*8]
fstp qword [ebp - 0xf8]
fld qword [edx + ecx]
mov ecx, dword [ebp - 0x110]
fsub qword [edx + ebx*8 + 8]
add ecx, ecx
fstp qword [ebp - 0xf0]
fld qword [edx + eax]
lea eax, [ebp - 0xf8]
fsub qword [edx + ecx*8]
fstp qword [ebp - 0xe8]
fld qword [edx + esi]
fsub qword [edx + ecx*8 + 8]
mov dword [esp], eax
fstp qword [ebp - 0xe0]
call fcn.00471f30
lea eax, [ebp - 0xe8]
mov dword [esp], eax
call fcn.00471f30
fld qword [ebp - 0xf8]
lea eax, [ebp - 0xb8]
fsub qword [ebp - 0xe8]
mov dword [esp], eax
fstp qword [ebp - 0xb8]
fld qword [ebp - 0xf0]
fsub qword [ebp - 0xe0]
fstp qword [ebp - 0xb0]
call fcn.00471f30
mov eax, dword [ebp - 0x120]
fld qword [eax + 0x30]
fsub qword [eax + 8]
fstp qword [ebp - 0x38]
fld qword [eax]
fsub qword [eax + 0x28]
lea eax, [ebp - 0x38]
mov dword [esp], eax
fstp qword [ebp - 0x30]
call fcn.00471f30
fld qword [ebp - 0x38]
fld qword [ebp - 0x30]
fld qword [ebp - 0xb8]
fmul st(2)
fld qword [ebp - 0xb0]
fmul st(2)
faddp st(1)
fldz
fucompi st(1)
fld qword [ebp - 0x128]
ja 0x478970
fld qword [0x4bbde0]
fucompi st(2)
fstp st(1)
ja 0x4788d3
fld qword [edi + 0x80]
fld qword [ebp - 0x40]
fld st(1)
fmul st(3)
fmul st(3)
fld dword [0x4bbde8]
fdiv st(1), st(0)
fxch st(2)
fst qword [ebp - 0x128]
fdivrp st(1)
fabs
fstp qword [ebp - 0x110]
fld qword [ebp - 0x50]
fld qword [ebp - 0x48]
fxch st(5)
fmul st(1)
fxch st(5)
fst qword [ebp - 0x130]
fmulp st(6)
fxch st(5)
fsubrp st(4)
fxch st(3)
fabs
fxch st(1)
fmul st(0)
mov ecx, dword [ebp - 0x120]
lea edx, [ebp - 0x58]
mov eax, ecx
fmulp st(2)
fxch st(2)
fdivp st(1)
fdivp st(1)
fld qword [ebp - 0x110]
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
sub eax, 0xffffff80
cmp edx, eax
je 0x4788aa
fxch st(1)
fstp qword [ecx + 0x88]
fld qword [ebp - 0x130]
fstp qword [ecx + 0x90]
fld qword [ebp - 0x128]
fstp qword [ecx + 0x98]
jmp 0x4788b0
fstp st(1)
lea esi, [esi]
fld qword [ebp - 0x190]
mov eax, dword [ebp - 0x120]
fld st(0)
fdivr st(2)
fst qword [eax + 0x78]
fxch st(2)
fucompi st(1)
fstp st(0)
ja 0x478980
fstp st(0)
jmp 0x4788d9
fstp st(0)
fstp st(0)
fstp st(0)
cmp dword [ebp - 0x118], 1
jne 0x478934
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x104]
add dword [ebp - 0x184], 1
mov esi, dword [ebp - 0x184]
mov eax, ecx
sub eax, edx
sar eax, 5
imul eax, eax, 0xcccccccd
cmp esi, eax
jb 0x4782b3
cmp edx, ecx
mov eax, edx
je 0x47891f
add eax, 0xa0
cmp ecx, eax
jne 0x478916
test edx, edx
je 0x4781ef
mov dword [esp], edx
call sub.libstdc_6.dll_operator_delete_void_
jmp 0x4781ef
mov dword [ebp - 0x118], 1
jmp 0x4785ca
mov esi, 8
xor eax, eax
jmp 0x478723
mov dword [ebp - 0x138], 8
mov dword [ebp - 0x130], 0
jmp 0x478706
fxch st(1)
fchs
fxch st(1)
jmp 0x478809
mov eax, dword [edi + 0xb8]
cmp eax, dword [edi + 0xbc]
je 0x478a8b
test eax, eax
je 0x478a67
mov ecx, dword [ebp - 0x120]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx + 0x20]
mov dword [eax + 0x20], edx
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x24], edx
mov edx, dword [ecx + 0x28]
mov dword [eax + 0x28], edx
mov edx, dword [ecx + 0x2c]
mov dword [eax + 0x2c], edx
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x30], edx
mov edx, dword [ecx + 0x34]
mov dword [eax + 0x34], edx
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x38], edx
mov edx, dword [ecx + 0x3c]
mov dword [eax + 0x3c], edx
mov edx, dword [ecx + 0x40]
fld qword [ecx + 0x58]
mov dword [eax + 0x40], edx
mov edx, dword [ecx + 0x44]
mov dword [eax + 0x44], edx
mov edx, dword [ecx + 0x48]
mov dword [eax + 0x48], edx
mov edx, dword [ecx + 0x4c]
mov dword [eax + 0x4c], edx
mov edx, dword [ecx + 0x50]
fstp qword [eax + 0x58]
fld qword [ecx + 0x60]
mov dword [eax + 0x50], edx
fstp qword [eax + 0x60]
fld qword [ecx + 0x68]
fstp qword [eax + 0x68]
fld qword [ecx + 0x70]
mov dword [eax + 0x80], vtable.et.0
fstp qword [eax + 0x70]
fstp qword [eax + 0x78]
fld qword [ecx + 0x88]
fstp qword [eax + 0x88]
fld qword [ecx + 0x90]
fstp qword [eax + 0x90]
fld qword [ecx + 0x98]
fstp qword [eax + 0x98]
jmp 0x478a69
fstp st(0)
add eax, 0xa0
mov dword [edi + 0xb8], eax
jmp 0x4788d9
fstp qword [ebp - 0x128]
jmp 0x478301
fstp st(0)
mov edx, dword [ebp - 0x120]
lea ecx, [edi + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004a5bd0
sub esp, 8
jmp 0x4788d9
fstp st(0)
fstp qword [esp]
call fcn.004881d0
jmp 0x4786b7
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
fld qword [ebp - 0x158]
fadd qword [ebp - 0x180]
fstp qword [ebp - 0x90]
fld qword [ebp - 0x178]
fadd qword [ebp - 0x168]
fstp qword [ebp - 0x88]
fld qword [ebp - 0x170]
faddp st(1)
fstp qword [ebp - 0x80]
jmp 0x478654