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

Disassembly:
sub esp, 0xa8
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0x64]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc4]
push ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd0]
push ebp
mov dword [esp + 0xc], eax
lea eax, [ebx + 0xe0]
push esi
mov esi, dword [esp + 0xbc]
push edi
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc8]
push ecx
push eax
mov dword [esp + 0x2c], ebx
lea ebp, [eax + 0x48]
mov dword [esp + 0x24], 1
call fcn.10043b50
mov ecx, dword [ebx + 0xc4]
add esp, 8
test ecx, ecx
je 0x1006c5dd
push ecx
call fcn.10053ce0
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.10057030
add esp, 0xc
push dword [ebx + 0x60]
call fcn.10049b70
fmul qword [0x102329a8]
add esp, 4
mov ebx, dword [esp + 0x7c]
fstp qword [esp + 0x6c]
test ebx, ebx
je 0x1006ccf3
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1006ccf3
mov eax, dword [esp + 0x74]
xorps xmm1, xmm1
mov ecx, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x6c]
movd xmm6, eax
add eax, ebx
cvtdq2pd xmm6, xmm6
movd xmm2, eax
lea eax, [ecx + edx]
movd xmm3, ecx
subsd xmm6, xmm0
movd xmm4, eax
mov edx, 1
cvtdq2pd xmm3, xmm3
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm4, xmm4
movsd qword [esp + 0x40], xmm6
subsd xmm3, xmm0
addsd xmm2, xmm0
addsd xmm4, xmm0
mov ecx, dword [esp + 0x28]
xor ebx, ebx
movsd xmm5, qword [0x102c6248]
movsd qword [esp + 0x64], xmm4
movsd qword [esp + 0x54], xmm2
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm5
mov dword [esp + 0x38], ebx
movsd qword [esp + 0x5c], xmm3
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [ecx + 8]
lea eax, [ecx + 8]
ucomisd xmm0, xmm1
mov dword [esp + 0x48], eax
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [ecx + 0x10]
lea eax, [ecx + 0x10]
ucomisd xmm0, xmm1
mov dword [esp + 0x4c], eax
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [ecx + 0x18]
lea eax, [ecx + 0x18]
ucomisd xmm0, xmm5
mov dword [esp + 0x50], eax
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [ecx + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [ecx + 0x28]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c7a7
movsd xmm0, qword [esp + 0x40]
lea eax, [ecx + 8]
movsd qword [esp + 0x6c], xmm0
movaps xmm7, xmm4
movsd xmm0, qword [ebp]
movaps xmm5, xmm3
ucomisd xmm0, qword [0x102c6248]
mov dword [esp + 0x30], eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
movaps xmm6, xmm2
lahf
test ah, 0x44
jp 0x1006c783
movsd xmm0, qword [ebp + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c783
movsd xmm0, qword [ebp + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c783
movsd xmm0, qword [ebp + 0x18]
ucomisd xmm0, qword [0x102c6248]
lahf
test ah, 0x44
jp 0x1006c783
movsd xmm0, qword [ebp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c783
movsd xmm0, qword [ebp + 0x28]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c783
mov eax, dword [esp + 0x2c]
movsd xmm2, qword [esp + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
movsd qword [esp + 0x40], xmm2
movaps xmm2, xmm6
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x54], xmm2
movsd xmm0, qword [eax + 0x88]
ucomisd xmm0, xmm1
movsd qword [esp + 0x5c], xmm3
movsd qword [esp + 0x64], xmm4
lahf
test ah, 0x44
jp 0x1006c7e2
mov eax, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x54], xmm2
movsd xmm0, qword [eax + 0x90]
ucomisd xmm0, xmm1
movsd qword [esp + 0x5c], xmm3
movsd qword [esp + 0x64], xmm4
lahf
test ah, 0x44
jp 0x1006c7e2
cmp edx, ebx
jne 0x1006c608
lea eax, [edi + edi*2]
shl eax, 3
push eax
push esi
push dword [esp + 0x28]
call fcn.101f6470
mov eax, dword [esp + 0xd8]
shl eax, 3
push eax
push dword [esp + 0x4c]
push dword [esp + 0x28]
call fcn.101f6470
add esp, 0x18
mov ebx, edi
jmp 0x1006cc96
test eax, eax
jne 0x1006c328
mov eax, dword [esp + 0x34]
xor edx, edx
xorps xmm1, xmm1
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x40], xmm1
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
mov dword [eax], edi
jmp 0x1006c3a9
cmp dword [esp + 0xcc], ebx
jne 0x1006c66c
test edi, edi
jle 0x1006c661
mov ecx, dword [esp + 0x20]
movsd xmm2, qword [esp + 0x6c]
add ecx, 0x10
add esi, 0x10
mov eax, dword [esi - 0x10]
mov dword [ecx - 0x10], eax
movsd xmm1, qword [esi - 8]
comisd xmm1, xmm2
movsd qword [ecx - 8], xmm1
movsd xmm0, qword [esi]
movsd qword [ecx], xmm0
jb 0x1006c659
comisd xmm6, xmm1
jb 0x1006c659
comisd xmm0, xmm5
jb 0x1006c659
comisd xmm7, xmm0
jb 0x1006c659
inc ebx
add ecx, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006c625
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006ccfd
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006c685
lea eax, [edi + edi*2]
lea esi, [esi + eax*8]
add esi, 0xffffffe8
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x10], ebx
test eax, eax
jle 0x1006cc9d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
movsd xmm2, qword [esp + 0x6c]
sub ecx, eax
mov dword [esp + 0x2c], ecx
lea ebp, [eax + 4]
nop
xor edx, edx
xor edi, edi
cmp dword [ebp], edx
jle 0x1006c725
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*2]
mov ebx, dword [esp + 0x30]
lea ecx, [ecx + eax*8]
add ecx, 0x10
nop word [eax + eax]
mov eax, dword [esi]
mov dword [ecx - 0x10], eax
movsd xmm1, qword [esi + 8]
comisd xmm1, xmm2
mov dword [esp + 0x18], esi
movsd qword [ecx - 8], xmm1
movsd xmm0, qword [esi + 0x10]
movsd qword [ecx], xmm0
jb 0x1006c70a
comisd xmm6, xmm1
jb 0x1006c70a
comisd xmm0, xmm5
jb 0x1006c70a
comisd xmm7, xmm0
mov eax, 1
cmovae edx, eax
test ebx, ebx
mov eax, 0x18
mov esi, 0xffffffe8
cmove esi, eax
inc edi
add esi, dword [esp + 0x18]
add ecx, eax
cmp edi, dword [ebp]
jl 0x1006c6d0
mov ecx, dword [ebp]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp - 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + ebx*8], eax
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + eax*8 + 4], ecx
mov ebx, dword [esp + 0x38]
test edx, edx
je 0x1006c758
add ebx, edi
mov dword [esp + 0x38], ebx
jmp 0x1006c763
mov ecx, dword [esp + 0x2c]
mov dword [ecx + ebp], 0
inc eax
add ebp, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xcc]
jl 0x1006c6b0
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006cca7
movsd xmm7, qword [esp + 0x40]
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x40], xmm7
movsd qword [esp + 0x54], xmm2
movsd qword [esp + 0x5c], xmm3
movsd qword [esp + 0x64], xmm4
jmp 0x1006c7e8
mov eax, dword [esp + 0x28]
lea edx, [ecx + 8]
movsd xmm2, qword [esp + 0x54]
add ecx, 0x10
movsd xmm3, qword [esp + 0x5c]
add eax, 0x18
movsd xmm4, qword [esp + 0x64]
movsd xmm7, qword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
jmp 0x1006c7f0
movsd xmm7, qword [esp + 0x40]
movsd xmm5, qword [0x102c6248]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006ca67
mov eax, dword [esp + 0x48]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006ca67
mov eax, dword [esp + 0x4c]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006ca67
mov eax, dword [esp + 0x50]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006ca67
movsd xmm0, qword [ebp]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006ca4b
movsd xmm0, qword [ebp + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006ca4b
movsd xmm0, qword [ebp + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006ca4b
movsd xmm0, qword [ebp + 0x18]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006ca4b
mov eax, dword [esp + 0x24]
movsd xmm5, qword [eax + 0x88]
movsd xmm6, qword [eax + 0x90]
addsd xmm5, qword [ecx + 0x20]
addsd xmm6, qword [ecx + 0x28]
addsd xmm5, qword [ebp + 0x20]
addsd xmm6, qword [ebp + 0x28]
test edx, edx
je 0x1006c9e7
cmp dword [esp + 0xcc], ebx
je 0x1006c9e7
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006c8e6
lea eax, [edi + edi*2]
lea esi, [esi + eax*8]
add esi, 0xffffffe8
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x10], ebx
test eax, eax
jle 0x1006cc9d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x2c], ecx
lea ebp, [eax + 4]
nop word [eax + eax]
xor edx, edx
xor edi, edi
cmp dword [ebp], edx
jle 0x1006c989
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*2]
lea ebx, [edx + 1]
lea ecx, [ecx + eax*8]
add ecx, 0x10
nop dword [eax]
mov eax, dword [esi]
movaps xmm1, xmm5
mov dword [ecx - 0x10], eax
movaps xmm0, xmm6
addsd xmm1, qword [esi + 8]
mov dword [esp + 0x18], esi
comisd xmm1, xmm7
movsd qword [ecx - 8], xmm1
addsd xmm0, qword [esi + 0x10]
movsd qword [ecx], xmm0
jb 0x1006c96b
comisd xmm2, xmm1
jb 0x1006c96b
comisd xmm0, xmm3
jb 0x1006c96b
comisd xmm4, xmm0
cmovae edx, ebx
cmp dword [esp + 0x30], 0
mov eax, 0x18
mov esi, 0xffffffe8
cmove esi, eax
inc edi
add esi, dword [esp + 0x18]
add ecx, eax
cmp edi, dword [ebp]
jl 0x1006c930
mov ecx, dword [ebp]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp - 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + ebx*8], eax
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ebx + eax*8 + 4], ecx
mov ebx, dword [esp + 0x38]
test edx, edx
je 0x1006c9bc
add ebx, edi
mov dword [esp + 0x38], ebx
jmp 0x1006c9c7
mov ecx, dword [esp + 0x2c]
mov dword [ecx + ebp], 0
inc eax
add ebp, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xcc]
jl 0x1006c910
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006cca7
test edi, edi
jle 0x1006cc7b
mov ecx, dword [esp + 0x20]
add ecx, 0x10
add esi, 0x10
nop dword [eax]
mov eax, dword [esi - 0x10]
movaps xmm0, xmm5
mov dword [ecx - 0x10], eax
movaps xmm1, xmm6
addsd xmm0, qword [esi - 8]
movsd qword [ecx - 8], xmm0
addsd xmm1, qword [esi]
movsd qword [ecx], xmm1
test edx, edx
je 0x1006ca3a
comisd xmm0, xmm7
jb 0x1006ca3e
comisd xmm2, xmm0
jb 0x1006ca3e
comisd xmm1, xmm3
jb 0x1006ca3e
comisd xmm4, xmm1
jb 0x1006ca3e
inc ebx
add ecx, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006ca00
jmp 0x1006cc7b
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x40], xmm7
movsd qword [esp + 0x54], xmm2
movsd qword [esp + 0x5c], xmm3
movsd qword [esp + 0x64], xmm4
mov eax, dword [esp + 0x24]
sub esp, 0x10
movups xmm0, xmmword [eax + 0x88]
lea eax, [esp + 0x94]
movups xmmword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_init_translate
mov eax, dword [esp + 0x3c]
push eax
lea eax, [esp + 0x9c]
push eax
push eax
call sym.project.dll_cairo_matrix_multiply
lea eax, [esp + 0xa4]
push ebp
push eax
push eax
call sym.project.dll_cairo_matrix_multiply
add esp, 0x2c
cmp dword [esp + 0x1c], ebx
je 0x1006cc03
cmp dword [esp + 0xcc], ebx
je 0x1006cc03
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006cadb
lea eax, [edi + edi*2]
lea esi, [esi + eax*8]
add esi, 0xffffffe8
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x28], ebx
test eax, eax
jle 0x1006cc9d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x2c], ecx
lea edi, [eax + 4]
mov dword [esp + 0x24], edi
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x10], edx
cmp dword [edi], edx
jle 0x1006cba8
mov ecx, dword [esp + 0x20]
lea edi, [ebx + 1]
lea edi, [ebx + edi*2]
mov ebx, edx
lea edi, [ecx + edi*8]
movups xmm0, xmmword [esi]
mov dword [esp + 0x18], esi
lea eax, [esp + 0x84]
push edi
movups xmmword [edi - 0x10], xmm0
movq xmm0, qword [esi + 0x10]
lea esi, [edi - 8]
push esi
push eax
movq qword [edi], xmm0
call sym.project.dll_cairo_matrix_transform_point
movsd xmm0, qword [esi]
add esp, 0xc
comisd xmm0, xmmword [esp + 0x40]
jb 0x1006cb81
movsd xmm1, qword [esp + 0x54]
comisd xmm1, xmm0
jb 0x1006cb81
movsd xmm0, qword [edi]
comisd xmm0, xmmword [esp + 0x5c]
jb 0x1006cb81
movsd xmm1, qword [esp + 0x64]
mov eax, 1
comisd xmm1, xmm0
cmovae ebp, eax
cmp dword [esp + 0x30], 0
mov eax, 0x18
mov esi, 0xffffffe8
cmove esi, eax
add edi, eax
mov eax, dword [esp + 0x24]
inc ebx
add esi, dword [esp + 0x18]
cmp ebx, dword [eax]
jl 0x1006cb22
mov dword [esp + 0x10], ebx
mov edi, eax
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [edi - 4]
mov ecx, dword [edi]
mov dword [edx + ebx*8], eax
mov eax, ebx
mov ebx, edx
mov edx, dword [esp + 0x10]
mov dword [ebx + eax*8 + 4], ecx
mov ebx, dword [esp + 0x38]
test ebp, ebp
je 0x1006cbd4
add ebx, edx
mov dword [esp + 0x38], ebx
jmp 0x1006cbdf
mov ecx, dword [esp + 0x2c]
mov dword [ecx + edi], 0
inc eax
add edi, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edi
cmp eax, dword [esp + 0xcc]
jl 0x1006cb03
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006cca7
test edi, edi
jle 0x1006cc7b
mov ebp, dword [esp + 0x20]
add ebp, 0x10
nop
movups xmm0, xmmword [esi]
lea eax, [ebp - 8]
push ebp
push eax
movups xmmword [ebp - 0x10], xmm0
lea eax, [esp + 0x8c]
movq xmm0, qword [esi + 0x10]
push eax
movq qword [ebp], xmm0
call sym.project.dll_cairo_matrix_transform_point
add esp, 0xc
cmp dword [esp + 0x1c], 0
je 0x1006cc6f
movsd xmm0, qword [ebp - 8]
comisd xmm0, xmmword [esp + 0x40]
jb 0x1006cc73
movsd xmm1, qword [esp + 0x54]
comisd xmm1, xmm0
jb 0x1006cc73
movsd xmm0, qword [ebp]
comisd xmm0, xmmword [esp + 0x5c]
jb 0x1006cc73
movsd xmm1, qword [esp + 0x64]
comisd xmm1, xmm0
jb 0x1006cc73
inc ebx
add ebp, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006cc10
mov eax, dword [esp + 0xcc]
shl eax, 3
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
call fcn.101f6470
add esp, 0xc
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x34]
mov dword [ecx], ebx
test eax, eax
je 0x1006ccfd
test byte [esp + 0xd0], 1
je 0x1006ccfd
dec ebx
xor ecx, ecx
test ebx, ebx
jle 0x1006ccfd
mov edx, dword [esp + 0x20]
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*8]
movups xmm0, xmmword [eax]
inc ecx
dec ebx
movq xmm2, qword [edx + 0x10]
lea edx, [edx + 0x18]
lea eax, [eax - 0x18]
movups xmm1, xmmword [edx - 0x18]
movups xmmword [edx - 0x18], xmm0
movq xmm0, qword [eax + 0x28]
movq qword [edx - 8], xmm0
movups xmmword [eax + 0x18], xmm1
movq qword [eax + 0x28], xmm2
cmp ecx, ebx
jl 0x1006ccc2
jmp 0x1006ccfd
mov eax, dword [esp + 0x34]
mov dword [eax], 0
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101f469d
add esp, 0xa8
ret