user: 请从给定的汇编指令推导出C源代码:

```asm
<send_error>:
  endbr64
  lea    -0x80(%rdi),%eax
  cmp    $0xa,%eax
  ja     L0
  lea    D74(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
  lea    D68(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  cs nopw 0x0(%rax,%rax,1)
  lea    D26(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D6(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D9(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D111(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D86(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D12(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D50(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D44(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D89(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
  xchg   %ax,%ax
  lea    D10(%rip),%rdi
  xor    %eax,%eax
  jmp    1050 <info_log@plt>
L0:
  mov    %edi,%esi
  xor    %eax,%eax
  lea    D114(%rip),%rdi
  jmp    1050 <info_log@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D68
type_infered: string
name: parse_data
arguments: data_tag: D26
type_infered: string
name: parse_data
arguments: data_tag: D6
type_infered: string
name: parse_data
arguments: data_tag: D9
type_infered: string
name: parse_data
arguments: data_tag: D111
type_infered: string
name: parse_data
arguments: data_tag: D86
type_infered: string
name: parse_data
arguments: data_tag: D12
type_infered: string
name: parse_data
arguments: data_tag: D50
type_infered: string
name: parse_data
arguments: data_tag: D44
type_infered: string
name: parse_data
arguments: data_tag: D89
type_infered: string
name: parse_data
arguments: data_tag: D10
type_infered: string
name: parse_data
arguments: data_tag: D114
type_infered: string

tool: D68: send error: EBADF (bad file descriptor)


tool: D26: send error: EAGAIN(would have blocked)


tool: D6: send error: EPIPE


tool: D9: send error: EOPNOTSUPP


tool: D111: send error: ENOTSOCK:(not a socket)


tool: D86: send error: ENOTCONN:(socket not connected


tool: D12: send error: EMSGSIZE(message size too big)


tool: D50: send error: EINVAL(Invalid arguement)


tool: D44: send error: EINTR(Interrupted by signal)


tool: D89: send error: EFAULT(invalid userspace address)


tool: D10: send error: ECONNRESET(connection reset by peer)


tool: D114: Send: (%i)unknown errror


assistant: ```c
void send_error(int err) {
  switch (err) {
  case EBADF: {
    info_log("send error: EBADF (bad file descriptor)\n");
    return;
  }
  case EAGAIN: {
    info_log("send error: EAGAIN(would have blocked)\n");
    return;
  }
  case ECONNRESET: {
    info_log("send error: ECONNRESET(connection reset by peer)\n");
    return;
  }
  case EFAULT: {
    info_log("send error: EFAULT(invalid userspace address)\n");
    return;
  }
  case EINTR: {
    info_log("send error: EINTR(Interrupted by signal)\n");
    return;
  }
  case EINVAL: {
    info_log("send error: EINVAL(Invalid arguement)\n");
    return;
  }
  case EMSGSIZE: {
    info_log("send error: EMSGSIZE(message size too big)\n");
    return;
  }
  case ENOTSOCK: {
    info_log("send error: ENOTSOCK:(not a socket)\n");
    return;
  }
  case ENOTCONN: {
    info_log("send error: ENOTCONN:(socket not connected\n");
    return;
  }
  case EOPNOTSUPP: {
    info_log("send error: EOPNOTSUPP\n");
    return;
  }
  case EPIPE: {
    info_log("send error: EPIPE\n");
    return;
  }
  default: {
    info_log("Send: (%i)unknown errror\n", err);
    return;
  }
  }
}
```