// File: /workspace/github_cpp_makefile_star2_O1/Laakeri[P]Triangulator/src/minfill.cpp
// Function: MinFill::SolveAtom::nbClique(Graph&)
pair<int, pair<int, int> > nbClique(Graph& G) {
	int minF = (int)1e9;
	for (int x = 0; x < G.n; x++) {
		assert(G.g[x].size() > 2);
		pair<int, int> fo = {-1, -1};
		bool fail = false;
		bool brk = false;
		int cnt = 0;
		for (int i = 0; i < (int)G.g[x].size(); i++) {
			for (int ii = i+1; ii < (int)G.g[x].size(); ii++) {
				if (!G.hasEdge(G.g[x][i], G.g[x][ii])) {
					cnt++;
					if (fo.F != -1) {
						fail = true;
						if (cnt >= minF) {
							brk = true;
							break;
						}
					}
					else {
						fo = {G.g[x][i], G.g[x][ii]};
					}
				}
			}
			if (brk) break;
		}
		if (!fail) {
			assert(fo.F != -1);
			return {-1, fo};
		}
		minF = min(minF, cnt);
	}
	return {minF, {-1, -1}};
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
cmpl $0x0, 0x50(%rdi)
jle 0x18ffb
movq %rdi, %rbx
movl 0x8(%rsp), %eax
movl %eax, (%rsp)
movl $0x3b9aca00, 0x4(%rsp)  # imm = 0x3B9ACA00
movq 0xc(%rsp), %rax
movq %rax, 0x18(%rsp)
xorl %ecx, %ecx
movq 0x38(%rbx), %rax
movq %rcx, 0x28(%rsp)
leaq (%rcx,%rcx,2), %r14
movq 0x8(%rax,%r14,8), %rcx
subq (%rax,%r14,8), %rcx
cmpq $0x9, %rcx
jb 0x19038
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
xorl %ebp, %ebp
movl $0x1, %r13d
movl $0x1, %r15d
xorl %r12d, %r12d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
xorl %ecx, %ecx
movq %rcx, 0x30(%rsp)
movq 0x38(%rbx), %rax
movq 0x8(%rax,%r14,8), %rcx
subq (%rax,%r14,8), %rcx
shrq $0x2, %rcx
movslq %ecx, %rax
cmpq %rax, %rbp
jge 0x18f8f
leaq 0x1(%rbp), %rdx
movq 0x38(%rbx), %rcx
movq (%rcx,%r14,8), %rax
movq 0x8(%rcx,%r14,8), %rcx
subq %rax, %rcx
shrq $0x2, %rcx
movq %rdx, 0x48(%rsp)
cmpl %ecx, %edx
movq %r13, 0x50(%rsp)
movl %r15d, 0x24(%rsp)
jge 0x18f6b
movl (%rax,%rbp,4), %esi
movl (%rax,%r13,4), %edx
movq %rbx, %rdi
callq 0x9b60
testb %al, %al
jne 0x18f4c
incl %r12d
cmpl $-0x1, 0x14(%rsp)
je 0x18f34
movb $0x1, %al
movq %rax, 0x40(%rsp)
movb $0x1, %al
cmpl 0x4(%rsp), %r12d
jl 0x18f4c
jmp 0x18f70
movq 0x38(%rbx), %rax
movq (%rax,%r14,8), %rax
movl (%rax,%rbp,4), %ecx
movl %ecx, 0x14(%rsp)
movl (%rax,%r13,4), %eax
movq %rax, 0x38(%rsp)
incq %r13
movq 0x38(%rbx), %rcx
movq (%rcx,%r14,8), %rax
movq 0x8(%rcx,%r14,8), %rcx
subq %rax, %rcx
shrq $0x2, %rcx
incl %r15d
cmpl %ecx, %r15d
jl 0x18f05
movq 0x30(%rsp), %rax
movq 0x50(%rsp), %r13
incq %r13
movl 0x24(%rsp), %r15d
incl %r15d
movl %eax, %ecx
testb $0x1, %al
movq 0x48(%rsp), %rbp
je 0x18eb8
movq 0x40(%rsp), %rdx
testb $0x1, %dl
je 0x18faa
movl 0x4(%rsp), %eax
cmpl %eax, %r12d
cmovll %r12d, %eax
movl %eax, 0x4(%rsp)
jmp 0x18fd1
movl 0x14(%rsp), %eax
cmpl $-0x1, %eax
je 0x19068
movq 0x38(%rsp), %rcx
shlq $0x20, %rcx
movl %eax, %eax
orq %rcx, %rax
movq %rax, 0x18(%rsp)
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
movq 0x28(%rsp), %rcx
testb $0x1, %dl
je 0x1900f
incq %rcx
movslq 0x50(%rbx), %rax
cmpq %rax, %rcx
jl 0x18e6a
movq 0x18(%rsp), %rax
movq %rax, 0xc(%rsp)
movl 0x4(%rsp), %eax
jmp 0x19000
movl $0x3b9aca00, %eax       # imm = 0x3B9ACA00
movl %eax, 0x8(%rsp)
movq $-0x1, 0xc(%rsp)
jmp 0x19020
movq 0x18(%rsp), %rax
movq %rax, 0xc(%rsp)
movl (%rsp), %eax
movl %eax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl 0x10(%rsp), %edx
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x18(%rsp), %rax
movq %rax, 0xc(%rsp)
movl (%rsp), %eax
movl %eax, 0x8(%rsp)
leaq 0x124b3(%rip), %rdi     # 0x2b503
leaq 0x120b1(%rip), %rsi     # 0x2b108
leaq 0x124b7(%rip), %rcx     # 0x2b515
movl $0x1e0, %edx            # imm = 0x1E0
callq 0x2140
movq 0x18(%rsp), %rax
movq %rax, 0xc(%rsp)
movl (%rsp), %eax
movl %eax, 0x8(%rsp)
leaq 0x124d5(%rip), %rdi     # 0x2b555
leaq 0x12081(%rip), %rsi     # 0x2b108
leaq 0x12487(%rip), %rcx     # 0x2b515
movl $0x1f8, %edx            # imm = 0x1F8
callq 0x2140