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

Disassembly:
sub esp, 0x5c
mov eax, dword [esp + 0x60]
fldz
mov eax, dword [eax]
fld dword [esp + 0x70]
mov edx, dword [0x52b3ac]
fcom st(1)
push ebx
push ebp
push esi
push edi
mov edi, dword [eax + 4]
imul edi, dword [esp + 0x74]
add edi, 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 + 0x58], eax
mov eax, ecx
and eax, 0x7e0
mov dword [esp + 0x5c], eax
mov eax, ecx
and eax, 0x1f
mov dword [esp + 0x60], eax
xor ebx, ebx
fnstsw ax
mov dword [esp + 0x64], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
test ah, 0x41
jnp 0x4307aa
fld dword [esp + 0x84]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x4307aa
cmp ecx, ebx
je 0x4307aa
mov eax, dword [edi]
mov dword [esp + 0x24], eax
sub eax, dword [edi + 8]
fild dword [esp + 0x24]
mov ecx, dword [edi + 4]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
fld dword [esp + 0x78]
fild dword [esp + 0x34]
fmul st(2)
fdiv dword [esp + 0x1c]
fsub qword [0x4a6bd0]
fsubp st(1)
fstp dword [esp + 0x78]
fild dword [esp + 0x28]
fstp dword [esp + 0x20]
fld dword [esp + 0x7c]
fild dword [edi + 0xc]
fmul st(3)
fdiv dword [esp + 0x20]
fsubp st(1)
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4307a8
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 0x4307b8
fld dword [esp + 0x78]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x4307b6
faddp st(2)
fxch st(1)
fst qword [esp + 0x38]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x4307bc
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov esi, eax
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
fld dword [esp + 0x7c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x43038c
fild dword [esp + 0x18]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x430358
inc esi
mov dword [esp + 0x18], esi
fisubr dword [esp + 0x18]
sub esp, 8
fmul dword [esp + 0x28]
fdiv dword [esp + 0x8c]
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 0x43038e
fstp st(0)
mov ebp, dword [0x52be04]
cmp esi, ebp
jge 0x4303f6
mov edx, ebp
sub edx, esi
imul edx, dword [esp + 0x28]
mov dword [esp + 0x34], edx
sub esp, 8
fild dword [esp + 0x3c]
fdiv dword [esp + 0x8c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
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 + 0x34], eax
mov dword [esp + 0x18], ebp
mov esi, ebp
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov eax, dword [esp + 0x50]
add ebx, eax
fldcw word [esp + 0x14]
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 0x430428
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, esi
inc eax
test eax, eax
jle 0x4307be
fld dword [esp + 0x78]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld dword [esp + 0x78]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4304b6
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x43047a
inc dword [esp + 0x14]
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x24]
fdiv dword [esp + 0x88]
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 + 0x78]
mov ebp, eax
mov dword [esp + 0x1c], eax
jmp 0x4304bc
xor ebp, ebp
mov dword [esp + 0x1c], ebp
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x430533
mov esi, dword [0x52be3c]
mov ecx, esi
sub ecx, dword [esp + 0x14]
sub esp, 8
imul ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fdiv dword [esp + 0x88]
fmul qword [0x4a6da0]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
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 + 0x34], eax
fldcw word [esp + 0x34]
fistp qword [esp + 0x50]
mov edx, dword [esp + 0x50]
add ebp, edx
mov dword [esp + 0x1c], ebp
fldcw word [esp + 0x14]
mov dword [esp + 0x14], 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 0x43055e
mov esi, eax
mov eax, dword [esp + 0x24]
shl eax, 0x10
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdiv dword [esp + 0x80]
call fcn.00499690
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
shl eax, 0x10
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fdiv dword [esp + 0x84]
call fcn.00499690
mov dword [esp + 0x34], eax
test ebp, ebp
jge 0x4305bc
cmp dword [esp + 0x14], esi
jg 0x4305b8
add ebp, dword [esp + 0x80]
inc dword [esp + 0x14]
test ebp, ebp
jl 0x4305a3
mov dword [esp + 0x1c], ebp
mov ecx, ebp
sar ecx, 0x10
test ecx, ecx
je 0x4305d3
and ebp, 0xffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ebp
test ebx, ebx
jge 0x4305f6
jmp 0x4305e0
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x18], edx
jg 0x4305fa
inc dword [esp + 0x18]
add ebx, eax
test ebx, ebx
jl 0x4305e0
jmp 0x4305fa
mov edx, dword [esp + 0x20]
mov ecx, ebx
sar ecx, 0x10
test ecx, ecx
je 0x43060d
mov dword [esp + 0x2c], ecx
and ebx, 0xffff
sub esi, dword [esp + 0x14]
sub edx, dword [esp + 0x18]
inc esi
mov ecx, esi
inc edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x20], edx
test ecx, ecx
jle 0x4307be
test edx, edx
jle 0x4307be
shl dword [esp + 0x14], 1
dec ecx
imul ecx, dword [esp + 0x80]
add ecx, ebp
sar ecx, 0x10
add ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
cmp ecx, dword [edi]
jl 0x430656
dec dword [esp + 0x80]
dec edx
imul edx, eax
add edx, ebx
sar edx, 0x10
add edx, dword [esp + 0x2c]
cmp edx, dword [edi + 4]
jl 0x43066d
dec eax
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
push ecx
mov eax, ebx
call fcn.00417890
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
je 0x4307be
mov edx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push edx
call fcn.00417890
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x14]
add esp, 4
test eax, eax
jne 0x4306bd
mov eax, dword [edi + 0x30]
push eax
mov eax, ebx
call fcn.004177d0
add esp, 4
jmp 0x4306c4
mov ebx, eax
call fcn.00413ac0
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4307be
mov ecx, dword [esp + 0x18]
lea edx, [ecx*4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x20], eax
jmp 0x4306e9
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x2c]
sar eax, 0x10
add eax, dword [esp + 0x2c]
mov edx, dword [ecx + eax*4]
sub edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
add edx, esi
lea ebx, [edx + eax - 1]
mov edx, dword [ecx + 0x2c]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + edx]
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x14]
mov esi, ebp
mov dword [esp + 0x70], ecx
cmp byte [ebx], 0
je 0x43076a
movzx edx, word [eax]
mov ecx, edx
and ecx, 0xf800
sub ecx, dword [esp + 0x58]
jns 0x430740
xor ecx, ecx
mov edi, edx
and edi, 0x7e0
sub edi, dword [esp + 0x5c]
jns 0x430750
xor edi, edi
and edx, 0x1f
sub edx, dword [esp + 0x60]
jns 0x43075b
xor edx, edx
mov ebp, dword [esp + 0x1c]
or ecx, edi
mov edi, dword [esp + 0x64]
or ecx, edx
mov word [eax], cx
add esi, dword [esp + 0x80]
add eax, 2
mov edx, esi
sar edx, 0x10
sub ebx, edx
and esi, 0xffff
sub dword [esp + 0x70], 1
jne 0x430728
mov eax, dword [esp + 0x34]
add dword [esp + 0x28], eax
add dword [esp + 0x74], 4
sub dword [esp + 0x20], 1
jne 0x4306e5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(2)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret