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

Disassembly:
sub esp, 0x54
push ebx
fldz
push ebp
fld dword [esp + 0x70]
push esi
fcom st(1)
mov esi, dword [esp + 0x68]
push edi
mov edi, dword [esp + 0x68]
mov eax, dword [edi]
mov ebp, dword [eax + 4]
imul ebp, esi
add ebp, 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 ebx, ebx
fnstsw ax
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
test ah, 0x41
jnp 0x42de87
fld dword [esp + 0x7c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x42de87
mov ecx, dword [ebp]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x1c], ecx
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 0x42d935
fild dword [esp + 0x1c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x42d937
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x74]
call fcn.00499690
fld dword [esp + 0x70]
push eax
call fcn.00499690
push esi
push edi
mov ecx, eax
call fcn.0042c730
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(0)
fild dword [ebp + 8]
sub ecx, dword [ebp + 0xc]
mov dword [esp + 0x34], ecx
fmul st(2)
fdivrp st(1)
fsubr dword [esp + 0x70]
fstp dword [esp + 0x70]
fild dword [esp + 0x1c]
fstp dword [esp + 0x20]
fld dword [esp + 0x74]
fild dword [esp + 0x34]
fmul st(3)
fdiv dword [esp + 0x20]
fsub qword [0x4a6bd0]
fsubp st(1)
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42de85
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 0x42de95
fld dword [esp + 0x70]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42de93
faddp st(2)
fxch st(1)
fst qword [esp + 0x38]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x42de99
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 + 0x74]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42da5b
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42da27
inc esi
mov dword [esp + 0x14], esi
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 ebx, eax
jmp 0x42da5d
fstp st(0)
mov edi, dword [0x52be04]
cmp esi, edi
jge 0x42dac5
mov edx, edi
sub edx, esi
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
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], edi
mov esi, edi
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov eax, dword [esp + 0x50]
add ebx, eax
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 0x42daf7
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, esi
inc eax
test eax, eax
jle 0x42de9b
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 0x42db85
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42db49
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 edi, eax
mov dword [esp + 0x18], eax
jmp 0x42db8b
xor edi, edi
mov dword [esp + 0x18], edi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42dc02
mov esi, dword [0x52be3c]
mov ecx, esi
sub ecx, dword [esp + 0x10]
sub esp, 8
imul ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
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 edx, dword [esp + 0x50]
add edi, edx
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 0x42dc2d
mov esi, eax
mov eax, dword [esp + 0x24]
shl eax, 0x10
mov dword [esp + 0x34], eax
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 edi, edi
jge 0x42dc86
jmp 0x42dc70
cmp dword [esp + 0x10], esi
jg 0x42dc82
add edi, dword [esp + 0x78]
inc dword [esp + 0x10]
test edi, edi
jl 0x42dc70
mov dword [esp + 0x18], edi
mov eax, edi
sar eax, 0x10
test eax, eax
je 0x42dc9d
and edi, 0xffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
test ebx, ebx
jge 0x42dcb7
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x14], ecx
jg 0x42dcbb
inc dword [esp + 0x14]
add ebx, edx
test ebx, ebx
jl 0x42dca1
jmp 0x42dcbb
mov ecx, dword [esp + 0x20]
mov eax, ebx
sar eax, 0x10
test eax, eax
je 0x42dcce
mov dword [esp + 0x28], eax
and ebx, 0xffff
sub esi, dword [esp + 0x10]
sub ecx, dword [esp + 0x14]
inc esi
mov eax, esi
inc ecx
mov dword [esp + 0x50], eax
mov esi, ecx
test eax, eax
jle 0x42de9b
test esi, esi
jle 0x42de9b
shl dword [esp + 0x10], 1
dec eax
imul eax, dword [esp + 0x78]
add eax, edi
sar eax, 0x10
add eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
cmp eax, dword [ebp]
jl 0x42dd10
dec dword [esp + 0x78]
lea ecx, [esi - 1]
imul ecx, edx
add ecx, ebx
sar ecx, 0x10
add ecx, dword [esp + 0x28]
cmp ecx, dword [ebp + 4]
jl 0x42dd29
dec edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
push edx
mov eax, ebx
call fcn.00417890
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x42de9b
mov eax, dword [0x52b3b0]
push eax
mov eax, dword [0x52b3ac]
call fcn.00417890
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x14]
add esp, 4
test eax, eax
jne 0x42dd7c
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, ebx
call fcn.004177d0
mov ebx, eax
add esp, 4
mov dword [esp + 0x68], ebx
jmp 0x42dd87
mov ebx, eax
mov dword [esp + 0x68], ebx
call fcn.00413ac0
test esi, esi
jle 0x42de9b
mov edx, dword [esp + 0x14]
lea eax, [edx*4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x2c]
sar ecx, 0x10
sub edx, ecx
sub edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov esi, dword [eax + edx*4 - 4]
mov edx, dword [ecx + 0x2c]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + edx]
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 + 0x20], ecx
mov dword [esp + 0x14], edx
mov dl, byte [esi]
test dl, dl
je 0x42de46
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 0x42de0d
xor ecx, ecx
mov ebx, edx
mov ebp, edi
and ebx, 0x7e0
and ebp, 0x7e0
sub ebx, ebp
jns 0x42de23
xor ebx, ebx
and edx, 0x1f
and edi, 0x1f
sub edx, edi
jns 0x42de2f
xor edx, edx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x5c]
or ecx, ebx
mov ebx, dword [esp + 0x68]
or ecx, edx
mov word [eax], cx
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x78]
add eax, 2
mov edx, ecx
sar edx, 0x10
and ecx, 0xffff
add esi, edx
sub dword [esp + 0x14], 1
mov dword [esp + 0x20], ecx
jne 0x42dde6
mov eax, dword [esp + 0x30]
add dword [esp + 0x24], eax
add dword [esp + 0x6c], 4
sub dword [esp + 0x34], 1
jne 0x42dda2
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