user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x9,%ecx
  mov    $0x9,%edx
  mov    $0x9,%esi
  movsd  D19(%rip),%xmm0
  lea    D156(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0x7,%ecx
  mov    $0x7,%edx
  mov    $0x7,%esi
  movsd  D3(%rip),%xmm0
  lea    D26(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0xa,%r8d
  mov    $0xa,%ecx
  mov    $0xa,%edx
  mov    $0xa,%esi
  movsd  D16(%rip),%xmm0
  lea    D60(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0xb,%esi
  movsd  D119(%rip),%xmm0
  lea    D144(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  D80(%rip),%xmm0
  lea    D100(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  D96(%rip),%xmm0
  movapd %xmm0,%xmm2
  movsd  D126(%rip),%xmm1
  mov    $0x2,%esi
  lea    D81(%rip),%rdi
  mov    $0x3,%eax
  call   <printf@plt>
  movsd  D66(%rip),%xmm0
  movapd %xmm0,%xmm3
  movapd %xmm0,%xmm2
  movsd  D102(%rip),%xmm1
  lea    D22(%rip),%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  add    $0x8,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: label: D19
data_type: byte[8]
name: retrieve_data
arguments: label: D156
data_type: string
name: retrieve_data
arguments: label: D3
data_type: byte[8]
name: retrieve_data
arguments: label: D26
data_type: string
name: retrieve_data
arguments: label: D16
data_type: byte[8]
name: retrieve_data
arguments: label: D60
data_type: string
name: retrieve_data
arguments: label: D119
data_type: byte[8]
name: retrieve_data
arguments: label: D144
data_type: string
name: retrieve_data
arguments: label: D80
data_type: byte[8]
name: retrieve_data
arguments: label: D100
data_type: string
name: retrieve_data
arguments: label: D96
data_type: f64
name: retrieve_data
arguments: label: D126
data_type: byte[8]
name: retrieve_data
arguments: label: D81
data_type: string
name: retrieve_data
arguments: label: D66
data_type: byte[8]
name: retrieve_data
arguments: label: D102
data_type: byte[8]
name: retrieve_data
arguments: label: D22
data_type: string

tool: {"D19": [0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x40]}

tool: D156: HTAB = %c, %d, %o, %x


tool: {"D3": [0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x40]}

tool: D26: BELL = %c, %d, %o, %x


tool: {"D16": [0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x40]}

tool: D60: NEW_LINE = %c, %d, %o, %x, %c


tool: {"D119": [0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x40]}

tool: D144: VTAB = %d, %d


tool: {"D80": [0x00,0x00,0x00,0x00,0x00,0x48,0x8f,0x40]}

tool: D100: limit = %d


tool: D96: 2.71828182845905

tool: {"D126": [0x00,0x00,0x00,0x80,0x0a,0xbf,0x05,0x40]}

tool: D81: exp = %f, %d, %1.14f, %1.14f


tool: {"D66": [0xf1,0x68,0xe3,0x88,0xb5,0xf8,0xe4,0x3e]}

tool: {"D102": [0x00,0x00,0x00,0x80,0xb5,0xf8,0xe4,0x3e]}

tool: D22: eps = %f, %f, %f, %e


assistant: ```c
main() {
  int limit = 1000 + 1;
  char new_line = '\n';
  int exp_int = 2.71828182845905;
  float exp_float = 2.71828182845905;
  double exp_double = 2.71828182845905;
  float eps_float = 1.0e-5;
  double eps_double = 1.0e-5;
  printf("HTAB = %c, %d, %o, %x\n", '\t', '\t', '\t', '\t');
  printf("BELL = %c, %d, %o, %x\n", '\a', '\a', '\a', '\a');
  printf("NEW_LINE = %c, %d, %o, %x, %c\n", '\n', '\n', '\n', '\n', new_line);
  printf("VTAB = %d, %d\n", '\013', '\xb');
  printf("limit = %d\n", limit);
  printf("exp = %f, %d, %1.14f, %1.14f\n", 2.71828182845905, exp_int, exp_float, exp_double);
  printf("eps = %f, %f, %f, %e\n", 1.0e-5, eps_float, eps_double, eps_double);
}
```