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

```asm
<main>:
  endbr64
  push   %r12
  lea    D114(%rip),%rdi
  push   %rbp
  push   %rbx
  mov    $0x1,%ebx
  sub    $0x20,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    0xe(%rsp),%rbp
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <gets@plt>
  movabs $0x6d7569676c6542,%rax
  cmp    %rax,0xe(%rsp)
  jne    L230
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D138(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
L230:
  cmpl   $0x6e696843,0xe(%rsp)
  je     L223
L48:
  movabs $0x6b72616d6e6544,%rax
  cmp    %rax,0xe(%rsp)
  jne    L5
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D23(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
L5:
  movabs $0x646e616c676e45,%rax
  cmp    %rax,0xe(%rsp)
  jne    L66
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D192(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
L66:
  cmpl   $0x6e617246,0xe(%rsp)
  je     L198
L154:
  cmpl   $0x65657247,0xe(%rsp)
  je     L74
L2:
  movabs $0x646e616c657249,%rax
  cmp    %rax,0xe(%rsp)
  jne    L35
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D55(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
L35:
  movabs $0x646e616c746f6353,%rax
  cmp    %rax,0xe(%rsp)
  je     L234
L186:
  cmpl   $0x656c6157,0xe(%rsp)
  je     L236
L152:
  sub    $0x1,%ebx
  jne    L197
  lea    D68(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L197:
  xor    %eax,%eax
  call   <getchar@plt>
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L182
  add    $0x20,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L234:
  cmpb   $0x0,0x16(%rsp)
  jne    L186
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  mov    %r12,%rdi
  lea    D76(%rip),%rdx
  call   <printf@plt>
  lea    D161(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L197
L138:
  lea    D25(%rip),%rdx
  mov    %rbp,%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L197
L198:
  cmpw   $0x6563,0x12(%rsp)
  jne    L154
  cmpb   $0x0,0x14(%rsp)
  jne    L154
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D174(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
  jmp    L154
L223:
  cmpw   $0x61,0x12(%rsp)
  jne    L48
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D58(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
  jmp    L48
L74:
  cmpw   $0x6563,0x12(%rsp)
  jne    L2
  cmpb   $0x0,0x14(%rsp)
  jne    L2
  lea    D52(%rip),%r12
  mov    %rbp,%rsi
  xor    %eax,%eax
  xor    %ebx,%ebx
  lea    D36(%rip),%rdx
  mov    %r12,%rdi
  call   <printf@plt>
  jmp    L2
L236:
  cmpw   $0x73,0x12(%rsp)
  lea    D52(%rip),%r12
  jne    L152
  jmp    L138
L182:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D114
type_guessed: string
name: extract_symbolic_data
arguments: label: D52
type_guessed: string
name: extract_symbolic_data
arguments: label: D138
type_guessed: string
name: extract_symbolic_data
arguments: label: D23
type_guessed: string
name: extract_symbolic_data
arguments: label: D192
type_guessed: string
name: extract_symbolic_data
arguments: label: D55
type_guessed: string
name: extract_symbolic_data
arguments: label: D68
type_guessed: string
name: extract_symbolic_data
arguments: label: D76
type_guessed: string
name: extract_symbolic_data
arguments: label: D161
type_guessed: string
name: extract_symbolic_data
arguments: label: D25
type_guessed: string
name: extract_symbolic_data
arguments: label: D174
type_guessed: string
name: extract_symbolic_data
arguments: label: D58
type_guessed: string
name: extract_symbolic_data
arguments: label: D36
type_guessed: string

tool: D114: Please enter the name of a country:

tool: D52: The Capital of %s is %s!

tool: D138: Brussels

tool: D23: Copenhagan

tool: D192: London

tool: D55: Dublin

tool: D68: Sorry, that Country is not in our registry

tool: D76: Edinbrugh

tool: D161: Wales

tool: D25: Cardiff

tool: D174: Paris

tool: D58: Beijing

tool: D36: Athens

assistant: ```c
main() {
  int i;
  int found = 1;
  int same = 1;
  char country[10];
  char *countries[10] = {"Austrailia", "Belgium", "China", "Denmark", "England", "France", "Greece", "Ireland", "Scotland", "Wales"};
  char *capitals[10] = {"Canberra", "Brussels", "Beijing", "Copenhagan", "London", "Paris", "Athens", "Dublin", "Edinbrugh", "Cardiff"};
  printf("Please enter the name of a country:\n");
  gets(country);
  for (i = 0; i < 10; i++) {
    same = strcmp(country, *(countries + i));
    if (same == 0) {
      printf("The Capital of %s is %s!", country, *(capitals + i));
      found = 0;
    }
    *countries[i]++;
    *capitals[i]++;
  }
  if (found == 1) {
    printf("Sorry, that Country is not in our registry");
  }
  getchar();
}
```