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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movl   $0x1,-0x30(%rbp)
  movl   $0x2,-0x2c(%rbp)
  movss  D67(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  D16(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movsd  D7(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D23(%rip),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x2c(%rbp),%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sdl -0x30(%rbp),%xmm2
  movq   %xmm2,%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x30(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x2c(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x20(%rbp),%eax
  mov    %eax,-0x2c(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x2c(%rbp),%xmm0
  pxor   %xmm3,%xmm3
  cvtsi2sdl -0x30(%rbp),%xmm3
  movq   %xmm3,%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd -0x24(%rbp),%xmm0
  pxor   %xmm4,%xmm4
  cvtss2sd -0x28(%rbp),%xmm4
  movq   %xmm4,%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D20(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movss  -0x28(%rbp),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x24(%rbp),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  pxor   %xmm0,%xmm0
  cvtss2sd -0x24(%rbp),%xmm0
  pxor   %xmm5,%xmm5
  cvtss2sd -0x28(%rbp),%xmm5
  movq   %xmm5,%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movsd  -0x10(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D67
type_guessed: f32
name: extract_symbolic_data
arguments: label: D16
type_guessed: f32
name: extract_symbolic_data
arguments: label: D7
type_guessed: f64
name: extract_symbolic_data
arguments: label: D23
type_guessed: f64
name: extract_symbolic_data
arguments: label: D77
type_guessed: string
name: extract_symbolic_data
arguments: label: D64
type_guessed: string
name: extract_symbolic_data
arguments: label: D20
type_guessed: string
name: extract_symbolic_data
arguments: label: D75
type_guessed: string
name: extract_symbolic_data
arguments: label: D68
type_guessed: string
name: extract_symbolic_data
arguments: label: D59
type_guessed: string

tool: D67: 0.1

tool: D16: 0.2

tool: D7: 1.1

tool: D23: 9.9

tool: D77: Before: %d, %d


tool: D64: Swapped: %d, %d


tool: D20: Before: %f, %f


tool: D75: Swapped: %f, %f


tool: D68: Before: %lf, %lf


tool: D59: Swapped: %lf, %lf


assistant: ```c
main() {
  int i1 = 1, i2 = 2;
  float f1 = 0.1, f2 = 0.2;
  double d1 = 1.1, d2 = 9.9;
  printf("Before: %d, %d\n", i1, i2);
  {
    int var_t;
    var_t = i1;
    i1 = i2;
    i2 = var_t;
  };
  printf("Swapped: %d, %d\n", i1, i2);
  printf("Before: %f, %f\n", f1, f2);
  {
    float var_t;
    var_t = f1;
    f1 = f2;
    f2 = var_t;
  };
  printf("Swapped: %f, %f\n", f1, f2);
  printf("Before: %lf, %lf\n", d1, d2);
  {
    double var_t;
    var_t = d1;
    d1 = d2;
    d2 = var_t;
  };
  printf("Swapped: %lf, %lf\n", d1, d2);
  return 0;
}
```