user: 请将以下的汇编代码转换成C语言代码:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  movsd  D310(%rip),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  D342(%rip),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D122(%rip),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D60(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x38(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x30(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x28(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x58(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x60(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  lea    D294(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x10(%rbp),%rax
  movq   %rax,%xmm0
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  lea    D361(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  lea    D163(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x10(%rbp),%rax
  movq   %rax,%xmm0
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  lea    D361(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x50(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x60(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  lea    D125(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  lea    D217(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x10(%rbp),%rax
  movq   %rax,%xmm0
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  lea    D361(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  movsd  -0x60(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x48(%rbp),%xmm1
  movsd  D304(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D278(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x60(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  lea    D208(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x10(%rbp),%rax
  movq   %rax,%xmm0
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  lea    D361(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D310
type: f64
name: unpack_data
arguments: data_label: D342
type: f64
name: unpack_data
arguments: data_label: D122
type: f64
name: unpack_data
arguments: data_label: D60
type: f64
name: unpack_data
arguments: data_label: D304
type: f64
name: unpack_data
arguments: data_label: D278
type: byte[8]
name: unpack_data
arguments: data_label: D75
type: string
name: unpack_data
arguments: data_label: D294
type: string
name: unpack_data
arguments: data_label: D134
type: string
name: unpack_data
arguments: data_label: D361
type: string
name: unpack_data
arguments: data_label: D368
type: string
name: unpack_data
arguments: data_label: D117
type: string
name: unpack_data
arguments: data_label: D163
type: string
name: unpack_data
arguments: data_label: D125
type: string
name: unpack_data
arguments: data_label: D217
type: string
name: unpack_data
arguments: data_label: D208
type: string
name: unpack_data
arguments: data_label: D18
type: string

tool: D310: 0.71428571

tool: D342: 0.33333333

tool: D122: 0.714251

tool: D60: 98765.9

tool: D304: 100000

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

tool: D75: Valor a 8 de x+y: %0.7f


tool: D294: Aritmetica maquina de x+y: %0.5f


tool: D134: Error Absoluto: %0.7f


tool: D361: Error Relativo: %0.7f


tool: D368: -------------

tool: D117: Valor a 8 de x*y: %0.7f


tool: D163: Aritmetica maquina de x*y: %0.5f


tool: D125: Valor a 8 de x-u: %0.7f


tool: D217: Aritmetica maquina de x-u: %0.5f


tool: D208: Valor a 8 de (x-u)/v: %0.7f


tool: D18: Aritmetica maquina de (x-u)*v: %0.5f


assistant: ```c
main() {
  double x1 = 0.71428571;
  double y1 = 0.33333333;
  double u1 = 0.71425100;
  double v1 = 98765.900;
  double x2, y2, u2, v2;
  double valorocho, aritmaq;
  double ErrA, ErrR;
  x2 = truncf(x2 * 1e5) * 1e-5;
  y2 = truncf(y2 * 1e5) * 1e-5;
  u2 = truncf(u2 * 1e5) * 1e-5;
  v2 = truncf(v2 * 1e5) * 1e-5;
  aritmaq = truncf((x1 + y1) * 1e5) * 1e-5;
  valorocho = x1 + y1;
  ErrA = (valorocho - aritmaq);
  ErrR = ErrA / valorocho;
  printf("Valor a 8 de x+y: %0.7f\n", valorocho);
  printf("Aritmetica maquina de x+y: %0.5f\n", aritmaq);
  printf("Error Absoluto: %0.7f\n", ErrA);
  printf("Error Relativo: %0.7f\n", ErrR);
  printf("-------------\n");
  printf("\n");
  printf("\n");
  aritmaq = truncf((x1 * y1) * 1e5) * 1e-5;
  valorocho = x1 * y1;
  ErrA = (valorocho - aritmaq);
  ErrR = ErrA / valorocho;
  printf("Valor a 8 de x*y: %0.7f\n", valorocho);
  printf("Aritmetica maquina de x*y: %0.5f\n", aritmaq);
  printf("Error Absoluto: %0.7f\n", ErrA);
  printf("Error Relativo: %0.7f\n", ErrR);
  printf("-------------\n");
  printf("\n");
  printf("\n");
  aritmaq = truncf((x1 - u1) * 1e5) * 1e-5;
  valorocho = x1 - u1;
  ErrA = (valorocho - aritmaq);
  ErrR = ErrA / valorocho;
  printf("Valor a 8 de x-u: %0.7f\n", valorocho);
  printf("Aritmetica maquina de x-u: %0.5f\n", aritmaq);
  printf("Error Absoluto: %0.7f\n", ErrA);
  printf("Error Relativo: %0.7f\n", ErrR);
  printf("-------------\n");
  printf("\n");
  printf("\n");
  aritmaq = truncf(((x1 - u1) * v1) * 1e5) * 1e-5;
  valorocho = (x1 - u1) * v1;
  ErrA = (valorocho - aritmaq);
  ErrR = ErrA / valorocho;
  printf("Valor a 8 de (x-u)/v: %0.7f\n", valorocho);
  printf("Aritmetica maquina de (x-u)*v: %0.5f\n", aritmaq);
  printf("Error Absoluto: %0.7f\n", ErrA);
  printf("Error Relativo: %0.7f\n", ErrR);
  printf("-------------\n");
  printf("\n");
  printf("\n");
}
```