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

```asm
<check_response>:
  endbr64
  push   %r13
  mov    %rcx,%r13
  push   %r12
  mov    %rsi,%r12
  lea    D126(%rip),%rsi
  push   %rbp
  mov    %rdi,%rbp
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D113(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D6(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L52
  mov    %r12,%rsi
  lea    D83(%rip),%rdi
L81:
  pop    %rbp
  xor    %eax,%eax
  pop    %r12
  pop    %r13
  jmp    1080 <printf@plt>
  nopw   0x0(%rax,%rax,1)
L52:
  lea    D72(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D19(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D143(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D138(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D11(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D81(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D104(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D140(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D160(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D17(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D130(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D42(%rip),%rdi
  test   %rax,%rax
  jne    L81
  lea    D40(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  mov    %r12,%rsi
  lea    D32(%rip),%rdi
  test   %rax,%rax
  jne    L81
  mov    %r12,%rdx
  mov    %rbp,%rsi
  lea    D153(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r13,%rdx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1070 <send_mail@plt>
```

tool_calls: name: read_data
arguments: data_tag: D126
type_guessed: string
name: read_data
arguments: data_tag: D113
type_guessed: string
name: read_data
arguments: data_tag: D6
type_guessed: string
name: read_data
arguments: data_tag: D83
type_guessed: string
name: read_data
arguments: data_tag: D72
type_guessed: string
name: read_data
arguments: data_tag: D19
type_guessed: string
name: read_data
arguments: data_tag: D143
type_guessed: string
name: read_data
arguments: data_tag: D138
type_guessed: string
name: read_data
arguments: data_tag: D11
type_guessed: string
name: read_data
arguments: data_tag: D81
type_guessed: string
name: read_data
arguments: data_tag: D104
type_guessed: string
name: read_data
arguments: data_tag: D140
type_guessed: string
name: read_data
arguments: data_tag: D160
type_guessed: string
name: read_data
arguments: data_tag: D17
type_guessed: string
name: read_data
arguments: data_tag: D130
type_guessed: string
name: read_data
arguments: data_tag: D42
type_guessed: string
name: read_data
arguments: data_tag: D40
type_guessed: string
name: read_data
arguments: data_tag: D32
type_guessed: string
name: read_data
arguments: data_tag: D153
type_guessed: string

tool: D126: good

tool: D113: Update of %s succeeded


tool: D6: nochg

tool: D83: Host %s not changed


tool: D72: notfqdn

tool: D19: Host %s is not a Fully-Qualified Domain Name


tool: D143: nohost

tool: D138: Host %s does not exist


tool: D11: !yours

tool: D81: Host %s does not belong to you


tool: D104: abuse

tool: D140: Host %s blocked due to abuse


tool: D160: numhost

tool: D17: Too many or too few hosts found


tool: D130: dnserr

tool: D42: DNS error encountered


tool: D40: Authorization Required

tool: D32: Invalid user credentials supplied


tool: D153: Unknown error: Got response %s on host %s


assistant: ```c
void check_response(char *response, char *host_id, char *mailresp, char *mailreq) {
  if (strstr(response, "good"))
    printf("Update of %s succeeded\n", host_id);
  else if (strstr(response, "nochg"))
    printf("Host %s not changed\n", host_id);
  else if (strstr(response, "notfqdn"))
    printf("Host %s is not a Fully-Qualified Domain Name\n", host_id);
  else if (strstr(response, "nohost"))
    printf("Host %s does not exist\n", host_id);
  else if (strstr(response, "!yours"))
    printf("Host %s does not belong to you\n", host_id);
  else if (strstr(response, "abuse"))
    printf("Host %s blocked due to abuse\n", host_id);
  else if (strstr(response, "numhost"))
    printf("Too many or too few hosts found\n", host_id);
  else if (strstr(response, "dnserr"))
    printf("DNS error encountered\n", host_id);
  else if (strstr(response, "Authorization Required"))
    printf("Invalid user credentials supplied\n", host_id);
  else {
    printf("Unknown error: Got response %s on host %s\n", response, host_id);
    send_mail(response, host_id, mailreq);
  }
}
```