user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main>:
  endbr64
  sub    $0x48,%rsp
  lea    D294(%rip),%rdi
  call   <puts@plt>
  lea    D354(%rip),%rdi
  call   <puts@plt>
  movsd  D260(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm0,%xmm0
  lea    D531(%rip),%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D154(%rip),%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  movsd  D245(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm0,%xmm0
  movsd  D154(%rip),%xmm3
  lea    D545(%rip),%rdi
  cvtsi2sd %eax,%xmm0
  mov    $0x1,%eax
  mulsd  %xmm0,%xmm3
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x10(%rsp)
  call   <printf@plt>
  movsd  D125(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm4,%xmm4
  lea    D275(%rip),%rdi
  cvtsi2sd %eax,%xmm4
  mulsd  D154(%rip),%xmm4
  mov    $0x1,%eax
  movapd %xmm4,%xmm0
  movsd  %xmm4,0x38(%rsp)
  call   <printf@plt>
  movsd  D550(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm6,%xmm6
  lea    D540(%rip),%rdi
  cvtsi2sd %eax,%xmm6
  mulsd  D154(%rip),%xmm6
  mov    $0x1,%eax
  movapd %xmm6,%xmm0
  movsd  %xmm6,0x30(%rsp)
  call   <printf@plt>
  movsd  D84(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm5,%xmm5
  lea    D121(%rip),%rdi
  cvtsi2sd %eax,%xmm5
  mulsd  D154(%rip),%xmm5
  mov    $0x1,%eax
  movapd %xmm5,%xmm0
  movsd  %xmm5,0x28(%rsp)
  call   <printf@plt>
  lea    D196(%rip),%rdi
  call   <puts@plt>
  lea    D54(%rip),%rdi
  call   <puts@plt>
  movsd  0x8(%rsp),%xmm7
  addsd  0x10(%rsp),%xmm7
  movapd %xmm7,%xmm0
  divsd  D100(%rip),%xmm0
  mulsd  D181(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  movsd  D246(%rip),%xmm0
  lea    D109(%rip),%rdi
  cvtsi2sd %eax,%xmm1
  mulsd  D154(%rip),%xmm1
  mov    $0x4,%eax
  movapd %xmm1,%xmm2
  subsd  %xmm0,%xmm2
  andpd  D535(%rip),%xmm2
  movapd %xmm2,%xmm5
  divsd  %xmm0,%xmm5
  movsd  D523(%rip),%xmm0
  movapd %xmm5,%xmm3
  call   <printf@plt>
  lea    D313(%rip),%rdi
  call   <puts@plt>
  movsd  0x8(%rsp),%xmm0
  subsd  0x10(%rsp),%xmm0
  mulsd  D181(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  movsd  D299(%rip),%xmm0
  lea    D423(%rip),%rdi
  cvtsi2sd %eax,%xmm1
  mulsd  D154(%rip),%xmm1
  movapd %xmm1,%xmm2
  movsd  %xmm1,0x20(%rsp)
  subsd  %xmm0,%xmm2
  andpd  D535(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  call   <puts@plt>
  movsd  0x18(%rsp),%xmm2
  mov    D299(%rip),%rax
  lea    D454(%rip),%rdi
  movsd  0x20(%rsp),%xmm1
  movapd %xmm2,%xmm6
  movq   %rax,%xmm0
  mov    $0x4,%eax
  divsd  %xmm0,%xmm6
  movapd %xmm6,%xmm3
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm0
  divsd  0x10(%rsp),%xmm0
  divsd  D100(%rip),%xmm0
  mulsd  D181(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  movsd  D100(%rip),%xmm2
  movsd  D2(%rip),%xmm0
  cvtsi2sd %eax,%xmm1
  lea    D498(%rip),%rdi
  mov    $0x4,%eax
  mulsd  D154(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  subsd  %xmm0,%xmm2
  andpd  D535(%rip),%xmm2
  movapd %xmm2,%xmm3
  divsd  %xmm0,%xmm3
  call   <printf@plt>
  movsd  0x38(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm0
  subsd  %xmm4,%xmm0
  mulsd  D181(%rip),%xmm0
  movsd  %xmm4,0x8(%rsp)
  call   <truncf@plt>
  pxor   %xmm0,%xmm0
  movsd  0x30(%rsp),%xmm6
  cvtsi2sd %eax,%xmm0
  mulsd  D154(%rip),%xmm0
  divsd  %xmm6,%xmm0
  mulsd  D181(%rip),%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  movsd  D100(%rip),%xmm2
  movsd  D395(%rip),%xmm0
  cvtsi2sd %eax,%xmm1
  lea    D155(%rip),%rdi
  mov    $0x4,%eax
  mulsd  D154(%rip),%xmm1
  divsd  D100(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  subsd  %xmm0,%xmm2
  andpd  D535(%rip),%xmm2
  movapd %xmm2,%xmm3
  divsd  %xmm0,%xmm3
  call   <printf@plt>
  movsd  0x28(%rsp),%xmm5
  movsd  0x8(%rsp),%xmm4
  divsd  D181(%rip),%xmm4
  movsd  D181(%rip),%xmm0
  addsd  %xmm5,%xmm4
  mulsd  %xmm4,%xmm0
  call   <truncf@plt>
  pxor   %xmm1,%xmm1
  movsd  D451(%rip),%xmm0
  lea    D191(%rip),%rdi
  cvtsi2sd %eax,%xmm1
  mulsd  D154(%rip),%xmm1
  mov    $0x4,%eax
  mulsd  D181(%rip),%xmm1
  movapd %xmm1,%xmm2
  subsd  %xmm0,%xmm2
  andpd  D535(%rip),%xmm2
  movapd %xmm2,%xmm3
  divsd  %xmm0,%xmm3
  call   <printf@plt>
  xor    %eax,%eax
  add    $0x48,%rsp
  ret
```

tool_calls: name: parse_data
arguments: label: D294
type: string
name: parse_data
arguments: label: D354
type: string
name: parse_data
arguments: label: D260
type: byte[8]
name: parse_data
arguments: label: D531
type: string
name: parse_data
arguments: label: D154
type: byte[8]
name: parse_data
arguments: label: D245
type: byte[8]
name: parse_data
arguments: label: D545
type: string
name: parse_data
arguments: label: D125
type: byte[8]
name: parse_data
arguments: label: D275
type: string
name: parse_data
arguments: label: D550
type: byte[8]
name: parse_data
arguments: label: D540
type: string
name: parse_data
arguments: label: D84
type: f64
name: parse_data
arguments: label: D121
type: string
name: parse_data
arguments: label: D196
type: string
name: parse_data
arguments: label: D54
type: string
name: parse_data
arguments: label: D100
type: byte[8]
name: parse_data
arguments: label: D181
type: f64
name: parse_data
arguments: label: D246
type: byte[8]
name: parse_data
arguments: label: D109
type: string
name: parse_data
arguments: label: D535
type: qword[2]
name: parse_data
arguments: label: D523
type: byte[8]
name: parse_data
arguments: label: D313
type: string
name: parse_data
arguments: label: D299
type: byte[8]
name: parse_data
arguments: label: D423
type: string
name: parse_data
arguments: label: D454
type: string
name: parse_data
arguments: label: D2
type: byte[8]
name: parse_data
arguments: label: D498
type: string
name: parse_data
arguments: label: D395
type: byte[8]
name: parse_data
arguments: label: D155
type: string
name: parse_data
arguments: label: D451
type: byte[8]
name: parse_data
arguments: label: D191
type: string

tool: D294: Ejercicio de Notas Aritmetica de Maquina

tool: D354: Se imprimen los valores a 5

tool: {"D260": [0x60,0xe5,0xd0,0x22,0x49,0x70,0xf1,0x40]}

tool: D531: Valor x a 5: %e


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

tool: {"D245": [0xb2,0x9d,0xef,0xa7,0xaa,0x46,0xe0,0x40]}

tool: D545: Valor y a 5: %e


tool: {"D125": [0x99,0x99,0x99,0x99,0x11,0x70,0xf1,0x40]}

tool: D275: Valor u a 5: %e


tool: {"D550": [0x2d,0xb2,0x9d,0xef,0xa7,0xc6,0xf1,0x3f]}

tool: D540: Valor w a 5: %e


tool: D84: 98765.9

tool: D121: Valor v a 5: %e



tool: D196: Ejercicio realizado en clase

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

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

tool: D181: 100000

tool: {"D246": [0xfa,0xf3,0x8b,0x17,0xad,0xd1,0xba,0x3f]}

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


tool: {"D535": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D523": [0x7c,0x78,0xb7,0x2e,0x0c,0xc3,0xf0,0x3f]}

tool: D313: 
Ejercicio de operaciones pares

tool: {"D299": [0x3e,0xbc,0x5b,0x17,0x86,0x61,0xd8,0x3f]}

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

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


tool: {"D2": [0x5f,0x15,0x4b,0x4a,0x92,0x24,0x01,0x40]}

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


tool: {"D395": [0x26,0xea,0xf7,0x14,0x63,0xfe,0x08,0x40]}

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


tool: {"D451": [0x48,0xdb,0xf8,0xd3,0xe9,0x1c,0xf8,0x40]}

tool: D191: 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);
}
```