user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %r14
  lea    D95(%rip),%r14
  push   %r13
  lea    D53(%rip),%r13
  mov    %r14,%rsi
  push   %r12
  mov    %r13,%rdx
  lea    D220(%rip),%r12
  push   %rbp
  lea    D240(%rip),%rbp
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <test_str@plt>
  lea    D119(%rip),%rdi
  call   <printf@plt>
  mov    %r13,%rdx
  mov    %r14,%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D242(%rip),%rdi
  call   <printf@plt>
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D243(%rip),%rdi
  call   <printf@plt>
  mov    %r13,%rdx
  lea    D248(%rip),%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D192(%rip),%r13
  lea    D16(%rip),%rdi
  call   <printf@plt>
  mov    %r12,%rdx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D17(%rip),%rdi
  call   <printf@plt>
  lea    D27(%rip),%rdx
  lea    D234(%rip),%rsi
  lea    D54(%rip),%rdi
  call   <test_str@plt>
  lea    D218(%rip),%rdi
  call   <printf@plt>
  mov    %r12,%rdx
  lea    D13(%rip),%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D114(%rip),%rdi
  call   <printf@plt>
  mov    %r13,%rsi
  lea    D127(%rip),%rdx
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D193(%rip),%rdi
  call   <printf@plt>
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rsi
  lea    D158(%rip),%rdx
  mov    %rbp,%rdi
  call   <test_str@plt>
  lea    D149(%rip),%rdi
  call   <printf@plt>
  lea    D30(%rip),%rdx
  lea    D81(%rip),%rsi
  lea    D39(%rip),%rdi
  call   <test_str@plt>
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
```

tool_calls: name: read_data
arguments: data_label: D95
type: string
name: read_data
arguments: data_label: D53
type: string
name: read_data
arguments: data_label: D220
type: string
name: read_data
arguments: data_label: D240
type: string
name: read_data
arguments: data_label: D119
type: string
name: read_data
arguments: data_label: D242
type: string
name: read_data
arguments: data_label: D243
type: string
name: read_data
arguments: data_label: D248
type: string
name: read_data
arguments: data_label: D192
type: string
name: read_data
arguments: data_label: D16
type: string
name: read_data
arguments: data_label: D17
type: string
name: read_data
arguments: data_label: D27
type: string
name: read_data
arguments: data_label: D234
type: string
name: read_data
arguments: data_label: D54
type: string
name: read_data
arguments: data_label: D218
type: string
name: read_data
arguments: data_label: D13
type: string
name: read_data
arguments: data_label: D114
type: string
name: read_data
arguments: data_label: D127
type: string
name: read_data
arguments: data_label: D193
type: string
name: read_data
arguments: data_label: D146
type: string
name: read_data
arguments: data_label: D158
type: string
name: read_data
arguments: data_label: D149
type: string
name: read_data
arguments: data_label: D30
type: string
name: read_data
arguments: data_label: D81
type: string
name: read_data
arguments: data_label: D39
type: string

tool: D95: el

tool: D53: qq

tool: D220: q

tool: D240: Hello!

tool: D119: 
2 to 2


tool: D242: 
2 to 1


tool: D243: 
1 to 2


tool: D248: e

tool: D192: l

tool: D16: 
More than 1


tool: D17: 
More than 1 (long)


tool: D27: Hi

tool: D234: Hello

tool: D54: Hello! Hello!

tool: D218: 
None


tool: D13: f

tool: D114: 
Replace with Nothing


tool: 

tool: D193: 
Full Word


tool: D146: 
Full Word Long


tool: D158: Another Word!

tool: D149: 
Other Characters in String


tool: D30: array

tool: D81: string

tool: D39: This string is a Test!

assistant: ```c
int main(void) {
  test_str("Hello!", "el", "qq");
  printf("\n2 to 2\n");
  test_str("Hello!", "el", "qq");
  printf("\n2 to 1\n");
  test_str("Hello!", "el", "q");
  printf("\n1 to 2\n");
  test_str("Hello!", "e", "qq");
  printf("\nMore than 1\n");
  test_str("Hello!", "l", "q");
  printf("\nMore than 1 (long)\n");
  test_str("Hello! Hello!", "Hello", "Hi");
  printf("\nNone\n");
  test_str("Hello!", "f", "q");
  printf("\nReplace with Nothing\n");
  test_str("Hello!", "l", "");
  printf("\nFull Word\n");
  test_str("Hello!", "Hello!", "q");
  printf("\nFull Word Long\n");
  test_str("Hello!", "Hello!", "Another Word!");
  printf("\nOther Characters in String\n");
  test_str("This string is a Test!", "string", "array");
}
```