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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x90,%rsp
  movsd  D34(%rip),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  D17(%rip),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  D339(%rip),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D462(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  D408(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsd  -0x88(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x60(%rbp),%rax
  movq   %rax,%xmm0
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  -0x80(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  movq   %rax,%xmm0
  lea    D448(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  -0x78(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x50(%rbp),%rax
  movq   %rax,%xmm0
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  -0x68(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x48(%rbp),%rax
  movq   %rax,%xmm0
  lea    D123(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movsd  -0x70(%rbp),%xmm0
  movsd  D294(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x40(%rbp),%rax
  movq   %rax,%xmm0
  lea    D451(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D376(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D557(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsd  -0x60(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  D528(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x88(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movsd  D528(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x38(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x88(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  D528(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x88(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D252(%rip),%rax
  mov    %rax,%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  lea    D270(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsd  -0x60(%rbp),%xmm0
  subsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x80(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x80(%rbp),%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  lea    D162(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x80(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D624(%rip),%rax
  mov    %rax,%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  movsd  -0x60(%rbp),%xmm0
  divsd  -0x58(%rbp),%xmm0
  movsd  D528(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D528(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  divsd  -0x80(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x88(%rbp),%xmm0
  divsd  -0x80(%rbp),%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x88(%rbp),%xmm0
  divsd  -0x80(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D628(%rip),%rax
  mov    %rax,%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  movsd  -0x60(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x48(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  D528(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D528(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  subsd  -0x78(%rbp),%xmm1
  divsd  -0x68(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x78(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x78(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D601(%rip),%rax
  mov    %rax,%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  movsd  -0x50(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D547(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x78(%rbp),%xmm1
  addsd  -0x70(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x78(%rbp),%xmm0
  addsd  -0x70(%rbp),%xmm0
  movq   D120(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x8(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x78(%rbp),%xmm0
  addsd  -0x70(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm2,%xmm3
  movapd %xmm0,%xmm2
  movq   %rax,%xmm0
  lea    D505(%rip),%rax
  mov    %rax,%rdi
  mov    $0x4,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D34
type: f64
name: parse_data
arguments: data_label: D17
type: f64
name: parse_data
arguments: data_label: D339
type: f64
name: parse_data
arguments: data_label: D462
type: f64
name: parse_data
arguments: data_label: D408
type: f64
name: parse_data
arguments: data_label: D42
type: string
name: parse_data
arguments: data_label: D5
type: string
name: parse_data
arguments: data_label: D294
type: f64
name: parse_data
arguments: data_label: D547
type: byte[8]
name: parse_data
arguments: data_label: D67
type: string
name: parse_data
arguments: data_label: D448
type: string
name: parse_data
arguments: data_label: D44
type: string
name: parse_data
arguments: data_label: D123
type: string
name: parse_data
arguments: data_label: D451
type: string
name: parse_data
arguments: data_label: D376
type: string
name: parse_data
arguments: data_label: D557
type: string
name: parse_data
arguments: data_label: D528
type: byte[8]
name: parse_data
arguments: data_label: D120
type: qword
name: parse_data
arguments: data_label: D252
type: string
name: parse_data
arguments: data_label: D270
type: string
name: parse_data
arguments: data_label: D162
type: string
name: parse_data
arguments: data_label: D624
type: string
name: parse_data
arguments: data_label: D628
type: string
name: parse_data
arguments: data_label: D601
type: string
name: parse_data
arguments: data_label: D505
type: string

tool: D34: 0.71428571

tool: D17: 0.33333333

tool: D339: 0.714251

tool: D462: 98765.9

tool: D408: 1.111e-05

tool: D42: Ejercicio de Notas Aritmetica de Maquina

tool: D5: Se imprimen los valores a 5

tool: D294: 100000

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

tool: D67: Valor x a 5: %e


tool: D448: Valor y a 5: %e


tool: D44: Valor u a 5: %e


tool: D123: Valor w a 5: %e


tool: D451: Valor v a 5: %e



tool: D376: Ejercicio realizado en clase

tool: D557: Operacion 	 Valor a 8 	 Aritmetica de maquina 	 	 ErrAbsoluto 		 ErrRelativo 

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

tool: D120: 9223372036854775807

tool: D252: x+y 	 	 %f 	 	 %f 	 	 %e 	 	 %e 


tool: D270: 
Ejercicio de operaciones pares

tool: D162: Operacion 	 Valor a 8 		 Aritmetica de maquina 	 ErrAbsoluto 	 	 ErrRelativo 

tool: D624: x-y 	 	 %1.8f 	 	 %f 	 	 %e 	 	 %e 


tool: D628: x/y 	 	 %1.8f 	 	 %f 	 	 %e 	 	 %e 


tool: D601: (x-u)/w 	 %1.8f 		 %f 	 	 %e 	 	 %e 


tool: D505: u+v 		 %1.8f 	 %f 		 %e 		 %e 


assistant: ```c
main() {
  double x_8 = 0.71428571;
  double y_8 = 0.33333333;
  double x_5;
  double y_5;
  double u_5;
  double w_5;
  double v_5;
  double u_8 = 0.714251;
  double v_8 = 98765.9;
  double w_8 = 0.00001111;
  double suma, resta, absoluto, div, div2, suma2, relativo;
  printf("Ejercicio de Notas Aritmetica de Maquina\n");
  printf("Se imprimen los valores a 5\n");
  x_5 = truncf(x_8 * 1e5) * 1e-5;
  printf("Valor x a 5: %e\n", x_5);
  y_5 = truncf(y_8 * 1e5) * 1e-5;
  printf("Valor y a 5: %e\n", y_5);
  u_5 = truncf(u_8 * 1e5) * 1e-5;
  printf("Valor u a 5: %e\n", u_5);
  w_5 = truncf(w_8 * 1e5) * 1e-5;
  printf("Valor w a 5: %e\n", w_5);
  v_5 = truncf(v_8 / 100000 * 1e5) * 1e-5;
  printf("Valor v a 5: %e\n\n", v_5);
  printf("Ejercicio realizado en clase\n");
  printf("Operacion \t Valor a 8 \t Aritmetica de maquina \t \t ErrAbsoluto \t\t ErrRelativo \n");
  suma = (x_5 + y_5) / 10;
  suma = truncf(suma * 1e5) * 1e-5;
  absoluto = fabs(suma - (x_8 + y_8) / 10);
  relativo = absoluto / (fabs((x_8 + y_8)) / 10);
  printf("x+y \t \t %f \t \t %f \t \t %e \t \t %e \n", x_8 + y_8, suma, absoluto, relativo);
  printf("\nEjercicio de operaciones pares\n");
  resta = (x_5 - y_5);
  resta = truncf(resta * 1e5) * 1e-5;
  absoluto = fabs(resta - (x_8 - y_8));
  relativo = absoluto / fabs(x_8 - y_8);
  printf("Operacion \t Valor a 8 \t\t Aritmetica de maquina \t ErrAbsoluto \t \t ErrRelativo \n");
  printf("x-y \t \t %1.8f \t \t %f \t \t %e \t \t %e \n", x_8 - y_8, resta, absoluto, relativo);
  div = (x_5 / y_5) / 10;
  div = truncf(div * 1e5) * 1e-5;
  absoluto = fabs(div * 10 - (x_8 / y_8));
  relativo = absoluto / (fabs(x_8 / y_8));
  printf("x/y \t \t %1.8f \t \t %f \t \t %e \t \t %e \n", x_8 / y_8, div, absoluto, relativo);
  div2 = x_5 - u_5;
  div2 = truncf(div2 * 1e5) * 1e-5;
  div2 = truncf((div2 / w_5) * 1e5) * 1e-5;
  div2 = div2 / 10;
  absoluto = fabs(div2 * 10 - (x_8 - u_8) / w_8);
  relativo = absoluto / (fabs((x_8 - u_8) / w_8));
  printf("(x-u)/w \t %1.8f \t\t %f \t \t %e \t \t %e \n", ((x_8 - u_8) / w_8), div2, absoluto, relativo);
  suma2 = (u_5 / 100000) + v_5;
  suma2 = truncf(suma2 * 1e5) * 1e-5;
  absoluto = fabs(suma2 * 100000 - (u_8 + v_8));
  relativo = absoluto / (fabs(u_8 + v_8));
  printf("u+v \t\t %1.8f \t %f \t\t %e \t\t %e \n", u_8 + v_8, suma2 * 100000, absoluto, relativo);
}
```