user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<delnod_>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x48,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    %rcx,-0x40(%rbp)
  mov    %r8,-0x48(%rbp)
  mov    %r9,-0x50(%rbp)
  subq   $0xc,0x30(%rbp)
  subq   $0x4,0x18(%rbp)
  subq   $0x4,0x10(%rbp)
  subq   $0x4,-0x50(%rbp)
  subq   $0x8,-0x48(%rbp)
  subq   $0x8,-0x40(%rbp)
  subq   $0x8,-0x38(%rbp)
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D1903(%rip)
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D1460(%rip)
  mov    D1903(%rip),%eax
  test   %eax,%eax
  jle    L114
  mov    D1903(%rip),%edx
  mov    D1460(%rip),%eax
  cmp    %eax,%edx
  jg     L114
  mov    D1460(%rip),%eax
  cmp    $0x3,%eax
  jle    L114
  mov    0x28(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  js     L114
  mov    D1903(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D709(%rip)
  mov    D709(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D511(%rip)
  mov    0x10(%rbp),%rax
  add    $0x4,%rax
  mov    %rax,%rsi
  lea    D709(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <nbcnt_@plt>
  mov    %eax,D2046(%rip)
  mov    D709(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  shr    $0x1f,%eax
  movzbl %al,%eax
  mov    %eax,D608(%rip)
  mov    D608(%rip),%eax
  test   %eax,%eax
  je     L485
  mov    D2046(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D1504(%rip)
L485:
  mov    D1504(%rip),%eax
  cmp    $0x2,%eax
  jle    L579
  mov    0x28(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D1504(%rip)
  mov    D1504(%rip),%eax
  lea    -0x3(%rax),%edx
  mov    0x28(%rbp),%rax
  mov    %edx,(%rax)
  mov    0x28(%rbp),%rax
  mov    (%rax),%edx
  mov    D1504(%rip),%eax
  cmp    %eax,%edx
  jg     L214
  movl   $0x0,D1877(%rip)
  mov    D1504(%rip),%eax
  cmp    $0x3,%eax
  je     L556
  mov    D1903(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D2714(%rip)
  mov    D1903(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1952(%rip)
  mov    D1903(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D2199(%rip)
  mov    D511(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1224(%rip)
  mov    D1224(%rip),%eax
  mov    %eax,D1763(%rip)
  mov    D1763(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1272(%rip)
  mov    D1763(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D2332(%rip)
  mov    D1763(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D47(%rip)
  mov    D511(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D2742(%rip)
  mov    D2742(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1896(%rip)
  mov    D1896(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D558(%rip)
  mov    D1896(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1150(%rip)
  mov    D1896(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D307(%rip)
  mov    D2742(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1957(%rip)
L34:
  mov    D1957(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  mov    %eax,D1957(%rip)
  mov    D1957(%rip),%edx
  mov    D1224(%rip),%eax
  cmp    %eax,%edx
  jne    L433
  mov    D608(%rip),%eax
  test   %eax,%eax
  jne    L617
L433:
  mov    D1957(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1946(%rip)
  mov    D1957(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D843(%rip)
  mov    D1957(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D3050(%rip)
  mov    D1896(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D62(%rip)
  mov    D608(%rip),%eax
  test   %eax,%eax
  jne    L89
  sub    $0x8,%rsp
  lea    D2199(%rip),%rax
  push   %rax
  lea    D1952(%rip),%rax
  push   %rax
  lea    D2714(%rip),%rax
  push   %rax
  lea    D3050(%rip),%r9
  lea    D843(%rip),%r8
  lea    D1946(%rip),%rax
  mov    %rax,%rcx
  lea    D47(%rip),%rax
  mov    %rax,%rdx
  lea    D2332(%rip),%rax
  mov    %rax,%rsi
  lea    D1272(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <left_@plt>
  add    $0x20,%rsp
  test   %eax,%eax
  je     L294
L89:
  mov    D62(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  js     L180
  sub    $0x8,%rsp
  lea    D307(%rip),%rax
  push   %rax
  lea    D1150(%rip),%rax
  push   %rax
  lea    D558(%rip),%rax
  push   %rax
  lea    D47(%rip),%r9
  lea    D2332(%rip),%r8
  lea    D1272(%rip),%rax
  mov    %rax,%rcx
  lea    D3050(%rip),%rax
  mov    %rax,%rdx
  lea    D843(%rip),%rax
  mov    %rax,%rsi
  lea    D1946(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <left_@plt>
  add    $0x20,%rsp
  test   %eax,%eax
  jne    L180
L294:
  mov    D1896(%rip),%eax
  mov    %eax,D868(%rip)
  movsd  D558(%rip),%xmm0
  movsd  %xmm0,D868(%rip)
  movsd  D1150(%rip),%xmm0
  movsd  %xmm0,D868(%rip)
  movsd  D307(%rip),%xmm0
  movsd  %xmm0,D868(%rip)
  jmp    L596
L180:
  mov    0x18(%rbp),%rax
  add    $0x4,%rax
  mov    0x10(%rbp),%rdx
  lea    0x4(%rdx),%rsi
  mov    -0x50(%rbp),%rdx
  lea    0x4(%rdx),%rcx
  lea    D868(%rip),%rdx
  push   %rdx
  push   %rax
  mov    %rsi,%r9
  mov    %rcx,%r8
  lea    D1896(%rip),%rax
  mov    %rax,%rcx
  lea    D1903(%rip),%rax
  mov    %rax,%rdx
  lea    D868(%rip),%rax
  mov    %rax,%rsi
  lea    D1957(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <swap_@plt>
  add    $0x10,%rsp
  mov    D868(%rip),%eax
  test   %eax,%eax
  jne    L539
  mov    D1896(%rip),%eax
  mov    %eax,D1343(%rip)
  movsd  D558(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D1150(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D307(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  jmp    L596
L539:
  mov    D1877(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D1343(%rip)
  mov    D1957(%rip),%edx
  mov    D1903(%rip),%eax
  cmp    %eax,%edx
  jg     L36
  mov    D1343(%rip),%eax
  add    %eax,%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x30(%rbp),%rax
  add    %rax,%rdx
  mov    D1957(%rip),%eax
  mov    %eax,(%rdx)
  jmp    L235
L36:
  mov    D1957(%rip),%edx
  mov    D1343(%rip),%eax
  add    %eax,%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rcx
  mov    0x30(%rbp),%rax
  add    %rcx,%rax
  sub    $0x1,%edx
  mov    %edx,(%rax)
L235:
  mov    D1343(%rip),%edx
  mov    D1903(%rip),%eax
  cmp    %eax,%edx
  jg     L698
  mov    D1343(%rip),%eax
  add    %eax,%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x30(%rbp),%rax
  add    %rax,%rdx
  mov    D1343(%rip),%eax
  mov    %eax,(%rdx)
  jmp    L98
L698:
  mov    D1343(%rip),%edx
  mov    D1343(%rip),%eax
  add    %eax,%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rcx
  mov    0x30(%rbp),%rax
  add    %rcx,%rax
  sub    $0x1,%edx
  mov    %edx,(%rax)
L98:
  mov    D1903(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1504(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cmp    $0x3,%eax
  je     L55
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    0x10(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x50(%rbp),%rax
  add    $0x4,%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D1957(%rip),%rax
  mov    %rax,%rsi
  lea    D1343(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <lstptr_@plt>
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%edx
  mov    D1343(%rip),%eax
  cmp    %eax,%edx
  je     L326
  mov    D1343(%rip),%eax
  mov    %eax,D1343(%rip)
  movsd  D1343(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D1343(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D1343(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  mov    D868(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,D1343(%rip)
  jmp    L34
L326:
  nop
L596:
  mov    D1343(%rip),%edx
  mov    D1343(%rip),%eax
  cmp    %eax,%edx
  je     L104
  mov    D1957(%rip),%eax
  mov    %eax,D1343(%rip)
  movsd  D1946(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D843(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  movsd  D3050(%rip),%xmm0
  movsd  %xmm0,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  jmp    L34
L556:
  nop
  jmp    L276
L617:
  nop
  jmp    L276
L55:
  nop
  jmp    L276
L104:
  nop
L276:
  mov    D608(%rip),%eax
  test   %eax,%eax
  jne    L575
  mov    D1343(%rip),%eax
  cmp    $0x3,%eax
  jle    L154
  movl   $0x1,D608(%rip)
  jmp    L275
L154:
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1343(%rip)
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%r9
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  lea    (%rdx,%rax,1),%r8
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%r11
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  lea    (%rdx,%rax,1),%r10
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rsi
  mov    -0x40(%rbp),%rax
  add    %rax,%rsi
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rbx
  mov    -0x38(%rbp),%rax
  add    %rbx,%rax
  sub    $0x8,%rsp
  push   %r9
  push   %r8
  push   %rdi
  mov    %r11,%r9
  mov    %r10,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <left_@plt>
  add    $0x20,%rsp
  mov    %eax,D1343(%rip)
L275:
  mov    D1343(%rip),%eax
  test   %eax,%eax
  je     L575
  mov    D1460(%rip),%eax
  mov    %eax,-0x14(%rbp)
  movl   $0x1,D1343(%rip)
  jmp    L735
L476:
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jns    L684
  movl   $0x0,D1343(%rip)
  jmp    L693
L684:
  mov    D1343(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D781(%rip)
L735:
  mov    D781(%rip),%eax
  cmp    %eax,-0x14(%rbp)
  jge    L476
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    D1343(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x50(%rbp),%rax
  add    %rcx,%rax
  neg    %edx
  mov    %edx,(%rax)
  mov    D1343(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D781(%rip)
  jmp    L693
L575:
  nop
L693:
  mov    D1343(%rip),%eax
  test   %eax,%eax
  jne    L637
  mov    D781(%rip),%eax
  cmp    $0x3,%eax
  jg     L738
L637:
  mov    D1343(%rip),%eax
  mov    %eax,D781(%rip)
  mov    0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D781(%rip)
L413:
  mov    D781(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D2387(%rip)
  mov    D2387(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  mov    %eax,D2387(%rip)
  mov    0x18(%rbp),%rax
  lea    0x4(%rax),%rdi
  mov    0x10(%rbp),%rax
  lea    0x4(%rax),%rsi
  mov    -0x50(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x30(%rbp),%rax
  lea    D2387(%rip),%rcx
  push   %rcx
  lea    D781(%rip),%rcx
  push   %rcx
  mov    %rdi,%r9
  mov    %rsi,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D1903(%rip),%rax
  mov    %rax,%rsi
  lea    D2387(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <delnb_@plt>
  add    $0x10,%rsp
  mov    D2387(%rip),%eax
  test   %eax,%eax
  js     L137
  mov    D1343(%rip),%edx
  mov    D781(%rip),%eax
  cmp    %eax,%edx
  jne    L21
  mov    D2387(%rip),%eax
  mov    %eax,D20(%rip)
L21:
  mov    D2387(%rip),%edx
  mov    D781(%rip),%eax
  cmp    %eax,%edx
  jne    L436
  mov    D2387(%rip),%eax
  mov    %eax,D20(%rip)
L436:
  mov    D20(%rip),%edx
  mov    D20(%rip),%eax
  cmp    %eax,%edx
  je     L62
  jmp    L413
L62:
  mov    D1460(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D20(%rip)
  mov    D1903(%rip),%edx
  mov    D20(%rip),%eax
  cmp    %eax,%edx
  jg     L631
  mov    D20(%rip),%eax
  mov    %eax,-0x14(%rbp)
  mov    D1903(%rip),%eax
  mov    %eax,D20(%rip)
  jmp    L107
L503:
  mov    D20(%rip),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x38(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    D20(%rip),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rax,%rdx
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x40(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    D20(%rip),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x48(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    D20(%rip),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    D20(%rip),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    0x18(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  mov    D20(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D20(%rip)
L107:
  mov    D20(%rip),%eax
  cmp    %eax,-0x14(%rbp)
  jge    L503
  mov    D781(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,-0x14(%rbp)
  movl   $0x1,D20(%rip)
  jmp    L272
L73:
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    D1903(%rip),%eax
  cmp    %eax,%edx
  jle    L449
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  sub    $0x1,%edx
  mov    %edx,(%rax)
L449:
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    D1903(%rip),%edx
  neg    %edx
  cmp    %edx,%eax
  jge    L259
  mov    D20(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  add    $0x1,%edx
  mov    %edx,(%rax)
L259:
  mov    D20(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D20(%rip)
L272:
  mov    D20(%rip),%eax
  cmp    %eax,-0x14(%rbp)
  jge    L73
  jmp    L670
L631:
  nop
L670:
  mov    D1343(%rip),%eax
  test   %eax,%eax
  je     L758
  mov    D781(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D20(%rip)
L758:
  mov    D20(%rip),%eax
  mov    %eax,D20(%rip)
  mov    D20(%rip),%eax
  mov    %eax,-0x14(%rbp)
  movl   $0x1,D309(%rip)
  jmp    L665
L609:
  mov    D781(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D1852(%rip)
  mov    D20(%rip),%eax
  mov    %eax,D1852(%rip)
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,D1852(%rip)
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  mov    D1852(%rip),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x50(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    D1852(%rip),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    0x10(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    D1852(%rip),%eax
  cmp    %eax,%edx
  jne    L662
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rax,%rdx
  mov    D1852(%rip),%eax
  mov    %eax,(%rdx)
L662:
  mov    D1852(%rip),%edx
  mov    D1852(%rip),%eax
  cmp    %eax,%edx
  jne    L155
  mov    D1852(%rip),%eax
  mov    %eax,D1852(%rip)
L155:
  mov    D20(%rip),%eax
  mov    %eax,D1852(%rip)
  jmp    L641
L534:
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    D1852(%rip),%eax
  cmp    %eax,%edx
  jne    L707
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    D1852(%rip),%eax
  mov    %eax,(%rdx)
  jmp    L549
L707:
  mov    D1852(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D1852(%rip)
L641:
  mov    D1852(%rip),%eax
  test   %eax,%eax
  jg     L534
  nop
L549:
  mov    D1852(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D1852(%rip)
  jmp    L120
L410:
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    D1852(%rip),%eax
  cmp    %eax,%edx
  jne    L589
  mov    D1852(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x10(%rbp),%rax
  add    %rax,%rdx
  mov    D1852(%rip),%eax
  mov    %eax,(%rdx)
L589:
  mov    D1852(%rip),%eax
  sub    $0x1,%eax
  mov    %eax,D1852(%rip)
L120:
  mov    D1852(%rip),%eax
  test   %eax,%eax
  jg     L410
  mov    D309(%rip),%eax
  add    $0x1,%eax
  mov    %eax,D1852(%rip)
L665:
  mov    D1852(%rip),%eax
  cmp    %eax,-0x14(%rbp)
  jge    L609
  mov    D20(%rip),%edx
  mov    -0x30(%rbp),%rax
  mov    %edx,(%rax)
  mov    D1852(%rip),%edx
  mov    0x20(%rbp),%rax
  mov    %edx,(%rax)
  mov    D1343(%rip),%eax
  test   %eax,%eax
  jle    L127
  mov    D1343(%rip),%eax
  shl    $0x2,%eax
  mov    %eax,D1852(%rip)
  mov    0x30(%rbp),%rax
  lea    0xc(%rax),%rdi
  mov    0x18(%rbp),%rax
  lea    0x4(%rax),%rcx
  mov    0x10(%rbp),%rax
  lea    0x4(%rax),%r9
  mov    -0x50(%rbp),%rax
  lea    0x4(%rax),%r10
  mov    -0x48(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    -0x40(%rbp),%rax
  lea    0x8(%rax),%rsi
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  lea    D2549(%rip),%r8
  push   %r8
  push   %rdi
  lea    D1852(%rip),%rdi
  push   %rdi
  push   %rcx
  mov    %r10,%r8
  lea    D1343(%rip),%rcx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <optim_@plt>
  add    $0x20,%rsp
  mov    D2549(%rip),%eax
  test   %eax,%eax
  je     L494
  mov    D2549(%rip),%eax
  cmp    $0x1,%eax
  jne    L498
L494:
  mov    D2549(%rip),%eax
  cmp    $0x1,%eax
  je     L736
L127:
  mov    0x38(%rbp),%rax
  movl   $0x0,(%rax)
  mov    $0x0,%eax
  jmp    L78
L114:
  nop
  mov    0x38(%rbp),%rax
  movl   $0x1,(%rax)
  mov    $0x0,%eax
  jmp    L78
L214:
  nop
  mov    0x38(%rbp),%rax
  movl   $0x2,(%rax)
  mov    $0x0,%eax
  jmp    L78
L579:
  nop
  jmp    L52
L137:
  nop
L52:
  mov    0x38(%rbp),%rax
  movl   $0x3,(%rax)
  mov    $0x0,%eax
  jmp    L78
L738:
  nop
  mov    0x38(%rbp),%rax
  movl   $0x4,(%rax)
  mov    $0x0,%eax
  jmp    L78
L498:
  nop
  mov    0x38(%rbp),%rax
  movl   $0x5,(%rax)
  mov    $0x0,%eax
  jmp    L78
L736:
  nop
  mov    0x38(%rbp),%rax
  movl   $0x6,(%rax)
  mov    $0x0,%eax
L78:
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
int delnod_(int *k, int *n, double *x, double *y, double *z__, int *list, int *lptr, int *lend, int *lnew, int *lwk, int *iwk, int *ier) {
  int i__1;
  static int i__, j, n1, n2;
  static double x1, x2, y11, y2, z1, z2;
  static int nl, lp, nn, nr;
  static double xl, yl, zl, xr, yr, zr;
  static int nnb, lp21, lpf, lph, lpl, lpn, iwl, nit, lnw, lpl2;
  static int bdry;
  static int ierr, lwkl;
  static int nfrst;
  iwk -= 3;
  --lend;
  --lptr;
  --list;
  --z__;
  --y;
  --x;
  n1 = *k;
  nn = *n;
  if (n1 < 1 || n1 > nn || nn < 4 || *lwk < 0) {
    goto L21;
  }
  lpl = lend[n1];
  lpf = lptr[lpl];
  nnb = nbcnt_(&lpl, &lptr[1]);
  bdry = list[lpl] < 0;
  if (bdry) {
    ++nnb;
  }
  if (nnb < 3) {
    goto L23;
  }
  lwkl = *lwk;
  *lwk = nnb - 3;
  if (lwkl < *lwk) {
    goto L22;
  }
  iwl = 0;
  if (nnb == 3) {
    goto L3;
  }
  x1 = x[n1];
  y11 = y[n1];
  z1 = z__[n1];
  nfrst = list[lpf];
  nr = nfrst;
  xr = x[nr];
  yr = y[nr];
  zr = z__[nr];
  lp = lptr[lpf];
  n2 = list[lp];
  x2 = x[n2];
  y2 = y[n2];
  z2 = z__[n2];
  lp = lptr[lp];
L1:
  nl = (i__1 = list[lp], ((i__1) >= 0 ? (i__1) : -(i__1)));
  if (nl == nfrst && bdry) {
    goto L3;
  }
  xl = x[nl];
  yl = y[nl];
  zl = z__[nl];
  lpl2 = lend[n2];
  if (!((bdry || left_(&xr, &yr, &zr, &xl, &yl, &zl, &x1, &y11, &z1)) && (list[lpl2] < 0 || left_(&xl, &yl, &zl, &xr, &yr, &zr, &x2, &y2, &z2)))) {
    nr = n2;
    xr = x2;
    yr = y2;
    zr = z2;
    goto L2;
  }
  swap_(&nl, &nr, &n1, &n2, &list[1], &lptr[1], &lend[1], &lp21);
  if (lp21 == 0) {
    nr = n2;
    xr = x2;
    yr = y2;
    zr = z2;
    goto L2;
  }
  ++iwl;
  if (nl <= n1) {
    iwk[(iwl << 1) + 1] = nl;
  } else {
    iwk[(iwl << 1) + 1] = nl - 1;
  }
  if (nr <= n1) {
    iwk[(iwl << 1) + 2] = nr;
  } else {
    iwk[(iwl << 1) + 2] = nr - 1;
  }
  lpl = lend[n1];
  --nnb;
  if (nnb == 3) {
    goto L3;
  }
  lpf = lptr[lpl];
  nfrst = list[lpf];
  lp = lstptr_(&lpl, &nl, &list[1], &lptr[1]);
  if (nr == nfrst) {
    goto L2;
  }
  n2 = nr;
  x2 = xr;
  y2 = yr;
  z2 = zr;
  lp21 = lptr[lp21];
  lp21 = lptr[lp21];
  nr = (i__1 = list[lp21], ((i__1) >= 0 ? (i__1) : -(i__1)));
  xr = x[nr];
  yr = y[nr];
  zr = z__[nr];
  goto L1;
L2:
  if (n2 == nfrst) {
    goto L3;
  }
  n2 = nl;
  x2 = xl;
  y2 = yl;
  z2 = zl;
  lp = lptr[lp];
  goto L1;
L3:
  if (!bdry) {
    if (nnb > 3) {
      bdry = (1);
    } else {
      lpf = lptr[lpl];
      nr = list[lpf];
      lp = lptr[lpf];
      n2 = list[lp];
      nl = list[lpl];
      bdry = left_(&x[nr], &y[nr], &z__[nr], &x[nl], &y[nl], &z__[nl], &x[n2], &y[n2], &z__[n2]);
    }
    if (bdry) {
      i__1 = nn;
      for (i__ = 1; i__ <= i__1; ++i__) {
        if (list[lend[i__]] < 0) {
          bdry = (0);
          goto L5;
        }
      }
      list[lpl] = -list[lpl];
      ++nnb;
    }
  }
L5:
  if (!bdry && nnb > 3) {
    goto L24;
  }
  lp = lpl;
  lnw = *lnew;
L6:
  lp = lptr[lp];
  n2 = (i__1 = list[lp], ((i__1) >= 0 ? (i__1) : -(i__1)));
  delnb_(&n2, &n1, n, &list[1], &lptr[1], &lend[1], &lnw, &lph);
  if (lph < 0) {
    goto L23;
  }
  if (lpl == lnw) {
    lpl = lph;
  }
  if (lp == lnw) {
    lp = lph;
  }
  if (lp != lpl) {
    goto L6;
  }
  --nn;
  if (n1 > nn) {
    goto L9;
  }
  i__1 = nn;
  for (i__ = n1; i__ <= i__1; ++i__) {
    x[i__] = x[i__ + 1];
    y[i__] = y[i__ + 1];
    z__[i__] = z__[i__ + 1];
    lend[i__] = lend[i__ + 1];
  }
  i__1 = lnw - 1;
  for (i__ = 1; i__ <= i__1; ++i__) {
    if (list[i__] > n1) {
      --list[i__];
    }
    if (list[i__] < -n1) {
      ++list[i__];
    }
  }
L9:
  if (bdry) {
    --nnb;
  }
  lpn = lpl;
  i__1 = nnb;
  for (j = 1; j <= i__1; ++j) {
    --lnw;
    lp = lpn;
    lpn = lptr[lp];
    list[lp] = list[lnw];
    lptr[lp] = lptr[lnw];
    if (lptr[lpn] == lnw) {
      lptr[lpn] = lp;
    }
    if (lpn == lnw) {
      lpn = lp;
    }
    for (i__ = nn; i__ >= 1; --i__) {
      if (lend[i__] == lnw) {
        lend[i__] = lp;
        goto L11;
      }
    }
  L11:
    for (i__ = lnw - 1; i__ >= 1; --i__) {
      if (lptr[i__] == lnw) {
        lptr[i__] = lp;
      }
    }
  }
  *n = nn;
  *lnew = lnw;
  if (iwl > 0) {
    nit = iwl << 2;
    optim_(&x[1], &y[1], &z__[1], &iwl, &list[1], &lptr[1], &lend[1], &nit, &iwk[3], &ierr);
    if (ierr != 0 && ierr != 1) {
      goto L25;
    }
    if (ierr == 1) {
      goto L26;
    }
  }
  *ier = 0;
  return 0;
L21:
  *ier = 1;
  return 0;
L22:
  *ier = 2;
  return 0;
L23:
  *ier = 3;
  return 0;
L24:
  *ier = 4;
  return 0;
L25:
  *ier = 5;
  return 0;
L26:
  *ier = 6;
  return 0;
}
```