user: Demonstrate the C code that generates the assembly output below:

```asm
<delnod_>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xa8,%rsp
  mov    %rdx,0x18(%rsp)
  movslq (%rdi),%rdx
  mov    $0x1,%edi
  mov    %rcx,0x28(%rsp)
  mov    0xe0(%rsp),%rbx
  mov    %edx,D1485(%rip)
  mov    (%rsi),%ecx
  mov    %rsi,0x30(%rsp)
  cmp    %ecx,%edx
  mov    %ecx,D1594(%rip)
  setg   %al
  test   %edx,%edx
  mov    %r8,0x20(%rsp)
  setle  %sil
  or     %esi,%eax
  cmp    $0x3,%ecx
  setle  %cl
  or     %cl,%al
  mov    %al,0x38(%rsp)
  je     L601
L548:
  mov    0x108(%rsp),%rax
  mov    %edi,(%rax)
  add    $0xa8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L601:
  mov    0xf8(%rsp),%rax
  mov    (%rax),%r8d
  test   %r8d,%r8d
  js     L548
  lea    -0x4(%rbx),%r15
  mov    %rbx,%rsi
  lea    -0x4(%r9),%rbp
  mov    %r9,%r13
  mov    0xe8(%rsp),%rax
  lea    D698(%rip),%rdi
  sub    $0x4,%rax
  mov    %rax,0x8(%rsp)
  movslq (%rax,%rdx,4),%rax
  mov    %eax,D1628(%rip)
  mov    (%r15,%rax,4),%eax
  mov    %eax,D1628(%rip)
  xor    %eax,%eax
  call   <nbcnt_@plt>
  movslq D1628(%rip),%rdx
  mov    %eax,D1071(%rip)
  mov    0x0(%rbp,%rdx,4),%edx
  mov    %edx,%esi
  shr    $0x1f,%esi
  mov    %esi,D158(%rip)
  test   %edx,%edx
  jns    L500
  add    $0x1,%eax
  mov    %eax,D1430(%rip)
L500:
  cmp    $0x2,%eax
  jle    L621
  mov    0xf8(%rsp),%rdi
  lea    -0x3(%rax),%edx
  mov    (%rdi),%ecx
  mov    %edx,(%rdi)
  mov    $0x2,%edi
  cmp    %edx,%ecx
  jl     L548
  movl   $0x0,D1430(%rip)
  mov    0x20(%rsp),%rdi
  lea    -0x8(%rdi),%r12
  mov    0x28(%rsp),%rdi
  lea    -0x8(%rdi),%r14
  mov    0x18(%rsp),%rdi
  sub    $0x8,%rdi
  mov    %rdi,0x48(%rsp)
  cmp    $0x3,%eax
  je     L541
  mov    0x100(%rsp),%rax
  movslq D1628(%rip),%rdx
  mov    %r15,0x10(%rsp)
  sub    $0xc,%rax
  mov    %rax,0x40(%rsp)
  movslq D1485(%rip),%rax
  movsd  (%rdi,%rax,8),%xmm0
  movsd  %xmm0,D778(%rip)
  movsd  (%r14,%rax,8),%xmm0
  movsd  %xmm0,D1757(%rip)
  movsd  (%r12,%rax,8),%xmm0
  movslq 0x0(%rbp,%rdx,4),%rax
  movsd  %xmm0,D218(%rip)
  movsd  (%rdi,%rax,8),%xmm0
  mov    %rax,%rcx
  mov    %eax,D1179(%rip)
  movslq (%r15,%rdx,4),%rdx
  movsd  %xmm0,D780(%rip)
  movsd  (%r14,%rax,8),%xmm0
  mov    %eax,D509(%rip)
  movsd  %xmm0,D711(%rip)
  movsd  (%r12,%rax,8),%xmm0
  movslq 0x0(%rbp,%rdx,4),%rax
  movsd  %xmm0,D1139(%rip)
  movsd  (%rdi,%rax,8),%xmm0
  mov    %eax,D1004(%rip)
  movsd  %xmm0,D1335(%rip)
  movsd  (%r14,%rax,8),%xmm0
  movsd  %xmm0,D1067(%rip)
  movsd  (%r12,%rax,8),%xmm0
  mov    (%r15,%rdx,4),%eax
  mov    %rdi,%r15
  mov    %eax,D271(%rip)
  movsd  %xmm0,D649(%rip)
  jmp    L210
  cs nopw 0x0(%rax,%rax,1)
L355:
  cltq
  mov    0x8(%rsp),%rdi
  movsd  (%r15,%rax,8),%xmm0
  movsd  %xmm0,D124(%rip)
  movsd  (%r14,%rax,8),%xmm0
  movsd  %xmm0,D1379(%rip)
  movsd  (%r12,%rax,8),%xmm0
  movslq D1004(%rip),%rax
  movslq (%rdi,%rax,4),%rax
  movsd  %xmm0,D497(%rip)
  mov    %eax,D1504(%rip)
  test   %esi,%esi
  je     L534
L30:
  mov    0x0(%rbp,%rax,4),%esi
  test   %esi,%esi
  js     L99
  sub    $0x8,%rsp
  lea    D649(%rip),%rax
  lea    D1139(%rip),%r9
  push   %rax
  lea    D1067(%rip),%rax
  lea    D711(%rip),%r8
  push   %rax
  lea    D1335(%rip),%rax
  lea    D780(%rip),%rcx
  push   %rax
  lea    D497(%rip),%rdx
  lea    D1379(%rip),%rsi
  xor    %eax,%eax
  lea    D124(%rip),%rdi
  call   <left_@plt>
  add    $0x20,%rsp
  test   %eax,%eax
  je     L44
L99:
  lea    D489(%rip),%rax
  mov    %rbx,%r9
  mov    %r13,%r8
  push   %rax
  lea    D1634(%rip),%r10
  xor    %eax,%eax
  lea    D1004(%rip),%rcx
  push   0xf0(%rsp)
  lea    D1485(%rip),%rdx
  mov    %r10,%rdi
  lea    D1179(%rip),%rsi
  call   <swap_@plt>
  mov    D489(%rip),%ecx
  pop    %rax
  lea    D1634(%rip),%r10
  pop    %rdx
  test   %ecx,%ecx
  je     L44
  mov    D1430(%rip),%eax
  mov    D1634(%rip),%edx
  xor    %ecx,%ecx
  mov    0x40(%rsp),%rdi
  mov    0x8(%rsp),%rsi
  add    $0x1,%eax
  mov    %eax,D1763(%rip)
  add    %eax,%eax
  cmp    D1485(%rip),%edx
  setg   %cl
  cltq
  sub    %ecx,%edx
  xor    %ecx,%ecx
  mov    %edx,0x4(%rdi,%rax,4)
  mov    D1763(%rip),%eax
  mov    D1179(%rip),%edx
  add    %eax,%eax
  cmp    D1485(%rip),%edx
  setg   %cl
  cltq
  sub    %ecx,%edx
  mov    %edx,0x8(%rdi,%rax,4)
  movslq D1485(%rip),%rax
  mov    0x10(%rsp),%rdi
  movslq (%rsi,%rax,4),%rax
  mov    D1430(%rip),%esi
  lea    -0x1(%rsi),%edx
  mov    %eax,D1763(%rip)
  lea    (%rdi,%rax,4),%rcx
  mov    %edx,D1763(%rip)
  cmp    $0x3,%edx
  je     L348
  movslq (%rcx),%rax
  mov    %r13,%rdx
  mov    %rbx,%rcx
  mov    %r10,%rsi
  lea    D1763(%rip),%rdi
  mov    %eax,D1763(%rip)
  mov    0x0(%rbp,%rax,4),%eax
  mov    %eax,D1763(%rip)
  xor    %eax,%eax
  call   <lstptr_@plt>
  mov    D1179(%rip),%edx
  mov    D1763(%rip),%ecx
  mov    %eax,D1763(%rip)
  cmp    %ecx,%edx
  je     L11
  mov    %edx,D1763(%rip)
  mov    0x10(%rsp),%rsi
  movslq D489(%rip),%rdx
  movsd  D780(%rip),%xmm0
  movslq (%rsi,%rdx,4),%rdx
  movsd  %xmm0,D1763(%rip)
  movsd  D711(%rip),%xmm0
  mov    %edx,D1763(%rip)
  movslq (%rsi,%rdx,4),%rdx
  movsd  %xmm0,D1763(%rip)
  movsd  D1139(%rip),%xmm0
  mov    %edx,D1763(%rip)
  mov    0x0(%rbp,%rdx,4),%esi
  movsd  %xmm0,D1763(%rip)
  mov    %esi,%edx
  neg    %edx
  cmovs  %esi,%edx
  mov    %edx,D1763(%rip)
  movslq %edx,%rdx
  movsd  (%r15,%rdx,8),%xmm0
  movsd  %xmm0,D1763(%rip)
  movsd  (%r14,%rdx,8),%xmm0
  movsd  %xmm0,D1763(%rip)
  movsd  (%r12,%rdx,8),%xmm0
  movsd  %xmm0,D1763(%rip)
L664:
  mov    D158(%rip),%esi
L210:
  cltq
  mov    0x0(%rbp,%rax,4),%edx
  mov    %edx,%eax
  neg    %eax
  cmovs  %edx,%eax
  mov    %eax,D1763(%rip)
  cmp    %ecx,%eax
  jne    L355
  test   %esi,%esi
  je     L355
  mov    0x10(%rsp),%r15
  movslq D1763(%rip),%rax
  nopl   0x0(%rax)
L608:
  mov    0xf0(%rsp),%rdi
  mov    %r15,0x8(%rsp)
  lea    D1763(%rip),%r12
  lea    D1485(%rip),%r14
  mov    %rbp,0x10(%rsp)
  mov    0x30(%rsp),%r15
  mov    %rbx,%rbp
  mov    (%rdi),%edx
  mov    0xe8(%rsp),%rbx
  mov    %edx,D1763(%rip)
  jmp    L666
  nopw   0x0(%rax,%rax,1)
L62:
  mov    D1763(%rip),%edx
  cmp    %edx,%esi
  jne    L706
  mov    %ecx,D1039(%rip)
  cmp    %eax,%ecx
  je     L645
  mov    %ecx,%edx
L245:
  movslq %edx,%rax
L666:
  mov    0x8(%rsp),%rsi
  mov    0x10(%rsp),%rdi
  mov    %r13,%rcx
  mov    %rbx,%r9
  mov    %rbp,%r8
  movslq (%rsi,%rax,4),%rax
  mov    %r14,%rsi
  mov    (%rdi,%rax,4),%edx
  mov    %eax,D1039(%rip)
  mov    %r12,%rdi
  mov    %edx,%eax
  neg    %eax
  cmovs  %edx,%eax
  mov    %r15,%rdx
  mov    %eax,D1039(%rip)
  lea    D1039(%rip),%rax
  push   %rax
  lea    D1763(%rip),%rax
  push   %rax
  xor    %eax,%eax
  call   <delnb_@plt>
  mov    D1039(%rip),%ecx
  pop    %rsi
  pop    %rdi
  test   %ecx,%ecx
  js     L621
  mov    D1763(%rip),%eax
  mov    D1763(%rip),%esi
  cmp    %esi,%eax
  jne    L62
  mov    D1039(%rip),%edx
  mov    %ecx,D110(%rip)
  cmp    %edx,%eax
  je     L564
  mov    %ecx,%eax
L706:
  cmp    %edx,%eax
  jne    L245
L645:
  mov    %rbp,%rbx
  mov    0x8(%rsp),%r15
  mov    0x10(%rsp),%rbp
L3:
  mov    D1594(%rip),%r9d
  mov    D1485(%rip),%edx
  lea    -0x1(%r9),%r12d
  mov    %r12d,D110(%rip)
  cmp    %edx,%r12d
  jl     L556
  mov    %r9d,%ecx
  movslq %edx,%rax
  mov    0x20(%rsp),%r8
  mov    0xe8(%rsp),%r11
  sub    %edx,%ecx
  lea    0x0(,%rax,4),%rdi
  lea    -0x1(%rcx),%esi
  mov    %rdi,0x88(%rsp)
  lea    0x2(%rax,%rsi,1),%rdx
  mov    %rsi,0x90(%rsp)
  lea    -0x8(,%rdx,8),%rcx
  mov    0xe8(%rsp),%rdx
  mov    %rcx,%r10
  lea    -0x4(%rdx,%rdi,1),%rdi
  mov    %r10,0x58(%rsp)
  mov    %rdi,0x78(%rsp)
  lea    0x1(%rax),%rdi
  lea    (%rdi,%rsi,1),%rdx
  mov    %rdi,0x98(%rsp)
  lea    -0x4(%r11,%rdx,4),%r11
  shl    $0x3,%rdx
  mov    %r11,0x70(%rsp)
  lea    0x0(,%rax,8),%r11
  lea    -0x8(%r11),%rdi
  lea    (%r8,%rdi,1),%r14
  mov    %r14,0x10(%rsp)
  mov    0x28(%rsp),%r14
  mov    %r14,%rsi
  add    %rcx,%rsi
  mov    0x18(%rsp),%rcx
  mov    %rsi,0x50(%rsp)
  lea    (%r14,%rdi,1),%rsi
  mov    %rsi,0x8(%rsp)
  mov    %rcx,%rsi
  add    %rcx,%rdi
  lea    -0x8(%rdx),%rcx
  add    %r10,%rsi
  mov    %r8,%r10
  mov    %rsi,0x38(%rsp)
  mov    %r8,%rsi
  mov    %r14,%r8
  add    %rcx,%r8
  add    %rcx,%rsi
  add    0x18(%rsp),%rcx
  mov    %r8,0x48(%rsp)
  mov    %r10,%r8
  lea    (%r10,%r11,1),%r10
  mov    %r10,0x40(%rsp)
  lea    (%r8,%rdx,1),%r10
  mov    %rcx,%r8
  mov    %r14,%rcx
  add    %rcx,%rdx
  lea    (%r14,%r11,1),%r14
  mov    %r8,0x60(%rsp)
  cmp    %rdx,%rdi
  mov    %r14,0x80(%rsp)
  setae  %dl
  cmp    %r8,%r14
  mov    0x8(%rsp),%r8
  setae  %cl
  or     %ecx,%edx
  cmp    %rdi,0x48(%rsp)
  setbe  %cl
  cmp    %r8,0x38(%rsp)
  setbe  0x8(%rsp)
  movzbl 0x8(%rsp),%r14d
  mov    %r8,0x8(%rsp)
  or     %r14d,%ecx
  and    %edx,%ecx
  cmp    %r8,%rsi
  mov    0x50(%rsp),%r8
  setbe  %dl
  cmp    0x10(%rsp),%r8
  setbe  0x68(%rsp)
  movzbl 0x68(%rsp),%r14d
  mov    %r10,0x68(%rsp)
  or     %r14d,%edx
  and    %ecx,%edx
  cmp    0x8(%rsp),%r10
  mov    0x40(%rsp),%r10
  setbe  %cl
  cmp    0x48(%rsp),%r10
  mov    0x78(%rsp),%r14
  setae  %r8b
  or     %r8d,%ecx
  mov    0x10(%rsp),%r8
  and    %edx,%ecx
  cmp    %rdi,%rsi
  setbe  %dl
  cmp    %r8,0x38(%rsp)
  setbe  %sil
  or     %esi,%edx
  and    %ecx,%edx
  cmp    %rdi,0x68(%rsp)
  setbe  %cl
  cmp    %r10,0x60(%rsp)
  mov    0x70(%rsp),%r10
  setbe  %sil
  or     %esi,%ecx
  mov    0x10(%rsp),%rsi
  and    %edx,%ecx
  mov    0x58(%rsp),%rdx
  add    0x20(%rsp),%rdx
  cmp    %rdx,%r14
  setae  %dl
  cmp    %r10,%rsi
  setae  %sil
  or     %esi,%edx
  and    %ecx,%edx
  cmp    %r10,0x8(%rsp)
  setae  %cl
  cmp    %r14,0x50(%rsp)
  setbe  %sil
  or     %esi,%ecx
  test   %cl,%dl
  je     L43
  cmp    %r10,%rdi
  setae  %cl
  cmp    %r14,0x38(%rsp)
  setbe  %dl
  or     %cl,%dl
  je     L43
  mov    0x90(%rsp),%rax
  mov    0x18(%rsp),%rcx
  mov    %r9d,0x50(%rsp)
  add    $0x1,%rax
  lea    (%rcx,%r11,1),%rsi
  lea    0x0(,%rax,8),%rdx
  mov    %rax,0x48(%rsp)
  mov    %rdx,0x38(%rsp)
  call   <memmove@plt>
  mov    0x38(%rsp),%rdx
  mov    0x8(%rsp),%rdi
  mov    0x80(%rsp),%rsi
  call   <memmove@plt>
  mov    0x38(%rsp),%rdx
  mov    0x40(%rsp),%rsi
  mov    0x10(%rsp),%rdi
  call   <memmove@plt>
  mov    0x48(%rsp),%rcx
  mov    0x88(%rsp),%rsi
  mov    %r14,%rdi
  add    0xe8(%rsp),%rsi
  lea    0x0(,%rcx,4),%rdx
  call   <memmove@plt>
  mov    0x50(%rsp),%r9d
L471:
  movl   $0x1,D110(%rip)
  mov    D1763(%rip),%edi
  cmp    $0x1,%edi
  jle    L672
  lea    -0x1(%rdi),%eax
  mov    %r13,%rcx
  lea    0x0(%r13,%rax,4),%rsi
  cs nopw 0x0(%rax,%rax,1)
L134:
  mov    (%rcx),%eax
  mov    D1485(%rip),%edx
  cmp    %edx,%eax
  jle    L498
  sub    $0x1,%eax
  mov    %eax,(%rcx)
  mov    D1485(%rip),%edx
L498:
  neg    %edx
  cmp    %eax,%edx
  jle    L451
  add    $0x1,%eax
  mov    %eax,(%rcx)
L451:
  add    $0x4,%rcx
  cmp    %rcx,%rsi
  jne    L134
  mov    %edi,D1624(%rip)
L672:
  mov    D110(%rip),%eax
L556:
  mov    D158(%rip),%edx
  mov    D1763(%rip),%r10d
  test   %edx,%edx
  je     L559
  sub    $0x1,%r10d
  mov    %r10d,D1624(%rip)
L559:
  mov    %eax,D1624(%rip)
  movl   $0x1,D57(%rip)
  test   %r10d,%r10d
  jle    L648
  mov    0xe8(%rsp),%rdi
  movslq %r12d,%rdx
  lea    -0x2(%r9),%ecx
  shl    $0x2,%rcx
  lea    -0x4(%rdi,%rdx,4),%r11
  movslq %r9d,%rdx
  xor    %r9d,%r9d
  lea    -0xc(,%rdx,4),%rdx
  sub    %rcx,%rdx
  add    %rdi,%rdx
  nopl   0x0(%rax,%rax,1)
L154:
  mov    D1763(%rip),%edi
  movslq %eax,%r8
  lea    -0x1(%rdi),%ecx
  lea    (%r15,%r8,4),%rdi
  mov    %ecx,D1273(%rip)
  movslq %ecx,%rcx
  mov    (%rdi),%esi
  mov    0x0(%rbp,%rcx,4),%ecx
  mov    %ecx,0x0(%rbp,%r8,4)
  movslq D1273(%rip),%rcx
  mov    (%r15,%rcx,4),%ecx
  mov    %ecx,(%rdi)
  movslq %esi,%rcx
  mov    D1273(%rip),%edi
  lea    (%r15,%rcx,4),%rcx
  cmp    %edi,(%rcx)
  jne    L377
  mov    %eax,(%rcx)
  mov    D1273(%rip),%edi
L377:
  cmp    %edi,%esi
  cmove  %eax,%esi
  test   %r12d,%r12d
  jle    L595
  mov    %r11,%rcx
  jmp    L656
  nopl   0x0(%rax)
L573:
  sub    $0x4,%rcx
  cmp    %rcx,%rdx
  je     L595
L656:
  cmp    %edi,(%rcx)
  jne    L573
  mov    %eax,(%rcx)
  mov    D1273(%rip),%edi
L595:
  lea    -0x1(%rdi),%ecx
  test   %ecx,%ecx
  jle    L186
  lea    -0x2(%rdi),%ecx
  movslq %ecx,%rcx
  jmp    L222
  nopl   0x0(%rax)
L150:
  mov    D1273(%rip),%edi
  sub    $0x1,%rcx
L222:
  cmp    %edi,(%rbx,%rcx,4)
  jne    L504
  mov    %eax,(%rbx,%rcx,4)
L504:
  test   %ecx,%ecx
  jg     L150
  xor    %ecx,%ecx
L186:
  lea    0x1(%r9),%edi
  cmp    %edi,%r10d
  je     L378
  mov    %edi,%r9d
  mov    %esi,%eax
  jmp    L154
  nopw   0x0(%rax,%rax,1)
L534:
  sub    $0x8,%rsp
  lea    D218(%rip),%rax
  lea    D1379(%rip),%r8
  push   %rax
  lea    D1757(%rip),%rax
  lea    D497(%rip),%r9
  push   %rax
  lea    D778(%rip),%rax
  lea    D124(%rip),%rcx
  push   %rax
  lea    D1763(%rip),%rdx
  lea    D1763(%rip),%rsi
  xor    %eax,%eax
  lea    D1763(%rip),%rdi
  call   <left_@plt>
  add    $0x20,%rsp
  mov    %eax,%r8d
  movslq D1504(%rip),%rax
  test   %r8d,%r8d
  jne    L30
L44:
  movsd  D1763(%rip),%xmm0
  mov    D1039(%rip),%eax
  mov    D1763(%rip),%ecx
  movsd  %xmm0,D1273(%rip)
  movsd  D1763(%rip),%xmm0
  mov    %eax,D1273(%rip)
  movsd  %xmm0,D1273(%rip)
  movsd  D1763(%rip),%xmm0
  movsd  %xmm0,D1273(%rip)
L483:
  cmp    %ecx,%eax
  je     L445
  mov    D1763(%rip),%eax
  movsd  D124(%rip),%xmm0
  mov    0x10(%rsp),%rsi
  mov    %eax,D1273(%rip)
  movslq D1039(%rip),%rax
  movsd  %xmm0,D1273(%rip)
  movsd  D1379(%rip),%xmm0
  mov    (%rsi,%rax,4),%eax
  movsd  %xmm0,D1273(%rip)
  movsd  D497(%rip),%xmm0
  mov    %eax,D1273(%rip)
  movsd  %xmm0,D1273(%rip)
  jmp    L664
  nopl   0x0(%rax)
L11:
  mov    D1273(%rip),%eax
  jmp    L483
L621:
  mov    $0x3,%edi
  jmp    L548
  nopw   0x0(%rax,%rax,1)
L378:
  add    $0x2,%r9d
  mov    %ecx,D1273(%rip)
  mov    %r9d,D1273(%rip)
  mov    %eax,D1273(%rip)
  mov    %esi,D1273(%rip)
L648:
  mov    0x30(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  mov    %r12d,(%rax)
  mov    D1273(%rip),%eax
  mov    %eax,(%rdi)
  mov    D1763(%rip),%eax
  test   %eax,%eax
  jg     L508
  xor    %edi,%edi
  jmp    L548
L508:
  shl    $0x2,%eax
  mov    %rbx,%r9
  lea    D1763(%rip),%rcx
  mov    %r13,%r8
  mov    %eax,D1273(%rip)
  lea    D156(%rip),%rax
  push   %rax
  lea    D1273(%rip),%rax
  push   0x108(%rsp)
  push   %rax
  xor    %eax,%eax
  push   0x100(%rsp)
  mov    0x38(%rsp),%rdi
  mov    0x40(%rsp),%rdx
  mov    0x48(%rsp),%rsi
  call   <optim_@plt>
  add    $0x20,%rsp
  cmpl   $0x1,D156(%rip)
  mov    $0x5,%edi
  ja     L548
  mov    $0x6,%edi
  je     L548
  xor    %edi,%edi
  jmp    L548
  nopl   0x0(%rax,%rax,1)
L445:
  mov    D158(%rip),%r11d
  mov    0x10(%rsp),%r15
  test   %r11d,%r11d
  jne    L707
  mov    D1624(%rip),%esi
  cmp    $0x3,%esi
  jle    L480
  movl   $0x1,D158(%rip)
L74:
  movl   $0x1,D1273(%rip)
  mov    D110(%rip),%ecx
  test   %ecx,%ecx
  jle    L75
  mov    0x50(%rsp),%r8d
  movzbl 0x38(%rsp),%r9d
  mov    $0x2,%eax
  mov    0xe8(%rsp),%rdi
  jmp    L111
L352:
  mov    %eax,%r8d
  add    $0x1,%rax
  mov    $0x1,%r9d
  lea    -0x1(%rax),%edx
  cmp    %edx,%ecx
  jl     L77
L111:
  movslq -0x8(%rdi,%rax,4),%rdx
  mov    0x0(%rbp,%rdx,4),%r10d
  test   %r10d,%r10d
  jns    L352
  test   %r9b,%r9b
  je     L45
  mov    %r8d,D1486(%rip)
L45:
  movl   $0x0,D158(%rip)
L224:
  mov    $0x4,%edi
  cmp    $0x3,%esi
  jg     L548
L707:
  movslq D110(%rip),%rax
  jmp    L608
L348:
  mov    D158(%rip),%esi
  mov    %rdi,%r15
L680:
  test   %esi,%esi
  jne    L608
L383:
  movslq (%r15,%rax,4),%rdx
  mov    0x48(%rsp),%r8
  sub    $0x8,%rsp
  movslq 0x0(%rbp,%rdx,4),%rcx
  mov    %edx,D1486(%rip)
  mov    %ecx,D1486(%rip)
  movslq (%r15,%rdx,4),%rdx
  shl    $0x3,%rcx
  lea    (%r12,%rcx,1),%r10
  lea    (%r8,%rcx,1),%rdi
  mov    0x0(%rbp,%rdx,4),%esi
  mov    %edx,D1486(%rip)
  mov    %esi,D1486(%rip)
  movslq 0x0(%rbp,%rax,4),%rdx
  movslq %esi,%rax
  lea    (%r14,%rcx,1),%rsi
  shl    $0x3,%rax
  lea    (%r12,%rax,1),%rcx
  mov    %edx,D1486(%rip)
  shl    $0x3,%rdx
  push   %rcx
  lea    (%r14,%rax,1),%rcx
  add    %r8,%rax
  lea    (%r8,%rdx,1),%r11
  push   %rcx
  lea    (%r12,%rdx,1),%r9
  lea    (%r14,%rdx,1),%r8
  mov    %r11,%rcx
  push   %rax
  mov    %r10,%rdx
  xor    %eax,%eax
  call   <left_@plt>
  mov    D1624(%rip),%esi
  add    $0x20,%rsp
  mov    %eax,D1486(%rip)
  test   %eax,%eax
  je     L224
  jmp    L74
  nopl   0x0(%rax)
L541:
  movslq D110(%rip),%rax
  jmp    L680
L564:
  mov    %rbp,%rbx
  mov    %ecx,D1486(%rip)
  mov    0x8(%rsp),%r15
  mov    %ecx,%eax
  mov    0x10(%rsp),%rbp
  jmp    L3
L77:
  mov    %r8d,D1486(%rip)
L75:
  movslq D110(%rip),%rax
  add    $0x1,%esi
  mov    %esi,D1486(%rip)
  negl   0x0(%rbp,%rax,4)
  movslq D110(%rip),%rax
  jmp    L608
L43:
  mov    0x18(%rsp),%rdx
  mov    0x28(%rsp),%rcx
  mov    0x20(%rsp),%rsi
  mov    0xe8(%rsp),%rdi
  mov    0x98(%rsp),%r10
  jmp    L515
L584:
  add    $0x1,%r10
L515:
  movsd  (%rdx,%rax,8),%xmm0
  mov    (%rdi,%rax,4),%r8d
  movsd  %xmm0,-0x8(%rdx,%rax,8)
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rsi,%rax,8)
  mov    %r8d,-0x4(%rdi,%rax,4)
  mov    %r10,%rax
  cmp    %r10d,%r12d
  jge    L584
  jmp    L471
L480:
  movslq D110(%rip),%rax
  jmp    L383
```

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;
}
```