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

Disassembly:
sub esp, 0xa8
mov eax, dword [0x102cf440]
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.100434d0
mov ecx, dword [ebx + 0xc4]
add esp, 8
test ecx, ecx
je 0x1006bf7d
push ecx
call fcn.10053660
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.100569b0
add esp, 0xc
push dword [ebx + 0x60]
call fcn.100494f0
fmul qword [0x102289a8]
add esp, 4
mov ebx, dword [esp + 0x7c]
fstp qword [esp + 0x6c]
test ebx, ebx
je 0x1006c693
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1006c693
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 [0x102bc1b8]
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 0x1006c147
movsd xmm0, qword [ecx + 8]
lea eax, [ecx + 8]
ucomisd xmm0, xmm1
mov dword [esp + 0x48], eax
lahf
test ah, 0x44
jp 0x1006c147
movsd xmm0, qword [ecx + 0x10]
lea eax, [ecx + 0x10]
ucomisd xmm0, xmm1
mov dword [esp + 0x4c], eax
lahf
test ah, 0x44
jp 0x1006c147
movsd xmm0, qword [ecx + 0x18]
lea eax, [ecx + 0x18]
ucomisd xmm0, xmm5
mov dword [esp + 0x50], eax
lahf
test ah, 0x44
jp 0x1006c147
movsd xmm0, qword [ecx + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c147
movsd xmm0, qword [ecx + 0x28]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c147
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 [0x102bc1b8]
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 0x1006c123
movsd xmm0, qword [ebp + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c123
movsd xmm0, qword [ebp + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c123
movsd xmm0, qword [ebp + 0x18]
ucomisd xmm0, qword [0x102bc1b8]
lahf
test ah, 0x44
jp 0x1006c123
movsd xmm0, qword [ebp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c123
movsd xmm0, qword [ebp + 0x28]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c123
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 0x1006c182
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 0x1006c182
cmp edx, ebx
jne 0x1006bfa8
lea eax, [edi + edi*2]
shl eax, 3
push eax
push esi
push dword [esp + 0x28]
call fcn.101ecd90
mov eax, dword [esp + 0xd8]
shl eax, 3
push eax
push dword [esp + 0x4c]
push dword [esp + 0x28]
call fcn.101ecd90
add esp, 0x18
mov ebx, edi
jmp 0x1006c636
test eax, eax
jne 0x1006bcc8
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 0x1006bd49
cmp dword [esp + 0xcc], ebx
jne 0x1006c00c
test edi, edi
jle 0x1006c001
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 0x1006bff9
comisd xmm6, xmm1
jb 0x1006bff9
comisd xmm0, xmm5
jb 0x1006bff9
comisd xmm7, xmm0
jb 0x1006bff9
inc ebx
add ecx, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006bfc5
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006c69d
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006c025
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 0x1006c63d
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 0x1006c0c5
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 0x1006c0aa
comisd xmm6, xmm1
jb 0x1006c0aa
comisd xmm0, xmm5
jb 0x1006c0aa
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 0x1006c070
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 0x1006c0f8
add ebx, edi
mov dword [esp + 0x38], ebx
jmp 0x1006c103
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 0x1006c050
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006c647
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 0x1006c188
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 0x1006c190
movsd xmm7, qword [esp + 0x40]
movsd xmm5, qword [0x102bc1b8]
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006c407
mov eax, dword [esp + 0x48]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c407
mov eax, dword [esp + 0x4c]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c407
mov eax, dword [esp + 0x50]
movsd xmm0, qword [eax]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006c407
movsd xmm0, qword [ebp]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006c3eb
movsd xmm0, qword [ebp + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c3eb
movsd xmm0, qword [ebp + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1006c3eb
movsd xmm0, qword [ebp + 0x18]
ucomisd xmm0, xmm5
lahf
test ah, 0x44
jp 0x1006c3eb
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 0x1006c387
cmp dword [esp + 0xcc], ebx
je 0x1006c387
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006c286
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 0x1006c63d
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 0x1006c329
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 0x1006c30b
comisd xmm2, xmm1
jb 0x1006c30b
comisd xmm0, xmm3
jb 0x1006c30b
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 0x1006c2d0
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 0x1006c35c
add ebx, edi
mov dword [esp + 0x38], ebx
jmp 0x1006c367
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 0x1006c2b0
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006c647
test edi, edi
jle 0x1006c61b
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 0x1006c3da
comisd xmm0, xmm7
jb 0x1006c3de
comisd xmm2, xmm0
jb 0x1006c3de
comisd xmm1, xmm3
jb 0x1006c3de
comisd xmm4, xmm1
jb 0x1006c3de
inc ebx
add ecx, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006c3a0
jmp 0x1006c61b
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 0x1006c5a3
cmp dword [esp + 0xcc], ebx
je 0x1006c5a3
mov eax, dword [esp + 0xd0]
and eax, 1
mov dword [esp + 0x30], eax
je 0x1006c47b
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 0x1006c63d
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 0x1006c548
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 0x1006c521
movsd xmm1, qword [esp + 0x54]
comisd xmm1, xmm0
jb 0x1006c521
movsd xmm0, qword [edi]
comisd xmm0, xmmword [esp + 0x5c]
jb 0x1006c521
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 0x1006c4c2
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 0x1006c574
add ebx, edx
mov dword [esp + 0x38], ebx
jmp 0x1006c57f
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 0x1006c4a3
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
jmp 0x1006c647
test edi, edi
jle 0x1006c61b
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 0x1006c60f
movsd xmm0, qword [ebp - 8]
comisd xmm0, xmmword [esp + 0x40]
jb 0x1006c613
movsd xmm1, qword [esp + 0x54]
comisd xmm1, xmm0
jb 0x1006c613
movsd xmm0, qword [ebp]
comisd xmm0, xmmword [esp + 0x5c]
jb 0x1006c613
movsd xmm1, qword [esp + 0x64]
comisd xmm1, xmm0
jb 0x1006c613
inc ebx
add ebp, 0x18
add esi, 0x18
sub edi, 1
jne 0x1006c5b0
mov eax, dword [esp + 0xcc]
shl eax, 3
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
call fcn.101ecd90
add esp, 0xc
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x34]
mov dword [ecx], ebx
test eax, eax
je 0x1006c69d
test byte [esp + 0xd0], 1
je 0x1006c69d
dec ebx
xor ecx, ecx
test ebx, ebx
jle 0x1006c69d
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 0x1006c662
jmp 0x1006c69d
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.101eafcd
add esp, 0xa8
ret