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

Disassembly:
sub esp, 0x54
push ebx
fldz
mov ebx, dword [esp + 0x5c]
fld dword [esp + 0x6c]
mov eax, dword [ebx]
fcom st(1)
push ebp
push esi
mov esi, dword [esp + 0x68]
push edi
mov edi, dword [eax + 4]
imul edi, esi
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 ebp, ebp
fnstsw ax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
test ah, 0x41
jnp 0x42d840
fld dword [esp + 0x7c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x42d840
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
mov dword [esp + 0x1c], edx
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fsub st(2)
fabs
fld qword [0x4a6dc8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42d2e6
fild dword [esp + 0x1c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x42d2e8
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x74]
call fcn.00499690
fld dword [esp + 0x70]
mov edi, eax
call fcn.00499690
push eax
push esi
push ebx
mov eax, edi
call fcn.0042c4d0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(0)
sub ecx, dword [edi + 8]
fld dword [esp + 0x70]
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
fmul st(3)
fdivrp st(2)
fxch st(1)
fsub qword [0x4a6bd0]
fsubp st(1)
fstp dword [esp + 0x70]
fild dword [esp + 0x1c]
fstp dword [esp + 0x20]
fld dword [esp + 0x74]
fild dword [edi + 0xc]
fmul st(3)
fdiv dword [esp + 0x20]
fsubp st(1)
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42d83e
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 0x42d84e
fld dword [esp + 0x70]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42d84c
faddp st(2)
fxch st(1)
fst qword [esp + 0x38]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x42d852
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov ebx, eax
mov dword [esp + 0x14], ebx
fild dword [esp + 0x14]
fld dword [esp + 0x74]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42d410
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42d3dc
inc ebx
mov dword [esp + 0x14], ebx
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x28]
fdiv dword [esp + 0x84]
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 ebp, eax
jmp 0x42d412
fstp st(0)
mov esi, dword [0x52be04]
cmp ebx, esi
jge 0x42d47a
mov eax, esi
sub eax, ebx
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
sub esp, 8
fild dword [esp + 0x3c]
fdiv dword [esp + 0x84]
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], esi
mov ebx, esi
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov ecx, dword [esp + 0x50]
add ebp, 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 ecx, dword [0x52be08]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x42d4ac
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, ebx
inc eax
test eax, eax
jle 0x42d854
fld dword [esp + 0x70]
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 + 0x70]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42d53a
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42d4fe
inc dword [esp + 0x10]
fisubr dword [esp + 0x10]
sub esp, 8
fmul dword [esp + 0x20]
fdiv dword [esp + 0x80]
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 + 0x70]
mov esi, eax
mov dword [esp + 0x18], eax
jmp 0x42d540
xor esi, esi
mov dword [esp + 0x18], esi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42d5b7
mov ebx, dword [0x52be3c]
mov edx, ebx
sub edx, dword [esp + 0x10]
sub esp, 8
imul edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
fdiv dword [esp + 0x80]
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 eax, dword [esp + 0x50]
add esi, eax
mov dword [esp + 0x18], esi
fldcw word [esp + 0x10]
mov dword [esp + 0x10], ebx
fld qword [esp + 0x38]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.0041c740
mov ebx, eax
mov eax, dword [0x52be18]
add esp, 4
cmp ebx, eax
jle 0x42d5e2
mov ebx, eax
mov ecx, dword [esp + 0x24]
shl ecx, 0x10
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
fdiv dword [esp + 0x78]
call fcn.00499690
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c]
shl eax, 0x10
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdiv dword [esp + 0x7c]
call fcn.00499690
mov edx, eax
mov dword [esp + 0x30], eax
test esi, esi
jge 0x42d636
cmp dword [esp + 0x10], ebx
jg 0x42d632
add esi, dword [esp + 0x78]
inc dword [esp + 0x10]
test esi, esi
jl 0x42d620
mov dword [esp + 0x18], esi
mov eax, esi
sar eax, 0x10
test eax, eax
je 0x42d64d
and esi, 0xffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], esi
test ebp, ebp
jge 0x42d667
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x14], eax
jg 0x42d66b
inc dword [esp + 0x14]
add ebp, edx
test ebp, ebp
jl 0x42d651
jmp 0x42d66b
mov eax, dword [esp + 0x20]
mov ecx, ebp
sar ecx, 0x10
test ecx, ecx
je 0x42d67e
mov dword [esp + 0x28], ecx
and ebp, 0xffff
sub ebx, dword [esp + 0x10]
sub eax, dword [esp + 0x14]
inc ebx
mov ecx, ebx
inc eax
mov ebx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x34], ebx
test ecx, ecx
jle 0x42d854
test ebx, ebx
jle 0x42d854
shl dword [esp + 0x10], 1
dec ecx
imul ecx, dword [esp + 0x78]
add ecx, esi
sar ecx, 0x10
add ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], ebp
cmp ecx, dword [edi]
jl 0x42d6c3
dec dword [esp + 0x78]
lea eax, [ebx - 1]
imul eax, edx
add eax, ebp
sar eax, 0x10
add eax, dword [esp + 0x28]
cmp eax, dword [edi + 4]
jl 0x42d6dc
dec edx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
push ecx
mov eax, ebp
call fcn.00417890
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x42d854
mov edx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push edx
call fcn.00417890
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x14]
add esp, 4
test eax, eax
jne 0x42d730
mov eax, dword [edi + 0x30]
push eax
mov eax, ebp
call fcn.004177d0
mov ebp, eax
add esp, 4
mov dword [esp + 0x1c], ebp
jmp 0x42d741
mov ebp, eax
mov ebx, ebp
mov dword [esp + 0x1c], ebp
call fcn.00413ac0
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x42d854
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x2c]
sar eax, 0x10
add eax, dword [esp + 0x28]
mov ebx, esi
mov edx, dword [ecx + eax*4]
sub edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
add edx, dword [esp + 0x38]
lea ecx, [edx + eax - 1]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x2c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + eax]
add eax, dword [esp + 0x48]
mov dword [esp + 0x14], edx
add eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov cl, byte [ecx]
test cl, cl
je 0x42d801
movzx edx, cl
movsx esi, word [ebp + edx*2 + 0x5c]
movzx edx, word [eax]
mov ecx, edx
mov edi, esi
and ecx, 0xf800
and edi, 0xf800
sub ecx, edi
jns 0x42d7cc
xor ecx, ecx
mov edi, edx
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
sub edi, ebp
jns 0x42d7e2
xor edi, edi
and edx, 0x1f
and esi, 0x1f
sub edx, esi
jns 0x42d7ee
xor edx, edx
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
or ecx, edi
mov edi, dword [esp + 0x5c]
or ecx, edx
mov word [eax], cx
add ebx, dword [esp + 0x78]
add eax, 2
mov ecx, ebx
sar ecx, 0x10
sub dword [esp + 0x6c], ecx
and ebx, 0xffff
sub dword [esp + 0x14], 1
jne 0x42d7a1
mov edx, dword [esp + 0x30]
add dword [esp + 0x20], edx
add dword [esp + 0x68], 4
sub dword [esp + 0x34], 1
jne 0x42d75c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(3)
fstp st(2)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret