// File: salda[P]convex_hull_of_intersections/Ouellet_hull.cpp
// Function: Ouellet_hull::get_result()
vector<pair<double, double>> Ouellet_hull::get_result() {
	if (quadrants[0].empty())
		return {};

	vector<pair<double, double>> results;
	for (int quadrant = 0; quadrant != 4; ++quadrant)
		results.insert(results.end(), quadrants[quadrant].begin() + (quadrants[quadrant].front() == quadrants[quadrant == 0 ? 3 : quadrant - 1].back() ? 1 : 0), quadrants[quadrant].begin() + quadrants[quadrant].size());
	if (results.empty())
		return { quadrants[0][0] };
	return results;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xc0(%rbp)
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x8990
movq %rax, %rdi
callq 0x8820
testb $0x1, %al
jne 0x8586
jmp 0x85aa
movq -0xc0(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x2100
movq -0xc0(%rbp), %rdi
callq 0x3860
jmp 0x8800
leaq -0x28(%rbp), %rdi
callq 0x3860
movl $0x0, -0x2c(%rbp)
cmpl $0x4, -0x2c(%rbp)
je 0x8713
leaq -0x28(%rbp), %rdi
callq 0x3bd0
movq %rax, -0x40(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3cd0
movq -0xb0(%rbp), %rdi
movslq -0x2c(%rbp), %rsi
callq 0x8990
movq %rax, %rdi
callq 0x3ba0
movq -0xb0(%rbp), %rdi
movq %rax, -0x50(%rbp)
movslq -0x2c(%rbp), %rsi
callq 0x8990
movq %rax, %rdi
callq 0x8900
movq %rax, -0xc8(%rbp)
cmpl $0x0, -0x2c(%rbp)
jne 0x862c
movl $0x3, %eax
movl %eax, -0xcc(%rbp)
jmp 0x8638
movl -0x2c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0xcc(%rbp)
movq -0xb0(%rbp), %rdi
movl -0xcc(%rbp), %eax
movslq %eax, %rsi
callq 0x8990
movq %rax, %rdi
callq 0x5150
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x6d60
movb %al, -0xcd(%rbp)
jmp 0x866c
movb -0xcd(%rbp), %al
movzbl %al, %eax
andl $0x1, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x5e40
movq -0xb0(%rbp), %rdi
movq %rax, -0x48(%rbp)
movslq -0x2c(%rbp), %rsi
callq 0x8990
movq %rax, %rdi
callq 0x3ba0
movq -0xb0(%rbp), %rdi
movq %rax, -0x70(%rbp)
movslq -0x2c(%rbp), %rsi
callq 0x8990
movq %rax, %rdi
callq 0x3d10
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x5e40
movq %rax, -0x68(%rbp)
movq -0x38(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq -0x28(%rbp), %rdi
callq 0x8cb0
movq %rax, -0xd8(%rbp)
jmp 0x86e9
movq -0xd8(%rbp), %rax
movq %rax, -0x78(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x85ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x87f5
leaq -0x28(%rbp), %rdi
callq 0x8820
testb $0x1, %al
jne 0x8725
jmp 0x87d0
movq -0xb0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0xe8(%rbp)
callq 0x8990
movq -0xe8(%rbp), %rsi
movq %rax, %rdi
callq 0x3e90
movups (%rax), %xmm0
movaps %xmm0, -0xa0(%rbp)
leaq -0xa0(%rbp), %rax
movq %rax, -0x88(%rbp)
movq $0x1, -0x80(%rbp)
leaq -0xa1(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x3fa0
movq -0xc0(%rbp), %rdi
movq -0xe0(%rbp), %rcx
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x8d60
jmp 0x879e
leaq -0xa1(%rbp), %rdi
callq 0x4bd0
movl $0x1, -0xa8(%rbp)
jmp 0x87ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa1(%rbp), %rdi
callq 0x4bd0
jmp 0x87f5
movq -0xc0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3e00
movl $0x1, -0xa8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x3e30
jmp 0x8800
leaq -0x28(%rbp), %rdi
callq 0x3e30
jmp 0x8810
movq -0xb8(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x22c0
nopl (%rax)