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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
fldz
mov eax, dword [eax]
fld dword [esp + 0x68]
mov edx, dword [0x52b3ac]
fcom st(1)
push ebx
push ebp
mov ebp, dword [eax + 4]
imul ebp, dword [esp + 0x64]
add ebp, dword [eax + 0x18]
mov eax, dword [edx]
mov edx, dword [eax + 4]
imul edx, dword [0x52b3b0]
add edx, dword [eax + 0x18]
mov eax, ecx
and eax, 0xf800
mov dword [esp + 0x44], eax
mov eax, ecx
and eax, 0x7e0
mov dword [esp + 0x48], eax
mov eax, ecx
and eax, 0x1f
push esi
mov dword [esp + 0x50], eax
push edi
xor edi, edi
fnstsw ax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
test ah, 0x41
jnp 0x4301a7
fld dword [esp + 0x7c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x4301a7
cmp ecx, edi
je 0x4301a7
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x2c]
fld dword [esp + 0x70]
fild dword [ebp + 8]
fmul st(2)
fdiv dword [esp + 0x2c]
fsubp st(1)
fstp dword [esp + 0x70]
fild dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [esp + 0x74]
fild dword [ebp + 0xc]
fmul st(3)
fdiv dword [esp + 0x18]
fsubp st(1)
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4301a5
fld st(0)
faddp st(3)
fxch st(2)
fst qword [esp + 0x38]
fld qword [0x4a6ba0]
fsub st(1), st(0)
fild dword [0x52be04]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
je 0x4301a5
fld dword [esp + 0x70]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4301a3
faddp st(2)
fxch st(1)
fst qword [esp + 0x58]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x4301a9
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 0x42fdbc
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42fd88
inc ebx
mov dword [esp + 0x14], ebx
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x20]
fdiv dword [esp + 0x84]
fmul qword [0x4a6da0]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov edi, eax
jmp 0x42fdbe
fstp st(0)
mov esi, dword [0x52be04]
cmp ebx, esi
jge 0x42fe24
mov edx, esi
sub edx, ebx
imul edx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
sub esp, 8
fild dword [esp + 0x20]
fdiv dword [esp + 0x84]
fmul qword [0x4a6da0]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
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 + 0x18], eax
mov dword [esp + 0x14], esi
fldcw word [esp + 0x18]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
add edi, eax
fldcw word [esp + 0x10]
fld qword [esp + 0x38]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.0041c740
mov ebx, eax
mov eax, dword [0x52be08]
add esp, 4
cmp ebx, eax
jle 0x42fe4f
mov ebx, eax
mov ecx, ebx
sub ecx, dword [esp + 0x14]
inc ecx
test ecx, ecx
jle 0x4301ab
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 0x42fedf
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42fea5
inc dword [esp + 0x10]
fisubr dword [esp + 0x10]
sub esp, 8
fmul dword [esp + 0x34]
fdiv dword [esp + 0x80]
fmul qword [0x4a6da0]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0x70]
mov dword [esp + 0x18], eax
jmp 0x42fee7
mov dword [esp + 0x18], 0
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42ff5c
mov esi, dword [0x52be3c]
mov edx, esi
sub edx, dword [esp + 0x10]
sub esp, 8
imul edx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fdiv dword [esp + 0x80]
fmul qword [0x4a6da0]
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
fldcw word [esp + 0x2c]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
add dword [esp + 0x18], eax
fldcw word [esp + 0x10]
mov dword [esp + 0x10], esi
fld qword [esp + 0x58]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.0041c740
mov esi, eax
mov eax, dword [0x52be18]
add esp, 4
cmp esi, eax
jle 0x42ff87
mov esi, eax
mov eax, dword [esp + 0x1c]
shl eax, 0x10
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fdiv dword [esp + 0x78]
call fcn.00499690
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
shl eax, 0x10
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fdiv dword [esp + 0x7c]
call fcn.00499690
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x2c], eax
test ecx, ecx
jge 0x42ffe6
lea esp, [esp]
cmp dword [esp + 0x10], esi
jg 0x42ffe2
add ecx, dword [esp + 0x78]
inc dword [esp + 0x10]
test ecx, ecx
jl 0x42ffd0
mov dword [esp + 0x18], ecx
mov eax, ecx
sar eax, 0x10
test eax, eax
je 0x42fffd
and ecx, 0xffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
test edi, edi
jge 0x430011
cmp dword [esp + 0x14], ebx
jg 0x430011
inc dword [esp + 0x14]
add edi, edx
test edi, edi
jl 0x430001
mov eax, edi
sar eax, 0x10
test eax, eax
je 0x430024
mov dword [esp + 0x24], eax
and edi, 0xffff
sub esi, dword [esp + 0x10]
sub ebx, dword [esp + 0x14]
inc esi
mov eax, esi
inc ebx
mov dword [esp + 0x40], eax
mov esi, ebx
test eax, eax
jle 0x4301ab
test esi, esi
jle 0x4301ab
shl dword [esp + 0x10], 1
dec eax
imul eax, dword [esp + 0x78]
add eax, ecx
sar eax, 0x10
add eax, dword [esp + 0x28]
mov dword [esp + 0x20], edi
cmp eax, dword [ebp]
jl 0x430066
dec dword [esp + 0x78]
lea ecx, [esi - 1]
imul ecx, edx
add ecx, edi
sar ecx, 0x10
add ecx, dword [esp + 0x24]
cmp ecx, dword [ebp + 4]
jl 0x43007f
dec edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
push edx
mov eax, ebx
call fcn.00417890
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
test edi, edi
je 0x4301ab
mov eax, dword [0x52b3b0]
push eax
mov eax, dword [0x52b3ac]
call fcn.00417890
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x14]
add esp, 4
test eax, eax
jne 0x4300ce
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, ebx
call fcn.004177d0
add esp, 4
jmp 0x4300d5
mov ebx, eax
call fcn.00413ac0
test esi, esi
jle 0x4301ab
mov edx, dword [esp + 0x14]
lea eax, [edx*4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], esi
jmp 0x4300fa
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x2c]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x40]
sar ecx, 0x10
add ecx, dword [esp + 0x24]
mov edx, dword [edx + ecx*4]
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + ecx]
add eax, dword [esp + 0x38]
add edx, edi
add edx, dword [esp + 0x28]
add eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
nop
cmp byte [edx], 0
je 0x43016a
movzx esi, word [eax]
mov ecx, esi
and ecx, 0xf800
sub ecx, dword [esp + 0x4c]
jns 0x430148
xor ecx, ecx
mov ebx, esi
and ebx, 0x7e0
sub ebx, dword [esp + 0x50]
jns 0x430158
xor ebx, ebx
and esi, 0x1f
sub esi, dword [esp + 0x54]
jns 0x430163
xor esi, esi
or ecx, ebx
or ecx, esi
mov word [eax], cx
add edi, dword [esp + 0x78]
add eax, 2
mov ecx, edi
sar ecx, 0x10
add edx, ecx
and edi, 0xffff
sub ebp, 1
jne 0x430130
mov edx, dword [esp + 0x2c]
add dword [esp + 0x20], edx
add dword [esp + 0x6c], 4
sub dword [esp + 0x68], 1
jne 0x4300f2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(0)
fstp st(2)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret