Function at 0x424340
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 0x4249b7
fld dword [esp + 0x84]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x4249b7
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 0x424417
fild dword [esp + 0x2c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x424419
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.00420d40
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 0x4249b5
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 0x4249c5
fld dword [esp + 0x78]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4249c3
faddp st(2)
fxch st(1)
fst qword [esp + 0x40]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x4249c9
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 0x42454d
fild dword [esp + 0x18]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x424517
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 0x424557
fstp st(0)
mov dword [esp + 0x24], 0
mov ebp, dword [0x52be04]
cmp ebx, ebp
jge 0x4245bf
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 0x4245f1
mov dword [esp + 0x28], ecx
mov eax, ecx
sub eax, ebx
inc eax
test eax, eax
jle 0x4249cb
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 0x424682
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x424646
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 0x424688
xor esi, esi
mov dword [esp + 0x1c], esi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4246fb
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 0x424726
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 0x424784
jmp 0x424770
cmp ebp, ebx
jg 0x424780
add esi, dword [esp + 0x80]
inc ebp
test esi, esi
jl 0x424770
mov dword [esp + 0x1c], esi
mov eax, esi
sar eax, 0x10
test eax, eax
je 0x42479b
and esi, 0xffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x4247bb
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x18], ecx
jg 0x4247bf
add eax, dword [esp + 0x20]
inc dword [esp + 0x18]
test eax, eax
jl 0x4247a3
jmp 0x4247bf
mov ecx, dword [esp + 0x28]
mov edx, eax
sar edx, 0x10
test edx, edx
je 0x4247d1
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 0x4249cb
test ecx, ecx
jle 0x4249cb
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 0x42481a
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 0x424832
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 0x4249cb
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 0x424883
mov ecx, dword [edi + 0x30]
push ecx
mov eax, ebx
call fcn.004177d0
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x42488e
mov ebx, eax
mov dword [esp + 0x24], ebx
call fcn.00413ac0
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x4249cb
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 ecx, dword [ecx + eax]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
add ecx, ebp
mov eax, dword [esp + 0x74]
mov al, byte [eax]
test al, al
je 0x424971
movzx edx, al
mov eax, dword [esp + 0x24]
movzx esi, word [eax + edx*2 + 0x5c]
movzx edx, word [ecx]
mov eax, edx
mov edi, esi
and eax, 0xf800
and edi, 0xf800
add eax, edi
cmp eax, 0xf800
jbe 0x42492d
mov eax, 0xf800
mov edi, edx
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
add edi, ebp
cmp edi, 0x7e0
jbe 0x42494c
mov edi, 0x7e0
and edx, 0x1f
and esi, 0x1f
add edx, esi
cmp edx, 0x1f
jbe 0x42495e
mov edx, 0x1f
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
or eax, edi
mov edi, dword [esp + 0x64]
or eax, edx
mov word [ecx], ax
add ebx, dword [esp + 0x80]
add ecx, 2
mov edx, ebx
sar edx, 0x10
sub dword [esp + 0x74], edx
and ebx, 0xffff
sub dword [esp + 0x18], 1
jne 0x4248f7
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], eax
add dword [esp + 0x70], 4
sub dword [esp + 0x3c], 1
jne 0x4248ad
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