// File: /workspace/github_cpp_makefile_star2_O3/Luthaf[P]zeopp/voro++/src/cell.cc
// Function: voro::voronoicell_base::face_vertices(std::vector<int, std::allocator<int>>&)
void voronoicell_base::face_vertices(std::vector<int> &v) {
	int i,j,k,l,m,vp(0),vn;
	v.clear();
	for(i=1;i<p;i++) for(j=0;j<nu[i];j++) {
		k=ed[i][j];
		if(k>=0) {
			v.push_back(0);
			v.push_back(i);
			ed[i][j]=-1-k;
			l=cycle_up(ed[i][nu[i]+j],k);
			do {
				v.push_back(k);
				m=ed[k][l];
				ed[k][l]=-1-m;
				l=cycle_up(ed[k][nu[k]+l],m);
				k=m;
			} while (k!=i);
			vn=v.size();
			v[vp]=vn-vp-1;
			vp=vn;
		}
	}
	reset_edges();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rax
movq 0x8(%rsi), %rsi
cmpq %rax, %rsi
je 0xab9f
movq %rax, 0x8(%r14)
movq %rax, %rsi
movl $0x1, 0xc(%rsp)
movl 0x1c(%rbx), %ecx
cmpl $0x2, %ecx
jl 0xad46
movq 0x30(%rbx), %rax
movl $0x1, %edx
leaq 0x10(%rsp), %r13
xorl %r15d, %r15d
movslq %edx, %rdi
cmpl $0x0, (%rax,%rdi,4)
jle 0xad38
movq 0x28(%rbx), %rcx
xorl %r12d, %r12d
movq (%rcx,%rdi,8), %rdi
movl (%rdi,%r12,4), %edi
movl %edi, 0x10(%rsp)
testl %edi, %edi
js 0xad22
movl $0x0, 0x14(%rsp)
movq 0x10(%r14), %rax
cmpq %rax, %rsi
je 0xac0d
movl $0x0, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%r14)
jmp 0xac22
movq %r14, %rdi
leaq 0x14(%rsp), %rdx
callq 0x12278
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rax
cmpq %rax, %rsi
je 0xac37
movl 0xc(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%r14)
jmp 0xac48
movq %r14, %rdi
leaq 0xc(%rsp), %rdx
callq 0x12354
movl 0xc(%rsp), %eax
movl 0x10(%rsp), %edx
notl %edx
movq 0x28(%rbx), %rcx
cltq
movq (%rcx,%rax,8), %rax
movl %edx, (%rax,%r12,4)
movslq 0xc(%rsp), %rdx
movq (%rcx,%rdx,8), %rsi
movq 0x30(%rbx), %rax
movslq (%rax,%rdx,4), %rdx
movslq %r12d, %rdi
addq %rdx, %rdi
movl (%rsi,%rdi,4), %esi
movslq 0x10(%rsp), %rdx
movl (%rax,%rdx,4), %edi
decl %edi
leal 0x1(%rsi), %ebp
cmpl %esi, %edi
movl $0x0, %esi
cmovel %esi, %ebp
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0xaca3
movl %edx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%r14)
jmp 0xacb6
movq %r14, %rdi
movq %r13, %rdx
callq 0x12354
movq 0x28(%rbx), %rcx
movq 0x30(%rbx), %rax
movslq 0x10(%rsp), %rdx
movq (%rcx,%rdx,8), %rsi
movslq %ebp, %rdi
movslq (%rsi,%rdi,4), %rdx
movl %edx, %r8d
notl %r8d
movl %r8d, (%rsi,%rdi,4)
movslq 0x10(%rsp), %rsi
movq (%rcx,%rsi,8), %r8
movslq (%rax,%rsi,4), %rsi
addq %rdi, %rsi
movl (%r8,%rsi,4), %esi
movl (%rax,%rdx,4), %edi
decl %edi
xorl %ebp, %ebp
cmpl %esi, %edi
je 0xacf3
incl %esi
movl %esi, %ebp
movl %edx, 0x10(%rsp)
cmpl 0xc(%rsp), %edx
jne 0xac8d
movq (%r14), %rdx
movq 0x8(%r14), %rsi
movq %rsi, %rdi
subq %rdx, %rdi
shrq $0x2, %rdi
movslq %r15d, %r8
notl %r15d
addl %edi, %r15d
movl %r15d, (%rdx,%r8,4)
movl 0xc(%rsp), %edx
movl %edi, %r15d
incq %r12
movslq %edx, %rdi
movslq (%rax,%rdi,4), %r8
cmpq %r8, %r12
jl 0xabd8
movl 0x1c(%rbx), %ecx
incl %edx
movl %edx, 0xc(%rsp)
cmpl %ecx, %edx
jl 0xabc4
testl %ecx, %ecx
jle 0xadaf
movq 0x30(%rbx), %rax
xorl %r15d, %r15d
leaq 0x2e15d(%rip), %r14     # 0x38eb5
cmpl $0x0, (%rax,%r15,4)
jle 0xada4
movq 0x28(%rbx), %rcx
movq (%rcx,%r15,8), %rcx
xorl %r12d, %r12d
movl (%rcx,%r12,4), %edx
testl %edx, %edx
js 0xad8f
movq %r14, %rdi
movl $0x3, %esi
callq 0x133c5
movq 0x28(%rbx), %rcx
movq 0x30(%rbx), %rax
movq (%rcx,%r15,8), %rcx
movl (%rcx,%r12,4), %edx
notl %edx
movl %edx, (%rcx,%r12,4)
incq %r12
movslq (%rax,%r15,4), %rdx
cmpq %rdx, %r12
jl 0xad6a
movl 0x1c(%rbx), %ecx
incq %r15
movslq %ecx, %rdx
cmpq %rdx, %r15
jl 0xad58
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq