user: 下面的汇编指令对应的C源代码是什么：

```asm
<test_sscanf_OOB_write>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x220,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0x3837363534333231,%rax
  movabs $0x3635343332313039,%rdx
  mov    %rax,-0x190(%rbp)
  mov    %rdx,-0x188(%rbp)
  movabs $0x3433323130393837,%rsi
  movabs $0x3231303938373635,%rdi
  mov    %rsi,-0x180(%rbp)
  mov    %rdi,-0x178(%rbp)
  movabs $0x3039383736353433,%r8
  movabs $0x3837363534333231,%r9
  mov    %r8,-0x170(%rbp)
  mov    %r9,-0x168(%rbp)
  movabs $0x61616161612039,%r10
  mov    $0x0,%r11d
  mov    %r10,-0x160(%rbp)
  mov    %r11,-0x158(%rbp)
  movq   $0x0,-0x150(%rbp)
  movq   $0x0,-0x148(%rbp)
  movq   $0x0,-0x140(%rbp)
  movq   $0x0,-0x138(%rbp)
  movq   $0x0,-0x130(%rbp)
  movq   $0x0,-0x128(%rbp)
  movq   $0x0,-0x120(%rbp)
  movq   $0x0,-0x118(%rbp)
  mov    %rax,-0x110(%rbp)
  mov    %rdx,-0x108(%rbp)
  mov    %rsi,-0x100(%rbp)
  mov    %rdi,-0xf8(%rbp)
  mov    %r8,-0xf0(%rbp)
  mov    %r9,-0xe8(%rbp)
  movabs $0x6161616161203039,%r10
  mov    $0x0,%r11d
  mov    %r10,-0xe0(%rbp)
  mov    %r11,-0xd8(%rbp)
  movq   $0x0,-0xd0(%rbp)
  movq   $0x0,-0xc8(%rbp)
  movq   $0x0,-0xc0(%rbp)
  movq   $0x0,-0xb8(%rbp)
  movq   $0x0,-0xb0(%rbp)
  movq   $0x0,-0xa8(%rbp)
  movq   $0x0,-0xa0(%rbp)
  movq   $0x0,-0x98(%rbp)
  mov    %rax,-0x90(%rbp)
  mov    %rdx,-0x88(%rbp)
  mov    %rsi,-0x80(%rbp)
  mov    %rdi,-0x78(%rbp)
  mov    %r8,-0x70(%rbp)
  mov    %r9,-0x68(%rbp)
  movabs $0x6161616120313039,%rax
  mov    $0x61,%edx
  mov    %rax,-0x60(%rbp)
  mov    %rdx,-0x58(%rbp)
  movq   $0x0,-0x50(%rbp)
  movq   $0x0,-0x48(%rbp)
  movq   $0x0,-0x40(%rbp)
  movq   $0x0,-0x38(%rbp)
  movq   $0x0,-0x30(%rbp)
  movq   $0x0,-0x28(%rbp)
  movq   $0x0,-0x20(%rbp)
  movq   $0x0,-0x18(%rbp)
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x190(%rbp),%rax
  lea    D83(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x110(%rbp),%rax
  lea    D83(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D83(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D154(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x190(%rbp),%rax
  lea    D159(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x110(%rbp),%rax
  lea    D159(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rcx
  lea    -0x210(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D159(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  mov    %eax,-0x214(%rbp)
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D135(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%ecx
  lea    -0x1d0(%rbp),%rax
  mov    %rax,%rdx
  mov    %ecx,%esi
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L7
  call   <__stack_chk_fail@plt>
L7:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D83
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D135
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D186
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D154
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D159
type_guessed: string

tool: D83: %50s %50s

tool: D135: len:%d, param:[%s]


tool: D186: len:%d, value:[%s]


tool: D154: %51s %51s

tool: D159: %49s %49s

assistant: ```c
void test_sscanf_OOB_write() {
  char param[50], value[50];
  char length49[128] = "1234567890123456789012345678901234567890123456789 aaaaa";
  char length50[128] = "12345678901234567890123456789012345678901234567890 aaaaa";
  char length51[128] = "123456789012345678901234567890123456789012345678901 aaaaa";
  int tokens;
  tokens = sscanf(length49, "%50s %50s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  tokens = sscanf(length50, "%50s %50s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  tokens = sscanf(length51, "%50s %50s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  printf("\n");
  tokens = sscanf(length51, "%51s %51s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  printf("\n");
  tokens = sscanf(length49, "%49s %49s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  tokens = sscanf(length50, "%49s %49s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
  tokens = sscanf(length51, "%49s %49s", param, value);
  printf("len:%d, param:[%s]\n", strlen(param), param);
  printf("len:%d, value:[%s]\n", strlen(value), value);
}
```