user: What is the c source code of the assembly code below?

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  lea    D92(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x30(%rbp),%rax
  mov    %rax,%rsi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D6(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rsi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  movsd  -0x30(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x28(%rbp),%xmm2
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x20(%rbp),%xmm2
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  D109(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x20(%rbp),%xmm2
  movsd  -0x28(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movsd  -0x10(%rbp),%xmm3
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  mov    $0x5,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L4
  call   <__stack_chk_fail@plt>
L4:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D92
type_infered: string
name: unpack_data
arguments: data_label: D67
type_infered: string
name: unpack_data
arguments: data_label: D19
type_infered: string
name: unpack_data
arguments: data_label: D6
type_infered: string
name: unpack_data
arguments: data_label: D60
type_infered: string
name: unpack_data
arguments: data_label: D4
type_infered: string
name: unpack_data
arguments: data_label: D109
type_infered: f32[2]
name: unpack_data
arguments: data_label: D98
type_infered: string

tool: D92: Introduzca los coeficientes y el valor de x para obtener el resultado de:
	ax^5 - bx^3 + cx - 7


tool: D67: a = 

tool: D19: %lf

tool: D6: b = 

tool: D60: c = 

tool: D4: x = 

tool: {"D109": [0.0,2.4375]}

tool: D98: 
Para x = %g,  %gx^5 - %gx^3 + %gx - 7 = %g


assistant: ```c
main() {
  double a = 0, b = 0, c = 0, x = 0, p = 0;
  printf("Introduzca los coeficientes y el valor de x para obtener el resultado de:\n"
         "\tax^5 - bx^3 + cx - 7\n\n");
  printf("a = ");
  scanf("%lf", &a);
  printf("b = ");
  scanf("%lf", &b);
  printf("c = ");
  scanf("%lf", &c);
  printf("x = ");
  scanf("%lf", &x);
  p = a * x * x * x * x * x - b * x * x * x + c * x - 7;
  printf("\nPara x = %g,  %gx^5 - %gx^3 + %gx - 7 = %g\n", x, a, b, c, p);
}
```