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

Disassembly:
sub esp, 0x4c
fldz
push ebx
mov ebx, dword [esp + 0x54]
fld dword [esp + 0x64]
mov eax, dword [ebx]
fcom st(1)
mov ecx, dword [eax + 4]
push ebp
push esi
mov esi, dword [esp + 0x60]
imul ecx, esi
add ecx, dword [eax + 0x18]
mov eax, dword [0x52b3ac]
mov eax, dword [eax]
mov edx, dword [eax + 4]
imul edx, dword [0x52b3b0]
add edx, dword [eax + 0x18]
xor ebp, ebp
fnstsw ax
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ebp
test ah, 0x41
jnp 0x42d1ea
fld dword [esp + 0x74]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x42d1ea
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
mov dword [esp + 0x20], edi
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fld st(0)
fsub st(2)
fabs
fld qword [0x4a6dc8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42ccc7
fild dword [esp + 0x20]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x42ccc9
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x6c]
call fcn.00499690
fld dword [esp + 0x68]
mov edi, eax
call fcn.00499690
mov edx, eax
push esi
push ebx
mov eax, edi
call fcn.0042c290
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
fstp st(0)
fild dword [ecx + 8]
fmul st(2)
fdivrp st(1)
fsubr dword [esp + 0x68]
fstp dword [esp + 0x68]
fild dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esp + 0x6c]
fild dword [ecx + 0xc]
fmul st(3)
fdiv dword [esp + 0x18]
fsubp st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42d1e8
fld st(0)
faddp st(3)
fxch st(2)
fst qword [esp + 0x48]
fld qword [0x4a6ba0]
fsub st(1), st(0)
fild dword [0x52be04]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
je 0x42d1f8
fld dword [esp + 0x68]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42d1f6
faddp st(2)
fxch st(1)
fst qword [esp + 0x38]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x42d1fc
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov esi, eax
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
fld dword [esp + 0x6c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42cddc
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42cdab
inc esi
mov dword [esp + 0x14], esi
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x20]
fdiv dword [esp + 0x7c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov ebx, eax
jmp 0x42cde0
fstp st(0)
xor ebx, ebx
mov ebp, dword [0x52be04]
cmp esi, ebp
jge 0x42ce43
mov eax, ebp
sub eax, esi
imul eax, edi
mov dword [esp + 0x34], eax
sub esp, 8
fild dword [esp + 0x3c]
fdiv dword [esp + 0x7c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
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 + 0x34], eax
mov dword [esp + 0x14], ebp
mov esi, ebp
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov ecx, dword [esp + 0x50]
add ebx, ecx
fldcw word [esp + 0x10]
fld qword [esp + 0x48]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.0041c740
mov ebp, eax
mov eax, dword [0x52be08]
add esp, 4
cmp ebp, eax
jle 0x42ce6e
mov ebp, eax
mov edx, ebp
sub edx, esi
inc edx
test edx, edx
jle 0x42d1fe
fld dword [esp + 0x68]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fld dword [esp + 0x68]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42cefb
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42cec2
inc dword [esp + 0x10]
fisubr dword [esp + 0x10]
sub esp, 8
fmul dword [esp + 0x38]
fdiv dword [esp + 0x78]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0x68]
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x42cf01
xor edi, edi
mov dword [esp + 0x18], edi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42cf75
mov esi, dword [0x52be3c]
mov eax, esi
sub eax, dword [esp + 0x10]
sub esp, 8
imul eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fdiv dword [esp + 0x78]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
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 + 0x34], eax
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov ecx, dword [esp + 0x50]
add edi, ecx
mov dword [esp + 0x18], edi
fldcw word [esp + 0x10]
mov dword [esp + 0x10], esi
fld qword [esp + 0x38]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.0041c740
mov esi, eax
mov eax, dword [0x52be18]
add esp, 4
cmp esi, eax
jle 0x42cfa0
mov esi, eax
mov eax, dword [esp + 0x1c]
shl eax, 0x10
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdiv dword [esp + 0x70]
call fcn.00499690
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
shl eax, 0x10
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdiv dword [esp + 0x74]
call fcn.00499690
mov ecx, eax
mov dword [esp + 0x34], eax
test edi, edi
jge 0x42cff6
mov edi, edi
cmp dword [esp + 0x10], esi
jg 0x42cff2
add edi, dword [esp + 0x70]
inc dword [esp + 0x10]
test edi, edi
jl 0x42cfe0
mov dword [esp + 0x18], edi
mov eax, edi
sar eax, 0x10
test eax, eax
je 0x42d00d
and edi, 0xffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
test ebx, ebx
jge 0x42d021
cmp dword [esp + 0x14], ebp
jg 0x42d021
inc dword [esp + 0x14]
add ebx, ecx
test ebx, ebx
jl 0x42d011
mov eax, ebx
sar eax, 0x10
test eax, eax
je 0x42d034
mov dword [esp + 0x24], eax
and ebx, 0xffff
sub esi, dword [esp + 0x10]
sub ebp, dword [esp + 0x14]
inc esi
inc ebp
mov dword [esp + 0x50], esi
test esi, esi
jle 0x42d1fe
test ebp, ebp
jle 0x42d1fe
mov eax, dword [esp + 0x28]
shl dword [esp + 0x10], 1
dec esi
imul esi, dword [esp + 0x70]
add esi, edi
sar esi, 0x10
add esi, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
cmp esi, dword [eax]
jl 0x42d075
dec dword [esp + 0x70]
lea edx, [ebp - 1]
imul edx, ecx
add edx, ebx
sar edx, 0x10
add edx, dword [esp + 0x24]
cmp edx, dword [eax + 4]
jl 0x42d08e
dec ecx
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
push eax
mov eax, esi
call fcn.00417890
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x42d1fe
mov ecx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push ecx
call fcn.00417890
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
jne 0x42d0e6
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x30]
push eax
mov eax, esi
call fcn.004177d0
mov ebx, eax
add esp, 4
mov dword [esp + 0x60], ebx
jmp 0x42d0f1
mov ebx, eax
mov dword [esp + 0x60], ebx
call fcn.00413ac0
test ebp, ebp
jle 0x42d1fe
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x2c]
sar eax, 0x10
add eax, dword [esp + 0x24]
mov esi, dword [edx + eax*4]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x64]
mov eax, dword [edx + ecx]
add esi, dword [esp + 0x38]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
add esi, dword [esp + 0x2c]
add eax, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edx
mov dl, byte [esi]
test dl, dl
je 0x42d1a9
movzx ecx, dl
movsx edi, word [ebx + ecx*2 + 0x5c]
movzx edx, word [eax]
mov ecx, edx
mov ebx, edi
and ecx, 0xf800
and ebx, 0xf800
sub ecx, ebx
jns 0x42d174
xor ecx, ecx
mov ebx, edx
mov ebp, edi
and ebx, 0x7e0
and ebp, 0x7e0
sub ebx, ebp
jns 0x42d18a
xor ebx, ebx
and edx, 0x1f
and edi, 0x1f
sub edx, edi
jns 0x42d196
xor edx, edx
mov edi, dword [esp + 0x18]
or ecx, ebx
mov ebx, dword [esp + 0x60]
or ecx, edx
mov word [eax], cx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x70]
add eax, 2
mov edx, ecx
sar edx, 0x10
and ecx, 0xffff
add esi, edx
sub dword [esp + 0x1c], 1
mov dword [esp + 0x30], ecx
jne 0x42d14d
mov eax, dword [esp + 0x34]
add dword [esp + 0x20], eax
add dword [esp + 0x64], 4
sub dword [esp + 0x14], 1
jne 0x42d10c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
fstp st(3)
fstp st(2)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret