user: 下面的汇编指令对应的C源代码是什么：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L6
L171:
  movsd  -0x38(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L26
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L26
  movsd  -0x30(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L26
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L26
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L26
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L152
L26:
  movsd  -0x28(%rbp),%xmm0
  movsd  D163(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D8(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  D131(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd D164(%rip),%xmm0
  jbe    L132
  lea    D109(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L187
L132:
  movsd  -0x10(%rbp),%xmm0
  comisd D88(%rip),%xmm0
  jb     L28
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L187
L28:
  movsd  -0x10(%rbp),%xmm0
  comisd D93(%rip),%xmm0
  jb     L30
  lea    D136(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L187
L30:
  movsd  -0x10(%rbp),%xmm0
  comisd D133(%rip),%xmm0
  jb     L54
  lea    D92(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L187
L54:
  movsd  -0x10(%rbp),%xmm0
  movsd  D8(%rip),%xmm1
  comisd %xmm1,%xmm0
  jb     L187
  lea    D150(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L187:
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D8(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
L6:
  lea    -0x28(%rbp),%rcx
  lea    -0x30(%rbp),%rdx
  lea    -0x38(%rbp),%rax
  mov    %rax,%rsi
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  test   %rax,%rax
  jne    L171
  jmp    L186
L152:
  nop
L186:
  movsd  -0x18(%rbp),%xmm0
  divsd  -0x20(%rbp),%xmm0
  comisd D88(%rip),%xmm0
  jbe    L134
  lea    D15(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L134:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L57
  call   <__stack_chk_fail@plt>
L57:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D163
data_type: f32[2]
name: read_data
arguments: data_label: D8
data_type: f32[2]
name: read_data
arguments: data_label: D131
data_type: f32[2]
name: read_data
arguments: data_label: D164
data_type: f32[4]
name: read_data
arguments: data_label: D109
data_type: string
name: read_data
arguments: data_label: D88
data_type: f32[4]
name: read_data
arguments: data_label: D42
data_type: string
name: read_data
arguments: data_label: D93
data_type: f32[4]
name: read_data
arguments: data_label: D136
data_type: string
name: read_data
arguments: data_label: D133
data_type: f32
name: read_data
arguments: data_label: D92
data_type: string
name: read_data
arguments: data_label: D150
data_type: string
name: read_data
arguments: data_label: D111
data_type: string
name: read_data
arguments: data_label: D15
data_type: string

tool: {"D163": [0.0,2.96875]}

tool: {"D8": [0.0,1.875]}

tool: {"D131": [0.0,2.0]}

tool: {"D164": [0.0,3.21875,0.0,3.0625]}

tool: D109: AQUI E BODYBUILDER!!


tool: {"D88": [0.0,3.0625,0.0,2.6875]}

tool: D42: Ta saindo da jaula o monstro!


tool: {"D93": [0.0,2.6875,0.0,2.65625]}

tool: D136: Bora, hora do show! BIIR!


tool: D133: 0

tool: D92: E 13


tool: D150: Nao vai da nao


tool: D111: %lf%lf%lf

tool: D15: 
Aqui nois constroi fibra rapaz! Nao e agua com musculo!


assistant: ```c
int main() {
  double w1, w2, r, d = 0, e = 0, total = 0;
  while (scanf("%lf%lf%lf", &w1, &w2, &r)) {
    if (w1 == 0 && w2 == 0 && r == 0) {
      break;
    }
    d = 1 + (r / 30);
    d = (w1 * d) + (w2 * d);
    d = d / 2;
    if (d > 60) {
      printf("AQUI E BODYBUILDER!!\n");
    } else if (d >= 40) {
      printf("Ta saindo da jaula o monstro!\n");
    } else if (d >= 14) {
      printf("Bora, hora do show! BIIR!\n");
    } else if (d >= 13) {
      printf("E 13\n");
    } else if (d >= 1) {
      printf("Nao vai da nao\n");
    }
    total += d;
    e++;
  }
  if ((total / e) > 40) {
    printf("\nAqui nois constroi fibra rapaz! Nao e agua com musculo!\n");
  }
  return 0;
}
```