user: What would the C source look like for the assembly code provided here?

```asm
<main>:
  endbr64
  push   %rbp
  lea    D90(%rip),%rdi
  lea    D80(%rip),%rbp
  sub    $0x40,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x38(%rsp)
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x20(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  movsd  0x20(%rsp),%xmm0
  call   <ucret_hesapla@plt>
  lea    D101(%rip),%rdi
  xor    %eax,%eax
  movsd  %xmm0,0x8(%rsp)
  call   <printf@plt>
  lea    0x28(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  movsd  0x28(%rsp),%xmm0
  call   <ucret_hesapla@plt>
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  movsd  %xmm0,0x10(%rsp)
  call   <printf@plt>
  lea    0x30(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  movsd  0x30(%rsp),%xmm0
  call   <ucret_hesapla@plt>
  lea    D105(%rip),%rsi
  xor    %eax,%eax
  lea    D68(%rip),%rcx
  lea    D26(%rip),%rdx
  lea    D44(%rip),%rdi
  movsd  %xmm0,0x18(%rsp)
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  0x20(%rsp),%xmm0
  lea    D40(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movsd  0x10(%rsp),%xmm1
  movsd  0x28(%rsp),%xmm0
  lea    D65(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movsd  0x18(%rsp),%xmm1
  movsd  0x30(%rsp),%xmm0
  lea    D8(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movsd  0x20(%rsp),%xmm1
  addsd  0x28(%rsp),%xmm1
  lea    D106(%rip),%rdi
  addsd  0x30(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm0
  mov    $0x1,%eax
  addsd  0x10(%rsp),%xmm0
  addsd  0x18(%rsp),%xmm0
  cvttsd2si %xmm1,%esi
  call   <printf@plt>
  mov    0x38(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x40,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: label: D90
datatype: string
name: disassemble_data
arguments: label: D80
datatype: string
name: disassemble_data
arguments: label: D101
datatype: string
name: disassemble_data
arguments: label: D32
datatype: string
name: disassemble_data
arguments: label: D105
datatype: string
name: disassemble_data
arguments: label: D68
datatype: string
name: disassemble_data
arguments: label: D26
datatype: string
name: disassemble_data
arguments: label: D44
datatype: string
name: disassemble_data
arguments: label: D40
datatype: string
name: disassemble_data
arguments: label: D65
datatype: string
name: disassemble_data
arguments: label: D8
datatype: string
name: disassemble_data
arguments: label: D106
datatype: string

tool: D90: Birinci arabanin park saatini giriniz: 

tool: D80: %lf

tool: D101: Ikinci arabanin park saatini giriniz: 

tool: D32: Ucuncu arabanin park saatini giriniz: 

tool: D105: Araba

tool: D68: Ucret


tool: D26: Saat

tool: D44: %5s%10s%10s

tool: D40: 1 %13.1f %8.2f


tool: D65: 2 %13.1f %8.2f


tool: D8: 3 %13.1f %8.2f


tool: D106: Toplam %8d %8.2f

assistant: ```c
int main() {
  double birinci_araba_ucret, ikinci_araba_ucret, ucuncu_araba_ucret;
  double birinci_araba_saat, ikinci_araba_saat, ucuncu_araba_saat;
  printf("Birinci arabanin park saatini giriniz: ");
  scanf("%lf", &birinci_araba_saat);
  birinci_araba_ucret = ucret_hesapla(birinci_araba_saat);
  printf("Ikinci arabanin park saatini giriniz: ");
  scanf("%lf", &ikinci_araba_saat);
  ikinci_araba_ucret = ucret_hesapla(ikinci_araba_saat);
  printf("Ucuncu arabanin park saatini giriniz: ");
  scanf("%lf", &ucuncu_araba_saat);
  ucuncu_araba_ucret = ucret_hesapla(ucuncu_araba_saat);
  printf("%5s%10s%10s", "Araba", "Saat", "Ucret\n");
  printf("1 %13.1f %8.2f\n", birinci_araba_saat, birinci_araba_ucret);
  printf("2 %13.1f %8.2f\n", ikinci_araba_saat, ikinci_araba_ucret);
  printf("3 %13.1f %8.2f\n", ucuncu_araba_saat, ucuncu_araba_ucret);
  int toplam_saat;
  double toplam_ucret;
  toplam_saat = birinci_araba_saat + ikinci_araba_saat + ucuncu_araba_saat;
  toplam_ucret = birinci_araba_ucret + ikinci_araba_ucret + ucuncu_araba_ucret;
  printf("Toplam %8d %8.2f", toplam_saat, toplam_ucret);
  return 0;
}
```