Function at 0x42deb0
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
push edi
mov edi, dword [eax + 4]
imul edi, ebx
add edi, dword [eax + 0x18]
mov eax, dword [0x52b3ac]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
imul ecx, dword [0x52b3b0]
add ecx, dword [eax + 0x18]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], edi
fnstsw ax
mov dword [esp + 0x4c], ecx
test ah, 0x41
jnp 0x42e511
fld dword [esp + 0x84]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x42e511
mov ecx, dword [edi]
mov esi, dword [edi + 4]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
mov dword [esp + 0x2c], esi
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld st(0)
fsub st(2)
fabs
fld qword [0x4a6dc8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42df87
fild dword [esp + 0x2c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x42df89
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x7c]
call fcn.00499690
fld dword [esp + 0x78]
push eax
call fcn.00499690
push eax
push ebx
push ebp
call fcn.0042c980
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(0)
sub ecx, dword [edi + 8]
fld dword [esp + 0x78]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
mov ecx, esi
sub ecx, dword [edi + 0xc]
fmul st(3)
mov dword [esp + 0x3c], 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 + 0x2c]
fstp dword [esp + 0x28]
fild dword [esp + 0x3c]
fmul st(3)
fdiv dword [esp + 0x28]
fsubrp st(1)
fsubr dword [esp + 0x7c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42e50f
fld st(0)
faddp st(3)
fxch st(2)
fst qword [esp + 0x50]
fld qword [0x4a6ba0]
fsub st(1), st(0)
fild dword [0x52be04]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
je 0x42e51f
fld dword [esp + 0x78]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42e51d
faddp st(2)
fxch st(1)
fst qword [esp + 0x40]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x42e523
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov ebx, eax
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
fld dword [esp + 0x7c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42e0bd
fild dword [esp + 0x18]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42e087
inc ebx
mov dword [esp + 0x18], ebx
fisubr dword [esp + 0x18]
sub esp, 8
fmul dword [esp + 0x30]
fdiv dword [esp + 0x8c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x24], eax
jmp 0x42e0c7
fstp st(0)
mov dword [esp + 0x24], 0
mov ebp, dword [0x52be04]
cmp ebx, ebp
jge 0x42e12f
mov edx, ebp
sub edx, ebx
imul edx, esi
mov dword [esp + 0x3c], edx
sub esp, 8
fild dword [esp + 0x44]
fdiv dword [esp + 0x8c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x1c]
add esp, 8
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], ebp
mov ebx, ebp
fldcw word [esp + 0x3c]
fistp qword [esp + 0x58]
mov eax, dword [esp + 0x58]
add dword [esp + 0x24], eax
fldcw word [esp + 0x14]
fld qword [esp + 0x50]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
call fcn.0041c740
mov ecx, dword [0x52be08]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x28], eax
jle 0x42e161
mov dword [esp + 0x28], ecx
mov eax, ecx
sub eax, ebx
inc eax
test eax, eax
jle 0x42e525
fld dword [esp + 0x78]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov ebp, eax
mov dword [esp + 0x14], ebp
fild dword [esp + 0x14]
fld dword [esp + 0x78]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42e1f2
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42e1b6
inc ebp
mov dword [esp + 0x14], ebp
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x28]
fdiv dword [esp + 0x88]
fmul qword [0x4a6da0]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0x78]
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x42e1f8
xor esi, esi
mov dword [esp + 0x1c], esi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42e26b
mov ebx, dword [0x52be3c]
mov ecx, ebx
sub ecx, ebp
imul ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
sub esp, 8
fild dword [esp + 0x44]
fdiv dword [esp + 0x88]
fmul qword [0x4a6da0]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x1c]
add esp, 8
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x3c], eax
mov ebp, ebx
fldcw word [esp + 0x3c]
fistp qword [esp + 0x58]
mov edx, dword [esp + 0x58]
add esi, edx
mov dword [esp + 0x1c], esi
fldcw word [esp + 0x14]
fld qword [esp + 0x40]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
call fcn.0041c740
mov ebx, eax
mov eax, dword [0x52be18]
add esp, 4
cmp ebx, eax
jle 0x42e296
mov ebx, eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fdiv dword [esp + 0x80]
call fcn.00499690
mov ecx, dword [esp + 0x2c]
shl ecx, 0x10
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
mov dword [esp + 0x80], eax
fdiv dword [esp + 0x84]
call fcn.00499690
mov dword [esp + 0x20], eax
test esi, esi
jge 0x42e2f4
jmp 0x42e2e0
cmp ebp, ebx
jg 0x42e2f0
add esi, dword [esp + 0x80]
inc ebp
test esi, esi
jl 0x42e2e0
mov dword [esp + 0x1c], esi
mov eax, esi
sar eax, 0x10
test eax, eax
je 0x42e30b
and esi, 0xffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x42e32b
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x18], ecx
jg 0x42e32f
add eax, dword [esp + 0x20]
inc dword [esp + 0x18]
test eax, eax
jl 0x42e313
jmp 0x42e32f
mov ecx, dword [esp + 0x28]
mov edx, eax
sar edx, 0x10
test edx, edx
je 0x42e341
mov dword [esp + 0x34], edx
and eax, 0xffff
sub ecx, dword [esp + 0x18]
sub ebx, ebp
inc ebx
mov edx, ebx
inc ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x3c], ecx
test edx, edx
jle 0x42e525
test ecx, ecx
jle 0x42e525
dec edx
imul edx, dword [esp + 0x80]
add edx, esi
sar edx, 0x10
add edx, dword [esp + 0x38]
add ebp, ebp
cmp edx, dword [edi]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
jl 0x42e38a
dec dword [esp + 0x80]
dec ecx
imul ecx, dword [esp + 0x20]
add ecx, eax
sar ecx, 0x10
add ecx, dword [esp + 0x34]
cmp ecx, dword [edi + 4]
jl 0x42e3a2
dec dword [esp + 0x20]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
push edx
mov eax, ebx
call fcn.00417890
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
je 0x42e525
mov eax, dword [0x52b3b0]
push eax
mov eax, dword [0x52b3ac]
call fcn.00417890
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x14]
add esp, 4
test eax, eax
jne 0x42e3f3
mov ecx, dword [edi + 0x30]
push ecx
mov eax, ebx
call fcn.004177d0
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x42e3fe
mov ebx, eax
mov dword [esp + 0x24], ebx
call fcn.00413ac0
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x42e525
mov edx, dword [esp + 0x18]
lea ecx, [edx*4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x2c]
sar edx, 0x10
sub eax, edx
sub eax, dword [esp + 0x34]
mov ebx, esi
mov edx, dword [ecx + eax*4 - 4]
sub edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add edx, dword [esp + 0x40]
lea ecx, [edx + eax - 1]
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x2c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + eax]
add eax, dword [esp + 0x50]
mov dword [esp + 0x18], edx
add eax, ebp
mov ecx, dword [esp + 0x74]
mov cl, byte [ecx]
test cl, cl
je 0x42e4cb
movzx edx, cl
mov ecx, dword [esp + 0x24]
movsx esi, word [ecx + edx*2 + 0x5c]
movzx edx, word [eax]
mov ecx, edx
mov edi, esi
and ecx, 0xf800
and edi, 0xf800
sub ecx, edi
jns 0x42e496
xor ecx, ecx
mov edi, edx
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
sub edi, ebp
jns 0x42e4ac
xor edi, edi
and edx, 0x1f
and esi, 0x1f
sub edx, esi
jns 0x42e4b8
xor edx, edx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
or ecx, edi
mov edi, dword [esp + 0x64]
or ecx, edx
mov word [eax], cx
add ebx, dword [esp + 0x80]
add eax, 2
mov edx, ebx
sar edx, 0x10
sub dword [esp + 0x74], edx
and ebx, 0xffff
sub dword [esp + 0x18], 1
jne 0x42e467
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], eax
add dword [esp + 0x70], 4
sub dword [esp + 0x3c], 1
jne 0x42e41d
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