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

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
add dword [ecx + 0x1580], eax
mov eax, dword [ecx + 0x1580]
mov edx, dword [ecx + 0x158c]
cmp eax, edx
mov dword [esp + 0xc], eax
mov dword [esp], edx
jl 0x47328b
mov dword [ecx + 0x5c], 3
mov dword [ecx + 0x1598], 0xffffffff
add esp, 8
ret 4
fild dword [esp + 0xc]
fnstcw word [esp + 0xc]
fidiv dword [esp]
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp], eax
fmul qword [0xa93198]
fldcw word [esp]
fistp qword [esp]
mov edx, dword [esp]
shl edx, 0x18
or edx, 0xffffff
fldcw word [esp + 0xc]
mov dword [ecx + 0x1598], edx
add esp, 8
ret 4
sub esp, 8
push esi
mov esi, ecx
cmp byte [esi + 0x78], 0
je 0x47546e
mov eax, dword [esp + 0x10]
add dword [esi + 0x1580], eax
mov eax, dword [esi + 0x1580]
mov ecx, dword [esi + 0x1588]
cmp eax, ecx
push ebp
mov ebp, 0xff
push edi
mov edi, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
jl 0x475327
mov ecx, esi
call fcn.00475290
jmp 0x475428
fild dword [esp + 0x18]
mov eax, 2
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0xc]
fld1
fstp dword [esp + 0x18]
fld dword [esp + 0xc]
test al, 1
je 0x475354
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
shr eax, 1
je 0x475360
fmul st(0), st(0)
fstp dword [esp + 0xc]
jmp 0x475342
fstp st(0)
push ebx
fld dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fmul qword [0xa99618]
fimul dword [esi + 0x1590]
fiadd dword [esi + 0x1594]
call fcn.00a2cb30
fidiv dword [esp + 0x14]
mov ebx, eax
fmul qword [0xa93198]
call fcn.00a2cb30
mov ebp, eax
mov ecx, ebp
imul ecx, ecx, 0x9b
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fdiv qword [0xa99610]
call fcn.00a2cb30
mov cx, word [esi + 0x15aa]
mov edi, 0x64
sub edi, eax
mov ax, word [esi + 0x15a8]
add ax, bx
mov word [esi + 0x15ac], ax
mov word [esi + 0x15ae], cx
mov ax, word [esi + 0x15da]
mov cx, word [esi + 0x15d8]
sub ax, bx
mov word [esi + 0x15dc], cx
mov word [esi + 0x15de], ax
movzx eax, word [esi + 0x15b0]
cmp word [esi + 0x15ac], ax
pop ebx
jle 0x475411
mov word [esi + 0x15ac], ax
movzx eax, word [esi + 0x15e2]
cmp word [esi + 0x15de], ax
jge 0x475428
mov word [esi + 0x15de], ax
mov ecx, dword [esi + 0x1644]
push 0
push edi
call fcn.008994c0
mov ecx, dword [esi + 0x1674]
push 0
push ebp
call fcn.008994c0
mov ecx, dword [esi + 0x1674]
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esi + 0x15ac]
push eax
call edx
mov ecx, dword [esi + 0x1640]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
add esi, 0x15dc
push esi
call edx
pop edi
pop ebp
pop esi
add esp, 8
ret 4
mov eax, dword [esp + 4]
sub esp, 0x18
push esi
mov esi, ecx
add dword [esi + 0x1580], eax
mov eax, dword [esi + 0x1580]
cmp eax, dword [esi + 0x1584]
jge 0x4757ca
mov edx, dword [esi + 0x15e4]
cmp eax, edx
jl 0x4754eb
mov ecx, dword [esi + 0x15ec]
cmp eax, ecx
jge 0x4754eb
sub eax, edx
mov dword [esp + 8], eax
fild dword [esp + 8]
sub ecx, edx
mov dword [esp + 8], ecx
push 0
fidiv dword [esp + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul qword [0xa93198]
call fcn.00a2cb30
mov ecx, dword [esi + 0x1670]
push eax
call fcn.008994c0
mov eax, dword [esi + 0x1580]
mov edx, dword [esi + 0x15fc]
cmp eax, edx
push edi
jl 0x4755ea
mov ecx, dword [esi + 0x1604]
cmp eax, ecx
jge 0x4755ea
sub ecx, edx
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
sub eax, edx
mov dword [esp + 0xc], eax
mov ax, word [esi + 0x15bc]
fstp dword [esp + 0x10]
sub ax, word [esi + 0x15b4]
fild dword [esp + 0xc]
mov cx, word [esi + 0x15be]
fld dword [esp + 0x10]
sub cx, word [esi + 0x15b6]
fld st(0)
movsx edx, ax
fdivp st(2)
mov dword [esp + 0x10], edx
movsx eax, cx
fxch st(1)
fstp dword [esp + 0xc]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fstp dword [esp + 0x18]
fild dword [esp + 0x10]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fld dword [esp + 0xc]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
call fcn.00a2cb30
fld dword [esp + 0x14]
mov di, ax
call fcn.00a2cb30
fidivr dword [esp + 0x24]
mov cx, word [esi + 0x15b4]
mov dx, word [esi + 0x15b6]
add cx, di
add dx, ax
push 1
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
fmul qword [0xa93198]
call fcn.00a2cb30
mov ecx, dword [esi + 0x1634]
push eax
call fcn.00899730
mov ecx, dword [esi + 0x1634]
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esp + 8]
push eax
call edx
mov eax, dword [esi + 0x1580]
mov edx, dword [esi + 0x1614]
cmp eax, edx
jl 0x4756d6
mov ecx, dword [esi + 0x161c]
cmp eax, ecx
jge 0x4756d6
sub eax, edx
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
sub ecx, edx
mov dword [esp + 0x24], ecx
mov ax, word [esi + 0x15d4]
fidiv dword [esp + 0x24]
sub ax, word [esi + 0x15cc]
mov cx, word [esi + 0x15d6]
sub cx, word [esi + 0x15ce]
cwde
mov dword [esp + 0x24], eax
movsx ecx, cx
fstp dword [esp + 0xc]
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fstp dword [esp + 0x18]
fild dword [esp + 0x24]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fld dword [esp + 0xc]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
call fcn.00a2cb30
fld dword [esp + 0x14]
mov di, ax
call fcn.00a2cb30
fmul qword [0xa93198]
mov cx, word [esi + 0x15cc]
mov dx, word [esi + 0x15ce]
add cx, di
add dx, ax
push 1
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
call fcn.00a2cb30
mov ecx, dword [esi + 0x163c]
push eax
call fcn.008994c0
mov ecx, dword [esi + 0x163c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esp + 8]
push eax
call edx
mov eax, dword [esi + 0x1580]
mov edx, dword [esi + 0x1608]
cmp eax, edx
jl 0x4757c2
mov ecx, dword [esi + 0x1610]
cmp eax, ecx
jge 0x4757c2
sub eax, edx
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
sub ecx, edx
mov dword [esp + 0x24], ecx
mov ax, word [esi + 0x15c8]
fidiv dword [esp + 0x24]
sub ax, word [esi + 0x15c0]
mov cx, word [esi + 0x15ca]
sub cx, word [esi + 0x15c2]
cwde
mov dword [esp + 0x24], eax
movsx ecx, cx
fstp dword [esp + 0xc]
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fstp dword [esp + 0x18]
fild dword [esp + 0x24]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fld dword [esp + 0xc]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
call fcn.00a2cb30
fld dword [esp + 0x14]
mov di, ax
call fcn.00a2cb30
fmul qword [0xa93198]
mov cx, word [esi + 0x15c0]
mov dx, word [esi + 0x15c2]
add cx, di
add dx, ax
push 1
mov word [esp + 0xc], cx
mov word [esp + 0xe], dx
call fcn.00a2cb30
mov ecx, dword [esi + 0x1638]
push eax
call fcn.008994c0
mov ecx, dword [esi + 0x1638]
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esp + 8]
push eax
call edx
pop edi
pop esi
add esp, 0x18
ret 4
mov dword [esi + 0x1580], 0
mov dword [esi + 0x157c], 1
call fcn.00475230
mov ecx, dword [esi + 0x1644]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
push 1
call edx
mov ecx, dword [esi + 0x1668]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
push 1
call edx
mov ecx, dword [esi + 0x166c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3c]
push 1
call edx
mov ecx, dword [esi + 0x1634]
push 1
push 0xff
call fcn.00899730
mov ecx, dword [esi + 0x1638]
push 1
push 0xff
call fcn.008994c0
mov ecx, dword [esi + 0x163c]
push 1
push 0xff
call fcn.008994c0
mov ecx, dword [esi + 0x1670]
push 0
push 0xff
call fcn.008994c0
mov ecx, dword [esi + 0x1634]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
lea edx, [esi + 0x15bc]
push edx
call eax
mov ecx, dword [esi + 0x1638]
mov edx, dword [ecx]
mov edx, dword [edx + 0x34]
lea eax, [esi + 0x15c8]
push eax
call edx
mov ecx, dword [esi + 0x163c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
add esi, 0x15d4
push esi
call edx
pop esi
add esp, 0x18
ret 4
mov eax, dword [ecx + 0x157c]
sub eax, 0
je 0x47665f
sub eax, 1
je 0x47665a
sub eax, 1
jne 0x476664
jmp 0x473250
jmp 0x4752e0
jmp 0x475480
ret 4