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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x3b4
mov eax, dword [ebp + 8]
fldz
fld st(0)
push ebx
mov ecx, dword [eax + 0x20]
fst qword [esp + 0x80]
fld qword [0x508548]
push esi
mov esi, dword [eax + 0x24]
push edi
xor edi, edi
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0x28]
fst qword [esp + 0x58]
fxch st(2)
mov dword [esp + 0x2c], esi
fst qword [esp + 0x98]
mov dword [esp + 0x3c], ecx
mov dword [esi + 0x18], 0
mov dword [esp + 0x70], edi
cmp dword [esi + 0x10], edi
jle 0x49f43b
fld1
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x88], ecx
mov edx, dword [esi + 0x14]
add edx, ecx
xor ecx, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], ecx
mov dword [edx + 0x1c], 0
cmp dword [edx + 0x10], ecx
jle 0x49f3d1
xor eax, eax
mov dword [esp + 0x94], eax
mov edi, dword [edx + 0x14]
xor ebx, ebx
add edi, eax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x30], edi
cmp dword [edi + 0x18], ebx
jle 0x49f3ae
lea ecx, [edi + 0x30]
mov dword [esp + 0x38], ecx
mov eax, dword [edi + 0x10]
imul eax, dword [edi + 0x14]
mov dword [esp + 0x6c], 0
test eax, eax
jle 0x49f38b
xor ebx, ebx
mov dword [esp + 0x7c], ebx
mov ecx, dword [ecx]
xor edi, edi
add ecx, ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x14]
imul eax, dword [ecx + 0x10]
test eax, eax
jle 0x49f35d
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov edx, dword [ecx + 0x18]
xor esi, esi
add edx, ebx
mov ebx, dword [edx + 0x2c]
test ebx, ebx
jle 0x49f304
mov edi, dword [edx + 8]
lea ecx, [esi + esi*2]
mov eax, dword [edi + ecx*8]
fld qword [edi + ecx*8 + 8]
test esi, esi
je 0x49f2b0
sub eax, dword [edi + ecx*8 - 0x18]
fsub qword [edi + ecx*8 - 0x10]
mov dword [esp + 0x58], eax
test eax, eax
je 0x49f2e6
fild dword [esp + 0x58]
fstp qword [esp + 0x98]
fdiv qword [esp + 0x98]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x49f2d9
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x49f2e6
fstp st(2)
jmp 0x49f2e8
fstp st(0)
inc esi
cmp esi, ebx
jl 0x49f29a
mov edi, dword [esp + 0x68]
fxch st(3)
fst qword [esp + 0x58]
fxch st(1)
fst qword [esp + 0x98]
fxch st(1)
fxch st(3)
mov ecx, dword [edx + 0x14]
inc edi
sub ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x18]
sub eax, dword [edx + 0x10]
mov esi, dword [esp + 0x2c]
imul ecx, eax
mov ebx, dword [esp + 0x80]
add ebx, 0x30
mov dword [esp + 0x68], edi
mov dword [esp + 0x80], ebx
add dword [esi + 0x18], ecx
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x18]
sub eax, dword [edx + 0x10]
mov edx, dword [esp + 0x48]
imul ecx, eax
add dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x14]
imul eax, dword [ecx + 0x10]
cmp edi, eax
jl 0x49f289
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x30]
add ebx, 0x24
mov ecx, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x6c], ecx
mov eax, dword [edi + 0x10]
imul eax, dword [edi + 0x14]
cmp ecx, eax
mov ecx, dword [esp + 0x38]
jl 0x49f263
mov ebx, dword [esp + 0x84]
inc ebx
add ecx, 0x20
mov dword [esp + 0x84], ebx
mov dword [esp + 0x38], ecx
cmp ebx, dword [edi + 0x18]
jl 0x49f246
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x94]
inc ecx
add eax, 0x7c
mov dword [esp + 0x60], ecx
mov dword [esp + 0x94], eax
cmp ecx, dword [edx + 0x10]
jl 0x49f224
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
inc edi
mov dword [esp + 0x70], edi
mov ecx, dword [eax + 0x18]
mov eax, 1
mov ecx, dword [ecx + ebx + 0x18]
add ebx, 0x30
shl eax, cl
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x30], eax
add ecx, 0x20
fild dword [esp + 0x30]
mov eax, dword [ebp + 8]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x50], ebx
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fsub st(1)
fmul st(0), st(0)
fild dword [edx + 0x1c]
fstp qword [esp + 0x30]
fmul qword [esp + 0x30]
faddp st(3)
cmp edi, dword [esi + 0x10]
jl 0x49f1fc
fstp st(1)
fstp st(2)
fstp st(1)
fstp qword [esp + 0x88]
jmp 0x49f441
fstp st(0)
fstp st(1)
fstp st(0)
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x3c]
test ebx, ebx
je 0x49f47f
mov eax, dword [eax + 0x2c]
mov ecx, dword [esp + 0x2c]
lea esi, [eax + eax*8]
mov eax, dword [ecx + 0x18]
shl esi, 6
add esi, dword [ebx + 0x58]
mov dword [esi + 0x228], eax
fld qword [ecx + 0x20]
fstp qword [esi + 0x230]
mov eax, dword [edi + 0xc]
shl eax, 3
push eax
call sub.MSVCRT.dll_malloc
add esp, 4
mov dword [esi], eax
xor esi, esi
cmp dword [edi + 0xc], esi
jle 0x49f6ff
fldz
fld qword [esp + 0x58]
fstp qword [esp + 0x50]
fld qword [esp + 0x98]
fstp qword [esp + 0x40]
fld dword [edi + esi*4 + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x49f4d0
fld dword [edi + esi*4 + 0x14]
sub esp, 8
fstp qword [esp]
call sub.MSVCRT.dll_ceil
add esp, 8
call fcn.00417190
mov edi, eax
mov eax, dword [ebp + 0x10]
cmp edi, eax
jl 0x49f4d3
mov edi, eax
jmp 0x49f4d3
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x3c]
fldz
fstp qword [esp + 0x48]
fld dword [ecx + esi*4 + 0x1440]
fld qword [0x4e3dc0]
fdiv st(1), st(0)
fxch st(1)
call sub.MSVCRT.dll__CIpow
fdivr qword [esp + 0x88]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
cmp dword [ecx + 0x18], 1
fsubr qword [eax + 0x20]
fstp qword [esp + 0x70]
fldz
jne 0x49f520
fcom dword [edx + esi*4 + 0x14]
fnstsw ax
test ah, 5
jnp 0x49f53e
cmp dword [ecx + 0x20], 1
jne 0x49f69b
fcomp dword [edx + esi*4 + 0x1440]
fnstsw ax
test ah, 5
jp 0x49f69d
jmp 0x49f540
fstp st(0)
mov eax, dword [ebp + 8]
push ecx
push dword [eax + 0x1c]
push dword [eax + 0x14]
call fcn.004a3860
fld qword [esp + 0x4c]
add esp, 0xc
mov dword [esp + 0x38], eax
mov ebx, 0x20
jmp 0x49f563
fstp st(0)
fadd qword [esp + 0x50]
push 0
sub esp, 8
fmul qword [0x4e3180]
fst qword [esp + 0x3c]
fstp qword [esp]
push esi
push dword [ebp + 8]
call fcn.0049db90
mov eax, dword [esp + 0x78]
add esp, 0x14
cmp dword [eax + 0x20], 0
je 0x49f617
cmp dword [eax], 0
je 0x49f5e2
mov ecx, dword [ebp + 8]
lea eax, [esi + 1]
push dword [ecx + 0xc]
push 0
push dword [ecx + 0x10]
push dword [ecx]
push dword [ecx + 8]
push dword [ebp + 0x14]
push edi
push dword [ebp + 0xc]
push eax
push dword [esp + 0x50]
push dword [ecx + 0x2c]
push dword [esp + 0x64]
call fcn.004a49a0
add esp, 0x30
cmp eax, 0xfffffc19
jne 0x49f5e2
fld qword [esp + 0x30]
fstp qword [esp + 0x50]
fld qword [esp + 0x40]
fld qword [esp + 0x48]
jmp 0x49f66a
mov eax, dword [esp + 0x2c]
test esi, esi
jne 0x49f5ef
fld qword [eax + 0x28]
jmp 0x49f5fa
fld qword [eax + esi*8 + 0x28]
fadd qword [esp + esi*8 + 0x98]
fcomp qword [esp + 0x70]
fnstsw ax
fld qword [esp + 0x30]
test ah, 5
jnp 0x49f65e
fstp qword [esp + 0x50]
fld qword [esp + 0x40]
fld qword [esp + 0x48]
jmp 0x49f66a
mov ecx, dword [ebp + 8]
lea eax, [esi + 1]
push dword [ecx + 0xc]
push 0
push dword [ecx + 0x10]
push dword [ecx]
push dword [ecx + 8]
push dword [ebp + 0x14]
push edi
push dword [ebp + 0xc]
push eax
push dword [esp + 0x50]
push dword [ecx + 0x2c]
push dword [esp + 0x64]
call fcn.004a49a0
fld qword [esp + 0x60]
add esp, 0x30
cmp eax, 0xfffffc19
jne 0x49f65e
fstp qword [esp + 0x50]
fld qword [esp + 0x40]
fld qword [esp + 0x48]
jmp 0x49f66a
fld st(0)
fst qword [esp + 0x40]
fxch st(1)
fst qword [esp + 0x48]
dec ebx
jne 0x49f561
fstp st(1)
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x49f682
fstp st(0)
jmp 0x49f686
fstp qword [esp + 0x30]
push dword [esp + 0x38]
call fcn.004a43b0
fld qword [esp + 0x34]
add esp, 4
mov ebx, dword [ebp + 0x14]
jmp 0x49f6a1
fstp st(0)
fld qword [esp + 0x58]
test ebx, ebx
je 0x49f6ba
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 0x58]
shl ecx, 6
mov eax, dword [ecx + eax]
fst qword [eax + esi*8]
push 1
sub esp, 8
fstp qword [esp]
push esi
push dword [ebp + 8]
call fcn.0049db90
mov eax, dword [esp + 0x40]
add esp, 0x14
test esi, esi
jne 0x49f6db
fld qword [eax + 0x28]
jmp 0x49f6e6
fld qword [esp + esi*8 + 0x98]
fadd qword [eax + esi*8 + 0x28]
mov edi, dword [esp + 0x3c]
fstp qword [esp + esi*8 + 0xa0]
fldz
inc esi
cmp esi, dword [edi + 0xc]
jl 0x49f48c
fstp st(0)
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret