user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %r15
  lea    D52(%rip),%rdi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  call   <puts@plt>
  lea    0x1c(%rsp),%rsi
  lea    D88(%rip),%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  js     L88
  pxor   %xmm5,%xmm5
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  xor    %ebp,%ebp
  movl   $0x0,0xc(%rsp)
  lea    D16(%rip),%r13
  lea    0x20(%rsp),%r12
  movsd  %xmm5,(%rsp)
  lea    D21(%rip),%rbx
  jmp    L47
  nopl   0x0(%rax,%rax,1)
L11:
  add    $0x1,%ebp
L84:
  add    $0x1,%r15d
  cmp    %r15d,%eax
  jl     L29
L47:
  mov    %r13,%rdi
  call   <puts@plt>
  xor    %eax,%eax
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <scanf@plt>
  mov    0x1c(%rsp),%eax
  pxor   %xmm2,%xmm2
  movsd  0x20(%rsp),%xmm0
  comisd D26(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  addsd  (%rsp),%xmm1
  movsd  %xmm1,(%rsp)
  jae    L11
  movsd  D26(%rip),%xmm4
  mov    D71(%rip),%rdx
  comisd %xmm0,%xmm4
  movq   %rdx,%xmm1
  jbe    L6
  comisd %xmm1,%xmm0
  jb     L6
  add    $0x1,%r15d
  addl   $0x1,0xc(%rsp)
  cmp    %r15d,%eax
  jge    L47
  nopl   (%rax)
L29:
  mov    0xc(%rsp),%edx
  lea    D60(%rip),%rdi
  xor    %eax,%eax
  mov    %r14d,%ecx
  mov    %ebp,%esi
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  mov    $0x1,%eax
  lea    D20(%rip),%rdi
  call   <printf@plt>
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x38,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  xchg   %ax,%ax
L6:
  xor    %ecx,%ecx
  comisd %xmm0,%xmm1
  seta   %cl
  add    %ecx,%r14d
  jmp    L84
L88:
  pxor   %xmm6,%xmm6
  movl   $0x0,0xc(%rsp)
  xor    %r14d,%r14d
  xor    %ebp,%ebp
  movsd  %xmm6,(%rsp)
  jmp    L29
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: label: D52
data_type: string
name: read_data
arguments: label: D88
data_type: string
name: read_data
arguments: label: D16
data_type: string
name: read_data
arguments: label: D21
data_type: string
name: read_data
arguments: label: D26
data_type: f32[4]
name: read_data
arguments: label: D71
data_type: f32[2]
name: read_data
arguments: label: D60
data_type: string
name: read_data
arguments: label: D20
data_type: string

tool: D52: Please enter the total numbers of days to observed

tool: D88: %d

tool: D16: Please enter the tempretures

tool: D21: %lf

tool: {"D26": [0.0,3.33203125,0.0,3.21875]}

tool: {"D71": [0.0,3.21875]}

tool: D60: no of hot days %d
no of avg temp days %d
no of cold days %d


tool: D20: The averege is %f


assistant: ```c
main() {
  int days, count1 = 0, count3 = 0, count2 = 0;
  double temp;
  int i = 0;
  double avg = 0.0;
  printf("Please enter the total numbers of days to observed\n");
  scanf("%d", &days);
  while (i <= days) {
    printf("Please enter the tempretures\n");
    scanf("%lf", &temp);
    avg = avg + (double)temp / days;
    if (temp >= 85)
      count1 += 1;
    else if (temp < 85 && temp >= 60)
      count2 += 1;
    else if (temp < 60)
      count3 += 1;
    i = i + 1;
  }
  printf("no of hot days %d\nno of avg temp days %d\nno of cold days %d\n", count1, count2, count3);
  printf("The averege is %f\n", avg);
}
```