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

```asm
<irc_message_split_privmsg_notice>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x260,%rsp
  mov    %rdi,-0x238(%rbp)
  mov    %rsi,-0x240(%rbp)
  mov    %rdx,-0x248(%rbp)
  mov    %rcx,-0x250(%rbp)
  mov    %r8,-0x258(%rbp)
  mov    %r9,-0x260(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movb   $0x0,-0x210(%rbp)
  movb   $0x0,-0x212(%rbp)
  mov    -0x260(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0x228(%rbp)
  mov    -0x260(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L33
  mov    -0x228(%rbp),%eax
  cltq
  lea    -0x1(%rax),%rdx
  mov    -0x260(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L33
  mov    -0x260(%rbp),%rax
  mov    $0x20,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  mov    %rax,-0x220(%rbp)
  cmpq   $0x0,-0x220(%rbp)
  je     L33
  addq   $0x1,-0x220(%rbp)
  mov    -0x220(%rbp),%rax
  movzbl (%rax),%eax
  mov    %al,-0x229(%rbp)
  mov    -0x220(%rbp),%rax
  movb   $0x0,(%rax)
  mov    -0x260(%rbp),%rdx
  lea    -0x210(%rbp),%rax
  mov    %rdx,%rcx
  lea    D2(%rip),%rdx
  mov    $0x200,%esi
  mov    %rax,%rdi
  call   <snprintf@plt>
  mov    -0x220(%rbp),%rax
  movzbl -0x229(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x228(%rbp),%eax
  cltq
  lea    -0x1(%rax),%rdx
  mov    -0x260(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  mov    -0x220(%rbp),%rax
  mov    %rax,-0x260(%rbp)
  movb   $0x1,-0x212(%rbp)
  movb   $0x0,-0x211(%rbp)
L33:
  movzbl -0x210(%rbp),%eax
  test   %al,%al
  jne    L18
  lea    -0x210(%rbp),%rax
  lea    D12(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
L18:
  lea    -0x210(%rbp),%r9
  mov    -0x258(%rbp),%r8
  mov    -0x250(%rbp),%rcx
  mov    -0x248(%rbp),%rdx
  mov    -0x240(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    0x10(%rbp),%edi
  push   %rdi
  push   $0x20
  lea    -0x212(%rbp),%rdi
  push   %rdi
  push   -0x260(%rbp)
  mov    %rax,%rdi
  call   <irc_message_split_string@plt>
  add    $0x20,%rsp
  mov    %eax,-0x224(%rbp)
  mov    -0x224(%rbp),%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L14
  call   <__stack_chk_fail@plt>
L14:
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D2
type: string
name: read_data
arguments: label: D12
type: string

tool: D2: :%s

tool: D12: :

assistant: ```c
int irc_message_split_privmsg_notice(struct t_hashtable *hashtable, char *tags, char *host, char *command, char *target, char *arguments, int max_length_host) {
  char prefix[512], suffix[2], *pos, saved_char;
  int length, rc;
  prefix[0] = '\0';
  suffix[0] = '\0';
  length = strlen(arguments);
  if ((arguments[0] == '\01') && (arguments[length - 1] == '\01')) {
    pos = strchr(arguments, ' ');
    if (pos) {
      pos++;
      saved_char = pos[0];
      pos[0] = '\0';
      snprintf(prefix, sizeof(prefix), ":%s", arguments);
      pos[0] = saved_char;
      arguments[length - 1] = '\0';
      arguments = pos;
      suffix[0] = '\01';
      suffix[1] = '\0';
    }
  }
  if (!prefix[0])
    strcpy(prefix, ":");
  rc = irc_message_split_string(hashtable, tags, host, command, target, prefix, arguments, suffix, ' ', max_length_host);
  return rc;
}
```