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

Disassembly:
sub esp, 0x5c
push ebx
fldz
mov ebx, dword [esp + 0x68]
fld dword [esp + 0x74]
push ebp
fcom st(1)
mov ebp, dword [esp + 0x68]
mov eax, dword [ebp]
push esi
mov esi, dword [eax + 4]
imul esi, ebx
add esi, dword [eax + 0x18]
mov eax, dword [0x5042a4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
imul ecx, dword [0x5042a8]
add ecx, dword [eax + 0x18]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
push edi
fnstsw ax
mov dword [esp + 0x64], esi
mov dword [esp + 0x4c], ecx
test ah, 0x41
jnp 0x493151
fld dword [esp + 0x84]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x493151
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov dword [esp + 0x24], edi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld st(0)
fsub st(2)
fabs
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fld dword [0x4fd9d8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x492bb5
fild dword [esp + 0x24]
fsub st(4)
fabs
fstp dword [esp + 0x2c]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x492bb7
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x7c]
call fcn.004dc850
fld dword [esp + 0x78]
push eax
call fcn.004dc850
push eax
push ebx
push ebp
call fcn.0048f560
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(0)
sub ecx, dword [esi + 8]
fld dword [esp + 0x78]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
mov ecx, edi
sub ecx, dword [esi + 0xc]
fmul st(3)
mov dword [esp + 0x20], ecx
fdivrp st(2)
fld1
fsub st(2), st(0)
fxch st(1)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x78]
fild dword [esp + 0x24]
fstp dword [esp + 0x2c]
fild dword [esp + 0x20]
fmul st(3)
fdiv dword [esp + 0x2c]
fsubrp st(1)
fsubr dword [esp + 0x7c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fild dword [0x504214]
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x49314f
fld st(0)
faddp st(3)
fxch st(2)
fst qword [esp + 0x50]
fld qword [0x4fd830]
fsub st(1), st(0)
fild dword [0x504210]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
je 0x49315f
fld dword [esp + 0x78]
fild dword [0x50420c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x49315d
faddp st(2)
fxch st(1)
fst qword [esp + 0x40]
fsubrp st(1)
fild dword [0x504208]
fcompp
fnstsw ax
test ah, 1
je 0x493163
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.004dc850
mov ebp, eax
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fld dword [esp + 0x7c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x492ceb
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4fd830]
fcompp
fnstsw ax
test ah, 0x41
jne 0x492cb5
inc ebp
mov dword [esp + 0x14], ebp
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x34]
fdiv dword [esp + 0x8c]
fmul qword [0x4fd990]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.004dc850
mov dword [esp + 0x18], eax
jmp 0x492cf5
fstp st(0)
mov dword [esp + 0x18], 0
mov ebx, dword [0x504210]
cmp ebp, ebx
jge 0x492d5d
mov edx, ebx
sub edx, ebp
imul edx, edi
mov dword [esp + 0x2c], edx
sub esp, 8
fild dword [esp + 0x34]
fdiv dword [esp + 0x8c]
fmul qword [0x4fd990]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x18]
add esp, 8
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ebx
mov ebp, ebx
fldcw word [esp + 0x2c]
fistp qword [esp + 0x58]
mov eax, dword [esp + 0x58]
add dword [esp + 0x18], eax
fldcw word [esp + 0x10]
fld qword [esp + 0x50]
push ecx
fsub qword [0x4fd7e0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00480680
mov ecx, dword [0x504214]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x492d90
dec ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, ebp
inc eax
test eax, eax
jle 0x493165
fld dword [esp + 0x78]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.004dc850
mov ebx, eax
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fld dword [esp + 0x78]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x492e21
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4fd830]
fcompp
fnstsw ax
test ah, 0x41
jne 0x492de5
inc ebx
mov dword [esp + 0x10], ebx
fisubr dword [esp + 0x10]
sub esp, 8
fmul dword [esp + 0x24]
fdiv dword [esp + 0x88]
fmul qword [0x4fd990]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.004dc850
fld dword [esp + 0x78]
mov edi, eax
mov dword [esp + 0x1c], eax
jmp 0x492e27
xor edi, edi
mov dword [esp + 0x1c], edi
fild dword [0x504208]
fcompp
fnstsw ax
test ah, 0x41
jne 0x492e9a
mov ebp, dword [0x504208]
mov ecx, ebp
sub ecx, ebx
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
sub esp, 8
fild dword [esp + 0x34]
fdiv dword [esp + 0x88]
fmul qword [0x4fd990]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x18]
add esp, 8
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x2c], eax
mov ebx, ebp
fldcw word [esp + 0x2c]
fistp qword [esp + 0x58]
mov edx, dword [esp + 0x58]
add edi, edx
mov dword [esp + 0x1c], edi
fldcw word [esp + 0x10]
fld qword [esp + 0x40]
push ecx
fsub qword [0x4fd7e0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00480680
mov ebp, eax
mov eax, dword [0x50420c]
add esp, 4
cmp ebp, eax
jl 0x492ec6
lea ebp, [eax - 1]
mov eax, dword [esp + 0x28]
shl eax, 0x10
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fdiv dword [esp + 0x80]
call fcn.004dc850
mov ecx, dword [esp + 0x24]
shl ecx, 0x10
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
mov dword [esp + 0x80], eax
fdiv dword [esp + 0x84]
call fcn.004dc850
mov dword [esp + 0x2c], eax
test edi, edi
jge 0x492f24
jmp 0x492f10
cmp ebx, ebp
jg 0x492f20
add edi, dword [esp + 0x80]
inc ebx
test edi, edi
jl 0x492f10
mov dword [esp + 0x1c], edi
mov ecx, edi
sar ecx, 0x10
test ecx, ecx
je 0x492f3b
and edi, 0xffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x18]
test ecx, ecx
jge 0x492f5b
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x20]
jg 0x492f57
inc dword [esp + 0x14]
add ecx, eax
test ecx, ecx
jl 0x492f43
mov dword [esp + 0x18], ecx
mov edx, ecx
sar edx, 0x10
test edx, edx
je 0x492f72
and ecx, 0xffff
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x14]
sub ebp, ebx
inc ebp
inc ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ecx
test ebp, ebp
jle 0x493165
test ecx, ecx
jle 0x493165
mov edx, dword [esp + 0x18]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x80]
add eax, edi
sar eax, 0x10
add eax, dword [esp + 0x34]
add ebx, ebx
cmp eax, dword [esi]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], edx
jl 0x492fc3
dec dword [esp + 0x80]
dec ecx
imul ecx, dword [esp + 0x2c]
add ecx, edx
sar ecx, 0x10
add ecx, dword [esp + 0x30]
cmp ecx, dword [esi + 4]
jl 0x492fdb
dec dword [esp + 0x2c]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push ecx
call fcn.00465970
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
je 0x493165
mov edx, dword [0x5042a8]
mov eax, dword [0x5042a4]
push edx
call fcn.00465970
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x30]
add esp, 4
call fcn.00465950
add eax, 0x10
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x493165
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], eax
jmp 0x493048
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x2c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ebp
mov eax, dword [edx + ecx*4 - 4]
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
add eax, dword [esp + 0x40]
lea edx, [eax + ecx - 1]
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x74]
mov edx, dword [ecx + edx]
add edx, dword [esp + 0x50]
mov eax, edi
add edx, ebx
mov ecx, dword [esp + 0x70]
mov cl, byte [ecx]
test cl, cl
je 0x493109
mov esi, dword [esp + 0x58]
movzx ecx, cl
movzx edi, word [esi + ecx*2]
movzx esi, word [edx]
mov ecx, esi
mov ebx, edi
and ecx, 0xf800
and ebx, 0xf800
add ecx, ebx
cmp ecx, 0xf800
jbe 0x4930c5
mov ecx, 0xf800
mov ebx, esi
mov ebp, edi
and ebx, 0x7e0
and ebp, 0x7e0
add ebx, ebp
cmp ebx, 0x7e0
jbe 0x4930e4
mov ebx, 0x7e0
and esi, 0x1f
and edi, 0x1f
add esi, edi
cmp esi, 0x1f
jbe 0x4930f6
mov esi, 0x1f
mov edi, dword [esp + 0x1c]
or ecx, ebx
mov ebx, dword [esp + 0x10]
or ecx, esi
mov esi, dword [esp + 0x64]
mov word [edx], cx
add eax, dword [esp + 0x80]
add edx, 2
mov ecx, eax
sar ecx, 0x10
sub dword [esp + 0x70], ecx
mov ecx, 1
and eax, 0xffff
sub dword [esp + 0x18], ecx
jne 0x49308e
mov edx, dword [esp + 0x2c]
add dword [esp + 0x20], edx
add dword [esp + 0x74], 4
sub dword [esp + 0x14], ecx
jne 0x493044
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(3)
fstp st(2)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret