user: 这段汇编代码用C语言表示是什么样的?

```asm
<intadd_>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %rcx,-0x20(%rbp)
  mov    %r8,-0x28(%rbp)
  mov    %r9,-0x30(%rbp)
  subq   $0x4,0x10(%rbp)
  subq   $0x4,-0x30(%rbp)
  subq   $0x4,-0x28(%rbp)
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D72(%rip)
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D133(%rip)
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D35(%rip)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,D152(%rip)
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rcx
  mov    -0x28(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    D133(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    0x10(%rbp),%rax
  add    %rsi,%rax
  lea    D35(%rip),%rsi
  mov    %rax,%rdi
  call   <lstptr_@plt>
  mov    %eax,D100(%rip)
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    0x18(%rbp),%rcx
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D100(%rip),%rax
  mov    %rax,%rsi
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <insert_@plt>
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rcx
  mov    -0x28(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    D35(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    0x10(%rbp),%rax
  add    %rsi,%rax
  lea    D152(%rip),%rsi
  mov    %rax,%rdi
  call   <lstptr_@plt>
  mov    %eax,D46(%rip)
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    0x18(%rbp),%rcx
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D46(%rip),%rax
  mov    %rax,%rsi
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <insert_@plt>
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rcx
  mov    -0x28(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    D152(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rsi
  mov    0x10(%rbp),%rax
  add    %rsi,%rax
  lea    D133(%rip),%rsi
  mov    %rax,%rdi
  call   <lstptr_@plt>
  mov    %eax,D46(%rip)
  mov    -0x30(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    0x18(%rbp),%rcx
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D46(%rip),%rax
  mov    %rax,%rsi
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <insert_@plt>
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    D133(%rip),%eax
  mov    %eax,(%rdx)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    D35(%rip),%eax
  mov    %eax,(%rdx)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    D152(%rip),%eax
  mov    %eax,(%rdx)
  mov    0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x30(%rbp),%rax
  add    %rcx,%rax
  add    $0x1,%edx
  mov    %edx,(%rax)
  mov    0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rcx
  mov    -0x30(%rbp),%rax
  add    %rcx,%rax
  add    $0x2,%edx
  mov    %edx,(%rax)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  mov    0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    D72(%rip),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    0x10(%rbp),%rax
  add    %rcx,%rax
  add    $0x2,%edx
  mov    %edx,(%rax)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x3(%rax),%edx
  mov    0x18(%rbp),%rax
  mov    %edx,(%rax)
  mov    $0x0,%eax
  leave
  ret
```

assistant: ```c
int intadd_(int *kk, int *i1, int *i2, int *i3, int *list, int *lptr, int *lend, int *lnew) {
  static int k, n1, n2, n3, lp;
  --lend;
  --lptr;
  --list;
  k = *kk;
  n1 = *i1;
  n2 = *i2;
  n3 = *i3;
  lp = lstptr_(&lend[n1], &n2, &list[1], &lptr[1]);
  insert_(&k, &lp, &list[1], &lptr[1], lnew);
  lp = lstptr_(&lend[n2], &n3, &list[1], &lptr[1]);
  insert_(&k, &lp, &list[1], &lptr[1], lnew);
  lp = lstptr_(&lend[n3], &n1, &list[1], &lptr[1]);
  insert_(&k, &lp, &list[1], &lptr[1], lnew);
  list[*lnew] = n1;
  list[*lnew + 1] = n2;
  list[*lnew + 2] = n3;
  lptr[*lnew] = *lnew + 1;
  lptr[*lnew + 1] = *lnew + 2;
  lptr[*lnew + 2] = *lnew;
  lend[k] = *lnew + 2;
  *lnew += 3;
  return 0;
}
```