Function at 0x423ce0
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 0x424320
fld dword [esp + 0x7c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x424320
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 0x423db5
fild dword [esp + 0x1c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x423db7
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.00420ad0
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 0x42431e
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 0x42432e
fld dword [esp + 0x70]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x42432c
faddp st(2)
fxch st(1)
fst qword [esp + 0x38]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x424332
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 0x423edb
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x423ea7
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 0x423edd
fstp st(0)
mov edi, dword [0x52be04]
cmp esi, edi
jge 0x423f45
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 0x423f77
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, esi
inc eax
test eax, eax
jle 0x424334
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 0x424005
fild dword [esp + 0x10]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x423fc9
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 0x42400b
xor edi, edi
mov dword [esp + 0x18], edi
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x424082
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 0x4240ad
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 0x424106
jmp 0x4240f0
cmp dword [esp + 0x10], esi
jg 0x424102
add edi, dword [esp + 0x78]
inc dword [esp + 0x10]
test edi, edi
jl 0x4240f0
mov dword [esp + 0x18], edi
mov eax, edi
sar eax, 0x10
test eax, eax
je 0x42411d
and edi, 0xffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
test ebx, ebx
jge 0x424137
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x14], ecx
jg 0x42413b
inc dword [esp + 0x14]
add ebx, edx
test ebx, ebx
jl 0x424121
jmp 0x42413b
mov ecx, dword [esp + 0x20]
mov eax, ebx
sar eax, 0x10
test eax, eax
je 0x42414e
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 0x424334
test esi, esi
jle 0x424334
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 0x424190
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 0x4241a9
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 0x424334
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 0x4241fc
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 0x424207
mov ebx, eax
mov dword [esp + 0x68], ebx
call fcn.00413ac0
test esi, esi
jle 0x424334
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 ecx, dword [eax + edx]
add esi, dword [esp + 0x38]
add ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
add esi, dword [esp + 0x2c]
add ecx, dword [esp + 0x10]
mov eax, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov dl, byte [esi]
test dl, dl
je 0x4242dc
movzx eax, dl
movzx edi, word [ebx + eax*2 + 0x5c]
movzx edx, word [ecx]
mov eax, edx
mov ebx, edi
and eax, 0xf800
and ebx, 0xf800
add eax, ebx
cmp eax, 0xf800
jbe 0x424294
mov eax, 0xf800
mov ebx, edx
mov ebp, edi
and ebx, 0x7e0
and ebp, 0x7e0
add ebx, ebp
cmp ebx, 0x7e0
jbe 0x4242b3
mov ebx, 0x7e0
and edx, 0x1f
and edi, 0x1f
add edx, edi
cmp edx, 0x1f
jbe 0x4242c5
mov edx, 0x1f
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x5c]
or eax, ebx
mov ebx, dword [esp + 0x68]
or eax, edx
mov word [ecx], ax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x78]
add ecx, 2
mov edx, eax
sar edx, 0x10
and eax, 0xffff
add esi, edx
sub dword [esp + 0x14], 1
mov dword [esp + 0x20], eax
jne 0x424266
mov eax, dword [esp + 0x30]
add dword [esp + 0x24], eax
add dword [esp + 0x6c], 4
sub dword [esp + 0x34], 1
jne 0x424222
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