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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x574b5a
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x59ad00]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov esi, ecx
movsd xmm0, qword [esi + 0x20]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
movsd qword [eax], xmm0
mov eax, dword [ebp + 0x10]
movsd qword [ecx], xmm0
movsd xmm0, qword [esi + 0x28]
movsd qword [edx], xmm0
movsd qword [eax], xmm0
movsd xmm1, qword [esi + 0x30]
movsd xmm2, qword [0x57e348]
ucomisd xmm1, xmm2
lahf
movsd qword [esp + 0x44], xmm1
test ah, 0x44
jnp 0x4a49d7
movsd xmm0, qword [esi + 0x40]
ucomisd xmm0, xmm2
lahf
movsd qword [esp + 0x1c], xmm0
test ah, 0x44
jnp 0x4a49d7
movsd xmm3, qword [esi + 0x38]
movsd xmm2, qword [0x57e350]
ucomisd xmm3, xmm2
lahf
test ah, 0x44
jnp 0x4a49d7
movsd xmm3, qword [esi + 0x48]
ucomisd xmm3, xmm2
lahf
test ah, 0x44
jnp 0x4a49d7
mov edi, dword [esi + 0x10]
cmp edi, 1
jl 0x4a49d7
mov ebx, dword [esi + 0x14]
cmp ebx, 1
jl 0x4a49d7
movsd xmm2, qword [0x57b948]
movsd xmm3, qword [esi + 0x20]
mov eax, dword [esi + 0xc]
mulsd xmm3, xmm2
movsd qword [esp + 0x24], xmm3
movsd xmm3, qword [esi + 0x28]
add eax, 0xffffffc9
mulsd xmm3, xmm2
movsd qword [esp + 0x3c], xmm3
mov dword [esp + 0x54], edi
mov byte [esp + 0x1b], 0
cmp eax, 4
ja case.0x4a40b8.58
jmp dword [eax*4 + 0x4a49f4]
mov ecx, esi
movsd qword [esp + 0x2c], xmm1
call fcn.004a36f0
fsub qword [esp + 0x24]
fld qword [esp + 0x44]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a40f8
mov ecx, esi
call fcn.004a36f0
fsub qword [esp + 0x44]
mov ecx, dword [ebp + 8]
fstp qword [ecx]
mov ecx, esi
call fcn.004a36f0
fstp qword [esp + 0x2c]
dec edi
movsd xmm0, qword [esi + 0x38]
mov ecx, esi
movsd qword [esp + 0x44], xmm0
movsd qword [esp + 0x54], xmm0
call fcn.004a3730
fadd qword [esp + 0x24]
fld qword [esp + 0x44]
fcompi st(1)
fstp st(0)
jbe 0x4a413a
mov ecx, esi
call fcn.004a3730
fsubr qword [esp + 0x44]
mov edx, dword [ebp + 0xc]
mov ecx, esi
fstp qword [edx]
dec edi
call fcn.004a3730
fstp qword [esp + 0x54]
movsd xmm0, qword [esp + 0x54]
test edi, edi
jle 0x4a41c3
subsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [0x57ca30]
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esi + 0x20]
andpd xmm1, xmm2
comisd xmm1, xmmword [0x57e398]
movsd qword [esp + 0x2c], xmm0
jbe 0x4a41c3
mov ecx, esi
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x20], xmm0
call fcn.004a36f0
fsub qword [esp + 0x24]
fld qword [esi + 0x30]
fcompi st(1)
fstp st(0)
jbe 0x4a41a5
mov eax, dword [ebp + 8]
movsd xmm0, qword [esp + 0x2c]
movsd qword [eax], xmm0
mov ecx, esi
call fcn.004a3730
fadd qword [esp + 0x24]
fld qword [esi + 0x38]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a41c3
fld qword [esi + 0x20]
mov ecx, dword [ebp + 0xc]
fstp qword [ecx]
movsd xmm0, qword [esi + 0x40]
mov ecx, esi
movsd qword [esp + 0x1c], xmm0
movsd qword [esp + 0x2c], xmm0
call fcn.004a37b0
fsub qword [esp + 0x3c]
fld qword [esp + 0x1c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a4207
mov ecx, esi
call fcn.004a37b0
fsub qword [esp + 0x1c]
mov edx, dword [ebp + 0x10]
mov ecx, esi
fstp qword [edx]
call fcn.004a37b0
fstp qword [esp + 0x2c]
dec ebx
movsd xmm0, qword [esi + 0x48]
mov ecx, esi
movsd qword [esp + 0x1c], xmm0
movsd qword [esp + 0x24], xmm0
call fcn.004a37f0
fadd qword [esp + 0x3c]
fld qword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4a4249
mov ecx, esi
call fcn.004a37f0
fsubr qword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
mov ecx, esi
fstp qword [eax]
dec ebx
call fcn.004a37f0
fstp qword [esp + 0x24]
movsd xmm0, qword [esp + 0x24]
test ebx, ebx
jle case.0x4a40b8.58
subsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [0x57ca30]
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esi + 0x28]
andpd xmm1, xmm2
comisd xmm1, xmmword [0x57e398]
movsd qword [esp + 0x2c], xmm0
jbe case.0x4a40b8.58
mov ecx, esi
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x28], xmm0
call fcn.004a37b0
fsub qword [esp + 0x3c]
fld qword [esi + 0x40]
fcompi st(1)
fstp st(0)
jbe 0x4a42bc
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [esp + 0x2c]
movsd qword [ecx], xmm0
mov ecx, esi
call fcn.004a37f0
fadd qword [esp + 0x3c]
fld qword [esi + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe case.0x4a40b8.58
fld qword [esi + 0x28]
mov edx, dword [ebp + 0x14]
jmp 0x4a478a
mov edi, dword [esi + 0xc8]
cmp dword [edi + 0xc], 0x13
jne case.0x4a40b8.58
mov ecx, edi
movsd qword [esp + 0x2c], xmm0
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esp + 0x1c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a432a
mov ecx, edi
call fcn.0045cf90
fsub qword [esp + 0x1c]
mov eax, dword [ebp + 0x10]
mov ecx, edi
fstp qword [eax]
call fcn.0045cf90
fstp qword [esp + 0x2c]
dec ebx
movsd xmm0, qword [esi + 0x48]
mov ecx, edi
movsd qword [esp + 0x1c], xmm0
movsd qword [esp + 0x24], xmm0
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4a436c
mov ecx, edi
call fcn.0045cfd0
fsubr qword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
fstp qword [ecx]
mov ecx, edi
call fcn.0045cfd0
fstp qword [esp + 0x24]
dec ebx
movsd xmm0, qword [esp + 0x24]
test ebx, ebx
jle 0x4a43ea
subsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [0x57ca30]
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esi + 0x28]
andpd xmm1, xmm2
comisd xmm1, xmmword [0x57e398]
jbe 0x4a43b0
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x28], xmm0
mov ecx, edi
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esi + 0x40]
fcompi st(1)
fstp st(0)
jbe 0x4a43cc
fld qword [esi + 0x28]
mov edx, dword [ebp + 0x10]
fstp qword [edx]
mov ecx, edi
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esi + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a43ea
fld qword [esi + 0x28]
mov eax, dword [ebp + 0x14]
fstp qword [eax]
cmp dword [edi + 0xd8], 0
jne case.0x4a40b8.58
xor eax, eax
mov ecx, 1
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x100], cl
movsd xmm2, qword [0x57e3a8]
movsd xmm0, qword [edi + 0x18]
movsd xmm1, qword [edi + 0x10]
sub esp, 0x18
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x60]
push edx
mov ecx, edi
call fcn.004779f0
lea ecx, [esp + 0x2c]
call fcn.004b1260
lea ecx, [esp + 0x44]
mov dword [esp + 0x100], 0xffffffff
call fcn.004b1260
jmp case.0x4a40b8.58
mov edi, dword [esi + 0xc8]
cmp dword [edi + 0xc], 0x13
jne case.0x4a40b8.58
mov ecx, edi
movsd qword [esp + 0x2c], xmm0
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esp + 0x1c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a44c6
mov ecx, edi
call fcn.0045cf90
fsub qword [esp + 0x1c]
mov eax, dword [ebp + 0x10]
mov ecx, edi
fstp qword [eax]
call fcn.0045cf90
fstp qword [esp + 0x2c]
dec ebx
movsd xmm0, qword [esi + 0x48]
mov ecx, edi
movsd qword [esp + 0x1c], xmm0
movsd qword [esp + 0x24], xmm0
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4a4508
mov ecx, edi
call fcn.0045cfd0
fsubr qword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
fstp qword [ecx]
mov ecx, edi
call fcn.0045cfd0
fstp qword [esp + 0x24]
dec ebx
movsd xmm0, qword [esp + 0x24]
test ebx, ebx
jle 0x4a4591
subsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [0x57ca30]
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esi + 0x28]
andpd xmm1, xmm2
comisd xmm1, xmmword [0x57e398]
movsd qword [esp + 0x2c], xmm0
jbe 0x4a4591
mov ecx, edi
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x28], xmm0
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esi + 0x40]
fcompi st(1)
fstp st(0)
jbe 0x4a4573
mov edx, dword [ebp + 0x10]
movsd xmm0, qword [esp + 0x2c]
movsd qword [edx], xmm0
mov ecx, edi
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esi + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a4591
fld qword [esi + 0x28]
mov eax, dword [ebp + 0x14]
fstp qword [eax]
cmp dword [edi + 0xd8], 0
jne case.0x4a40b8.58
xor eax, eax
mov ecx, 1
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x100], 2
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x100], 3
jmp 0x4a4424
mov edi, dword [esi + 0xc8]
test edi, edi
jne 0x4a45e5
mov edi, dword [esi + 0xcc]
mov ecx, edi
movsd qword [esp + 0x2c], xmm0
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esp + 0x1c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a461e
mov ecx, edi
call fcn.0045cf90
fsub qword [esp + 0x1c]
mov eax, dword [ebp + 0x10]
mov ecx, edi
fstp qword [eax]
call fcn.0045cf90
fstp qword [esp + 0x2c]
dec ebx
movsd xmm0, qword [esi + 0x48]
mov ecx, edi
movsd qword [esp + 0x1c], xmm0
movsd qword [esp + 0x44], xmm0
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4a4650
mov ecx, edi
call fcn.0045cfd0
fstp qword [esp + 0x44]
dec ebx
movsd xmm0, qword [esp + 0x44]
test ebx, ebx
jle 0x4a46d9
subsd xmm0, qword [esp + 0x2c]
movsd xmm2, qword [0x57ca30]
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
divsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esi + 0x28]
andpd xmm1, xmm2
comisd xmm1, xmmword [0x57e398]
movsd qword [esp + 0x2c], xmm0
jbe 0x4a46d9
mov ecx, edi
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x28], xmm0
call fcn.0045cf90
fsub qword [esp + 0x3c]
fld qword [esi + 0x40]
fcompi st(1)
fstp st(0)
jbe 0x4a46bb
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [esp + 0x2c]
movsd qword [ecx], xmm0
mov ecx, edi
call fcn.0045cfd0
fadd qword [esp + 0x3c]
fld qword [esi + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4a46d9
fld qword [esi + 0x28]
mov edx, dword [ebp + 0x14]
fstp qword [edx]
movsd xmm1, qword [esp + 0x24]
movsd xmm0, qword [esi + 0x30]
movsd xmm4, qword [0x57ca20]
movapd xmm2, xmm1
xorpd xmm2, xmm4
comisd xmm2, xmm0
movapd xmm3, xmm0
jbe 0x4a4713
mov eax, dword [ebp + 8]
xorps xmm3, xmm3
xorpd xmm0, xmm4
movsd qword [eax], xmm0
mov eax, dword [esp + 0x54]
dec eax
jmp 0x4a4717
mov eax, dword [esp + 0x54]
movsd xmm4, qword [0x57b708]
movsd xmm0, qword [esi + 0x38]
addsd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4a4733
movapd xmm0, xmm4
dec eax
test eax, eax
jle case.0x4a40b8.58
subsd xmm0, xmm3
xorps xmm3, xmm3
cvtsi2sd xmm3, eax
divsd xmm0, xmm3
movapd xmm3, xmm0
subsd xmm3, qword [esi + 0x20]
andpd xmm3, xmmword [0x57ca30]
comisd xmm3, xmmword [0x57e398]
jbe case.0x4a40b8.58
movsd xmm3, qword [esi + 0x30]
comisd xmm3, xmm2
mov byte [esp + 0x1b], 1
movsd qword [esi + 0x20], xmm0
jbe 0x4a477d
mov ecx, dword [ebp + 8]
movsd qword [ecx], xmm0
comisd xmm1, xmmword [esi + 0x38]
jbe case.0x4a40b8.58
fld qword [esi + 0x20]
mov edx, dword [ebp + 0xc]
fstp qword [edx]
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x4a47ae
cmp byte [esp + 0x1b], 0
je 0x4a49bd
test eax, eax
je 0x4a47ae
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
add esp, 4
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
inc eax
inc edi
imul edi, eax
xor ecx, ecx
mov eax, edi
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005518e0
mov ebx, eax
add esp, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x100], 4
test ebx, ebx
je 0x4a47f9
push 0x49fd10
push edi
push 0xc
push ebx
call fcn.00401200
jmp 0x4a47fb
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x100], 0xffffffff
mov dword [esi + 0xc0], ebx
cmp ebx, eax
je 0x4a49d7
xorps xmm0, xmm0
movsd xmm2, qword [esi + 0x40]
mov dword [esp + 0x54], eax
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x6c], xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0xa4], xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0xbc], xmm0
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xac], xmm0
movsd qword [esp + 0x64], xmm0
movsd qword [esp + 0x5c], xmm0
movsd qword [esp + 0x1c], xmm2
mov dword [esp + 0x3c], eax
cmp dword [esi + 0x14], eax
jl 0x4a49bd
jmp 0x4a48a0
movsd xmm1, qword [esi + 0x30]
xor edi, edi
movsd qword [esp + 0x64], xmm2
movsd qword [esp + 0x24], xmm1
cmp dword [esi + 0x10], edi
jl 0x4a497c
mov ebx, dword [esp + 0x54]
lea ebx, [ebx + ebx*2]
add ebx, ebx
add ebx, ebx
jmp 0x4a48d0
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
sub esp, 8
movsd qword [esp], xmm0
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x78]
push edx
mov ecx, esi
movsd qword [esp + 0x6c], xmm1
call eax
movsd xmm0, qword [esp + 0x8c]
movsd xmm1, qword [esp + 0x84]
movsd xmm2, qword [esp + 0x7c]
mov eax, dword [esi + 0xc0]
inc dword [esp + 0x54]
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
movss dword [eax + ebx], xmm2
movss dword [eax + ebx + 4], xmm1
movss dword [eax + ebx + 8], xmm0
add ebx, 0xc
test edi, edi
jne 0x4a4949
mov ecx, dword [ebp + 8]
movsd xmm1, qword [ecx]
addsd xmm1, qword [esp + 0x24]
jmp 0x4a4963
mov edx, dword [esi + 0x10]
dec edx
cmp edi, edx
jne 0x4a4958
movsd xmm1, qword [esi + 0x38]
jmp 0x4a4963
movsd xmm1, qword [esp + 0x24]
addsd xmm1, qword [esi + 0x20]
xorps xmm0, xmm0
inc edi
movsd qword [esp + 0x24], xmm1
cmp edi, dword [esi + 0x10]
jle 0x4a48d0
movsd xmm2, qword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x4a498d
mov ecx, dword [ebp + 0x10]
movsd xmm1, qword [ecx]
jmp 0x4a49a1
mov edx, dword [esi + 0x14]
dec edx
cmp eax, edx
jne 0x4a499c
movsd xmm2, qword [esi + 0x48]
jmp 0x4a49a9
movsd xmm1, qword [esi + 0x28]
addsd xmm1, xmm2
movapd xmm2, xmm1
inc eax
movsd qword [esp + 0x1c], xmm2
mov dword [esp + 0x3c], eax
cmp eax, dword [esi + 0x14]
jle 0x4a48a0
mov al, 1
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor al, al
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10