// File: icemiliang[P]vot/src/vot/cell.cc
// Function: bool voro::voronoicell_base::delete_connection<voro::voronoicell>(voro::voronoicell&, int, int, bool)
inline bool voronoicell_base::delete_connection(vc_class &vc,int j,int k,bool hand) {
    int q=hand?k:cycle_up(k,j);
    int i=nu[j]-1,l,*edp,*edd,m;
#if VOROPP_VERBOSE >=1
    if(i<1) {
        fputs("Zero order vertex formed\n",stderr);
        return false;
    }
#endif
    if(mec[i]==mem[i]) add_memory(vc,i,ds2);
    vc.n_set_aux1(i);
    for(l=0;l<q;l++) vc.n_copy_aux1(j,l);
    while(l<i) {
        vc.n_copy_aux1_shift(j,l);
        l++;
    }
    edp=mep[i]+((i<<1)+1)*mec[i]++;
    edp[i<<1]=j;
    for(l=0;l<k;l++) {
        edp[l]=ed[j][l];
        edp[l+i]=ed[j][l+nu[j]];
    }
    while(l<i) {
        m=ed[j][l+1];
        edp[l]=m;
        k=ed[j][l+nu[j]+1];
        edp[l+i]=k;
        ed[m][nu[m]+k]--;
        l++;
    }

    edd=mep[nu[j]]+((nu[j]<<1)+1)*--mec[nu[j]];
    for(l=0;l<=(nu[j]<<1);l++) ed[j][l]=edd[l];
    vc.n_set_aux2_copy(j,nu[j]);
    vc.n_set_to_aux2(edd[nu[j]<<1]);
    vc.n_set_to_aux1(j);
    ed[edd[nu[j]<<1]]=edd;
    ed[j]=edp;
    nu[j]=i;
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
testb $0x1, -0x19(%rbp)
je 0x54764
movl -0x18(%rbp), %eax
movl %eax, -0x4c(%rbp)
jmp 0x54776
movq -0x48(%rbp), %rdi
movl -0x18(%rbp), %esi
movl -0x14(%rbp), %edx
callq 0x4bf70
movl %eax, -0x4c(%rbp)
movq -0x48(%rbp), %rcx
movl -0x4c(%rbp), %eax
movl %eax, -0x20(%rbp)
movq 0x28(%rcx), %rax
movslq -0x14(%rbp), %rdx
movl (%rax,%rdx,4), %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
movq 0x40(%rcx), %rax
movslq -0x24(%rbp), %rdx
movl (%rax,%rdx,4), %eax
movq 0x38(%rcx), %rcx
movslq -0x24(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x547bd
movq -0x48(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x24(%rbp), %edx
movq 0x60(%rdi), %rcx
callq 0x4bbc0
movq -0x10(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x4bfb0
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x547f2
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x28(%rbp), %edx
callq 0x4bfc0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x547d0
jmp 0x547f4
movl -0x28(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x54816
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x28(%rbp), %edx
callq 0x54ac0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x547f4
movq -0x48(%rbp), %rdx
movq 0x48(%rdx), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl $0x1, %ecx
movq 0x40(%rdx), %rsi
movslq -0x24(%rbp), %rdi
movl (%rsi,%rdi,4), %edx
movl %edx, %r8d
addl $0x1, %r8d
movl %r8d, (%rsi,%rdi,4)
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movl -0x14(%rbp), %edx
movq -0x30(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x548d3
movq -0x48(%rbp), %rdx
movq 0x20(%rdx), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movl (%rax,%rcx,4), %esi
movq -0x30(%rbp), %rax
movslq -0x28(%rbp), %rcx
movl %esi, (%rax,%rcx,4)
movq 0x20(%rdx), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rbp), %ecx
movq 0x28(%rdx), %rdx
movslq -0x14(%rbp), %rsi
addl (%rdx,%rsi,4), %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
movq -0x30(%rbp), %rax
movl -0x28(%rbp), %ecx
addl -0x24(%rbp), %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x5486e
jmp 0x548d5
movl -0x28(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x5497b
movq -0x48(%rbp), %rcx
movq 0x20(%rcx), %rax
movslq -0x14(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movl -0x28(%rbp), %edx
addl $0x1, %edx
movslq %edx, %rdx
movl (%rax,%rdx,4), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %esi
movq -0x30(%rbp), %rax
movslq -0x28(%rbp), %rdx
movl %esi, (%rax,%rdx,4)
movq 0x20(%rcx), %rax
movslq -0x14(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movl -0x28(%rbp), %edx
movq 0x28(%rcx), %rsi
movslq -0x14(%rbp), %rdi
addl (%rsi,%rdi,4), %edx
addl $0x1, %edx
movslq %edx, %rdx
movl (%rax,%rdx,4), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %esi
movq -0x30(%rbp), %rax
movl -0x28(%rbp), %edx
addl -0x24(%rbp), %edx
movslq %edx, %rdx
movl %esi, (%rax,%rdx,4)
movq 0x20(%rcx), %rax
movslq -0x3c(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x28(%rcx), %rcx
movslq -0x3c(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
addl -0x18(%rbp), %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %edx
addl $-0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x548d5
movq -0x48(%rbp), %rdx
movq 0x48(%rdx), %rax
movq 0x28(%rdx), %rcx
movslq -0x14(%rbp), %rsi
movslq (%rcx,%rsi,4), %rcx
movq (%rax,%rcx,8), %rax
movq 0x28(%rdx), %rcx
movslq -0x14(%rbp), %rsi
movl (%rcx,%rsi,4), %ecx
shll %ecx
addl $0x1, %ecx
movq 0x40(%rdx), %rsi
movq 0x28(%rdx), %rdx
movslq -0x14(%rbp), %rdi
movslq (%rdx,%rdi,4), %rdi
movl (%rsi,%rdi,4), %edx
addl $-0x1, %edx
movl %edx, (%rsi,%rdi,4)
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x28(%rbp)
movq -0x48(%rbp), %rcx
movl -0x28(%rbp), %eax
movq 0x28(%rcx), %rcx
movslq -0x14(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
shll %ecx
cmpl %ecx, %eax
jg 0x54a19
movq -0x48(%rbp), %rax
movq -0x38(%rbp), %rcx
movslq -0x28(%rbp), %rdx
movl (%rcx,%rdx,4), %edx
movq 0x20(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x28(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x549d4
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movq 0x28(%rax), %rax
movslq -0x14(%rbp), %rcx
movl (%rax,%rcx,4), %edx
callq 0x4bfd0
movq -0x48(%rbp), %rcx
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rax
movq 0x28(%rcx), %rcx
movslq -0x14(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
shll %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %esi
callq 0x54ad0
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x4bff0
movq -0x48(%rbp), %rax
movq -0x38(%rbp), %rsi
movq 0x20(%rax), %rcx
movq -0x38(%rbp), %rdx
movq 0x28(%rax), %rdi
movslq -0x14(%rbp), %r8
movl (%rdi,%r8,4), %edi
shll %edi
movslq %edi, %rdi
movslq (%rdx,%rdi,4), %rdx
movq %rsi, (%rcx,%rdx,8)
movq -0x30(%rbp), %rsi
movq 0x20(%rax), %rcx
movslq -0x14(%rbp), %rdx
movq %rsi, (%rcx,%rdx,8)
movl -0x24(%rbp), %edx
movq 0x28(%rax), %rax
movslq -0x14(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movb $0x1, %al
andb $0x1, %al
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop