// File: Laakeri[P]Triangulator/src/graph.cpp
// Function: Graph::Graph(std::set<std::pair<int, int>, std::less<std::pair<int, int>>, std::allocator<std::pair<int, int>>> const&)
Graph::Graph(const set<pair<int, int> >& es) {
	for (auto e : es) {
		vMap.push_back(e.F);
		vMap.push_back(e.S);
	}
	sort(vMap.begin(), vMap.end());
	vMap.erase(unique(vMap.begin(), vMap.end()), vMap.end());
	n = vMap.size();
	m = 0;
	g.resize(n);
	DENSE = denseG(n, es.size());
	if (DENSE) initMatrix();
	for (auto e : es) {
		e.F = lower_bound(vMap.begin(), vMap.end(), e.F) - vMap.begin();
		e.S = lower_bound(vMap.begin(), vMap.end(), e.S) - vMap.begin();
		addEdge(e.F, e.S);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0xdf40
movq -0xf8(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x100(%rbp)
callq 0x17610
movq -0xf8(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0xf0(%rbp)
callq 0x17630
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0xdd90
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0xddc0
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xddf0
testb $0x1, %al
jne 0x154b6
jmp 0x1552c
leaq -0x20(%rbp), %rdi
callq 0xde20
movq -0xf8(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x30(%rbp)
leaq -0x30(%rbp), %rsi
callq 0xdff0
jmp 0x154d8
movq -0xf8(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0xdff0
jmp 0x154ea
jmp 0x154ec
leaq -0x20(%rbp), %rdi
callq 0xdf10
jmp 0x154a3
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
callq 0x5e20
movq -0x100(%rbp), %rdi
callq 0x6ef0
movq -0xf8(%rbp), %rdi
callq 0x6d30
jmp 0x1581e
movq -0xf8(%rbp), %rdi
callq 0xe060
movq -0xf8(%rbp), %rdi
movq %rax, -0x48(%rbp)
callq 0xe090
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x176e0
jmp 0x1555b
movq -0xf8(%rbp), %rdi
movq %rdi, %rax
movq %rax, -0x110(%rbp)
callq 0xe060
movq -0xf8(%rbp), %rdi
movq %rax, -0x68(%rbp)
callq 0xe090
movq %rax, -0x70(%rbp)
movq -0x68(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x177b0
movq %rax, -0x108(%rbp)
jmp 0x1559b
movq -0x108(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x177f0
movq -0xf8(%rbp), %rdi
callq 0xe090
movq %rax, -0x80(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x177f0
movq -0x110(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x17720
movq %rax, -0x118(%rbp)
jmp 0x155ed
movq -0xf8(%rbp), %rdi
movq -0x118(%rbp), %rax
movq %rax, -0x88(%rbp)
callq 0x59a0
movq %rax, %rcx
movq -0xf8(%rbp), %rax
movl %ecx, 0x50(%rax)
movl $0x0, 0x54(%rax)
movq %rax, %rdi
addq $0x38, %rdi
movslq 0x50(%rax), %rsi
callq 0x17650
jmp 0x1562d
movq -0xf8(%rbp), %rax
movl 0x50(%rax), %eax
movl %eax, -0x11c(%rbp)
movq -0x10(%rbp), %rdi
callq 0xe140
movl -0x11c(%rbp), %esi
movq -0xf8(%rbp), %rdi
movl %eax, %edx
callq 0x15250
movb %al, %cl
movq -0xf8(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x30(%rax)
testb $0x1, 0x30(%rax)
je 0x1567f
movq -0xf8(%rbp), %rdi
callq 0x151e0
jmp 0x1567d
jmp 0x1567f
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
callq 0xdd90
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rdi
callq 0xddc0
movq %rax, -0xa0(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0xddf0
testb $0x1, %al
jne 0x156cc
jmp 0x15815
leaq -0x98(%rbp), %rdi
callq 0xde20
movq -0xf8(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0xa8(%rbp)
callq 0xe060
movq -0xf8(%rbp), %rdi
movq %rax, -0xb8(%rbp)
callq 0xe090
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0x17830
movq %rax, -0x128(%rbp)
jmp 0x1572b
movq -0xf8(%rbp), %rdi
movq -0x128(%rbp), %rax
movq %rax, -0xb0(%rbp)
callq 0xe060
movq %rax, -0xc8(%rbp)
leaq -0xb0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x14f60
movq -0xf8(%rbp), %rdi
movl %eax, -0xa8(%rbp)
callq 0xe060
movq -0xf8(%rbp), %rdi
movq %rax, -0xd8(%rbp)
callq 0xe090
movq %rax, -0xe0(%rbp)
leaq -0xa4(%rbp), %rdx
movq -0xd8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
callq 0x17830
movq %rax, -0x130(%rbp)
jmp 0x157ae
movq -0xf8(%rbp), %rdi
movq -0x130(%rbp), %rax
movq %rax, -0xd0(%rbp)
callq 0xe060
movq %rax, -0xe8(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x14f60
movq -0xf8(%rbp), %rdi
movl %eax, -0xa4(%rbp)
movl -0xa8(%rbp), %esi
movl -0xa4(%rbp), %edx
callq 0x15830
jmp 0x15802
jmp 0x15804
leaq -0x98(%rbp), %rdi
callq 0xdf10
jmp 0x156b0
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x3480
nopw (%rax,%rax)