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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x268
mov eax, dword [0x103e6644]
xor eax, esp
mov dword [esp + 0x264], eax
movsd xmm3, qword [ebp + 0xc]
push esi
push edi
mov edi, ecx
movsd qword [esp + 0x10], xmm3
mov dword [esp + 0x2c], edi
cmp dword [edi + 4], 0
je 0x1004cbd9
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x58]
mov edx, 0x101b8fb0
movsd xmm0, qword [eax]
mulsd xmm0, qword [0x1037d6f8]
movsd qword [esp + 0xd0], xmm0
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [0x1037d6f8]
movsd qword [esp + 0xd8], xmm0
movsd qword [esp + 0x60], xmm0
call fcn.1004c407
test al, al
jne 0x100a8257
movsd xmm1, qword [ebp + 0x14]
xor eax, eax
inc eax
xorps xmm0, xmm0
comisd xmm0, xmm1
mov dword [esp + 0xc], eax
ja 0x1004cc29
movsd xmm0, qword [0x101b8fb8]
comisd xmm1, xmm0
mov byte [esp + 0xb], 0
jb 0x1004c5c2
movaps xmm1, xmm0
mov byte [esp + 0xb], 1
movsd qword [ebp + 0x14], xmm1
push dword [ebp + 0x1c]
movd xmm0, eax
lea edx, [esp + 0x5c]
cvtdq2pd xmm0, xmm0
lea ecx, [esp + 0x14]
movsd qword [esp + 0x3c], xmm0
mulsd xmm0, xmm1
addsd xmm0, xmm3
movsd qword [esp + 0x1c], xmm0
call fcn.1004cc41
cmp byte [esp + 0xb], 0
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x40], xmm0
je 0x1004cbe3
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, qword [0x101b8fd0]
push ecx
push ecx
divsd xmm0, qword [0x101b8fc0]
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
pop ecx
pop ecx
test eax, eax
jle 0x1004cb9f
push 4
pop ecx
cmp eax, ecx
cmovg eax, ecx
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.1004c4e7
movsd xmm0, qword [ebp + 0x20]
lea edi, [esp + 0x148]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xc]
neg esi
mov dword [esp + 0xc], esi
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [ebp + 0x20]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movsd xmm1, qword [0x101b8fc0]
mov eax, dword [esp + 0x10]
movsd qword [esp + 0xa8], xmm0
xorps xmm0, xmmword [0x1037d6b0]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [ebp + 0x14]
dec eax
comisd xmm0, xmm1
mov dword [esp + 0x10], eax
jbe 0x1004cbb7
movsd xmm0, qword [0x101b8fc8]
movsd qword [esp + 0x30], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movaps xmm2, xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x18], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movsd xmm1, qword [esp + 0x18]
lea edi, [esp + 0x228]
movsd xmm2, qword [0x101b8308]
movaps xmm3, xmm0
movsd xmm0, qword [0x10379200]
subsd xmm0, xmm1
movsd qword [esp + 0x48], xmm3
push 4
pop esi
divsd xmm0, xmm2
movsd qword [esp + 0x20], xmm0
movaps xmm0, xmm2
subsd xmm0, xmm1
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm2
divsd xmm0, xmm1
movsd qword [esp + 0x50], xmm0
mov ecx, edi
call fcn.1002c493
add edi, 0x10
sub esi, 1
jne 0x1004c73d
movd xmm3, dword [esp + 0xc]
movsd xmm1, qword [esp + 0x20]
cvtdq2pd xmm3, xmm3
mov edi, dword [esp + 0x2c]
movsd xmm2, qword [esp + 0x18]
movaps xmm0, xmm3
movsd qword [esp + 0x238], xmm1
mulsd xmm0, qword [esp + 0x48]
mulsd xmm3, qword [esp + 0x50]
movsd qword [esp + 0x248], xmm1
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0x230], xmm0
movsd qword [esp + 0x58], xmm3
movsd qword [esp + 0x240], xmm3
movsd xmm3, qword [esp + 0x38]
movaps xmm0, xmm3
movsd qword [esp + 0x228], xmm2
mulsd xmm0, qword [esp + 0x48]
movaps xmm1, xmm3
mulsd xmm1, qword [esp + 0x50]
movsd qword [esp + 0x258], xmm2
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0x260], xmm0
movaps xmm0, xmm3
mulsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0xc8], xmm1
movsd qword [esp + 0x250], xmm1
addsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x50], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [esp + 0x50]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movsd xmm1, qword [esp + 0x48]
lea eax, [esp + 0xe8]
movsd qword [esp + 0x1a0], xmm0
lea ecx, [esp + 0x198]
xorps xmm0, xmmword [0x1037d6b0]
movsd qword [esp + 0x1a8], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x1b8], xmm0
push eax
movsd xmm0, qword [esp + 0xd4]
lea eax, [esp + 0x1fc]
movsd qword [esp + 0xec], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0xf4], xmm0
push eax
movsd xmm0, qword [esp + 0xe0]
movsd qword [esp + 0x108], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x1a0], xmm1
movsd qword [esp + 0x1b8], xmm1
movups xmmword [esp + 0x110], xmm0
call fcn.10073246
movsd xmm0, qword [esp + 0xa8]
lea ecx, [esp + 0x1c8]
movsd xmm1, qword [esp + 0xe0]
movsd qword [esp + 0x1d0], xmm0
movsd xmm0, qword [esp + 0xb0]
push ecx
lea ecx, [esp + 0x6c]
movsd qword [esp + 0x1dc], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x1cc], xmm1
push ecx
mov ecx, eax
movsd qword [esp + 0x1e8], xmm1
movups xmmword [esp + 0x1f0], xmm0
call fcn.10073246
movsd xmm3, qword [esp + 0xb8]
movsd xmm0, qword [esp + 0x68]
movaps xmm1, xmm3
movsd xmm4, qword [esp + 0x18]
mulsd xmm1, qword [esp + 0x78]
mulsd xmm3, qword [esp + 0x80]
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x70]
mulsd xmm0, xmm4
addsd xmm1, qword [esp + 0x88]
mov eax, dword [edi + 4]
addsd xmm3, xmm0
addsd xmm3, qword [esp + 0x90]
test eax, eax
je 0x100a826d
lea esi, [eax - 1]
cmp esi, eax
jae 0x100a8274
shl esi, 4
add esi, dword [edi]
movaps xmm0, xmmword [0x103a0dd0]
lea edi, [esp + 0x98]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xe8]
push eax
movups xmmword [esp + 0xec], xmm0
lea eax, [esp + 0x1fc]
movaps xmm0, xmmword [0x103a0dc0]
lea ecx, [esp + 0x6c]
movsd dword es:[edi], dword [esi]
push eax
movups xmmword [esp + 0x100], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd xmm2, qword [esp + 0xa0]
subsd xmm2, xmm1
movsd xmm1, qword [esp + 0xa8]
subsd xmm1, xmm3
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0x110], xmm2
movsd qword [esp + 0x118], xmm1
call fcn.10073246
cmp byte [esp + 0xb], 0
lea edi, [esp + 0x68]
push 0xc
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
movsd xmm3, qword [esp + 0x70]
movsd xmm5, qword [esp + 0x68]
je 0x1004ca24
cmp dword [esp + 0x10], 0
je 0x1004cbc4
movsd xmm2, qword [esp + 0xc0]
lea edi, [esp + 0x168]
movaps xmm1, xmm2
lea esi, [esp + 0x138]
mulsd xmm1, qword [esp + 0x78]
movaps xmm0, xmm5
mov eax, edi
mulsd xmm2, qword [esp + 0x80]
mulsd xmm0, xmm4
addsd xmm1, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm4
addsd xmm1, qword [esp + 0x88]
addsd xmm0, xmm2
movsd qword [esp + 0x138], xmm1
addsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x140], xmm0
movsd xmm2, qword [esp + 0xc8]
mulsd xmm5, qword [esp + 0x20]
movaps xmm0, xmm2
movsd dword es:[edi], dword [esi]
mulsd xmm0, qword [esp + 0x78]
push eax
mulsd xmm3, qword [esp + 0x24]
lea eax, [esp + 0x17c]
movsd dword es:[edi], dword [esi]
mulsd xmm2, qword [esp + 0x84]
push eax
movsd xmm1, qword [esp + 0x60]
addsd xmm0, xmm5
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x190]
push eax
addsd xmm2, xmm3
addsd xmm0, qword [esp + 0x94]
movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x124]
addsd xmm2, qword [esp + 0x9c]
lea edi, [esp + 0x184]
movsd qword [esp + 0x124], xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [esp + 0x84]
mulsd xmm1, qword [esp + 0x8c]
movsd qword [esp + 0x12c], xmm2
movsd dword es:[edi], dword [esi]
addsd xmm0, xmm5
addsd xmm1, xmm3
movsd dword es:[edi], dword [esi]
addsd xmm0, qword [esp + 0x94]
addsd xmm1, qword [esp + 0x9c]
movsd dword es:[edi], dword [esi]
movsd qword [esp + 0x134], xmm0
movsd dword es:[edi], dword [esi]
movsd qword [esp + 0x13c], xmm1
lea esi, [esp + 0x134]
lea edi, [esp + 0x194]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x38]
mov ecx, edi
call sym.gfx.dll_public:_class_GEL::PathBuilder____thiscall_GEL::PathBuilder::BezierTo_struct_Math::TPoint2_double__const___struct_Math::TPoint2_double__const___struct_Math::TPoint2_double__const__
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [0x101b8fc0]
mov eax, dword [esp + 0x10]
mulsd xmm0, xmm1
addsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm1
movsd qword [ebp + 0x14], xmm0
test eax, eax
jne 0x1004c6b3
mov ecx, dword [esp + 0x26c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.10076000
mov esp, ebp
pop ebp
ret 0x20
mulsd xmm0, qword [0x1037d6f8]
jmp 0x1004c6ca
lea edi, [esp + 0x158]
lea esi, [esp + 0x148]
mov eax, edi
jmp 0x1004ca89
mov ecx, 0x31494c5
call fcn.100c3a41
push dword [ebp + 0x1c]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x1c]
call fcn.1004cc41
movsd xmm0, qword [esp + 0x18]
xorps xmm1, xmm1
subsd xmm0, qword [esp + 0x10]
mulsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
movsd qword [ebp + 0x14], xmm0
jbe 0x1004c60a
addsd xmm0, qword [0x101b8fb8]
movsd qword [ebp + 0x14], xmm0
jmp 0x1004c60a
xorps xmm1, xmmword [0x1037d6b0]
or eax, 0xffffffff
movsd qword [ebp + 0x14], xmm1
mov dword [esp + 0xc], eax
jmp 0x1004c5a2
lea ecx, [esp + 0x60]
call fcn.1004c407
test al, al
je 0x1004c589
jmp 0x1004cb9f
xor esi, esi
jmp 0x1004c97b
push 0
push 0x237c47e3
call dword [sym.imp.Mso20Win32Client.dll_Ordinal_2055]
int3