user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x38(%rbp),%rax
  mov    %rax,%rsi
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  movl   $0x1,-0x3c(%rbp)
  jmp    L2
L23:
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x30(%rbp),%rax
  mov    %rax,%rsi
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <tam_sayiya_yuvarla@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <onluk_tam_sayiya_yuvarla@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <yuzluk_tam_sayiya_yuvarla@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <binlik_tam_sayiya_yuvarla@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x10(%rbp)
  lea    D16(%rip),%r9
  lea    D77(%rip),%r8
  lea    D17(%rip),%rax
  mov    %rax,%rcx
  lea    D37(%rip),%rax
  mov    %rax,%rdx
  lea    D87(%rip),%rax
  mov    %rax,%rsi
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x30(%rbp),%rax
  movsd  -0x10(%rbp),%xmm3
  movsd  -0x18(%rbp),%xmm2
  movsd  -0x20(%rbp),%xmm1
  movsd  -0x28(%rbp),%xmm0
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  mov    $0x5,%eax
  call   <printf@plt>
  addl   $0x1,-0x3c(%rbp)
L2:
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x3c(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jae    L23
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L24
  call   <__stack_chk_fail@plt>
L24:
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D12
type_guessed: string
name: read_data
arguments: label: D106
type_guessed: string
name: read_data
arguments: label: D4
type_guessed: string
name: read_data
arguments: label: D16
type_guessed: string
name: read_data
arguments: label: D77
type_guessed: string
name: read_data
arguments: label: D17
type_guessed: string
name: read_data
arguments: label: D37
type_guessed: string
name: read_data
arguments: label: D87
type_guessed: string
name: read_data
arguments: label: D73
type_guessed: string
name: read_data
arguments: label: D31
type_guessed: string
name: read_data
arguments: label: D79
type_guessed: string

tool: D12: Kac sayinin yuvarlanmasini istiyosunuz giriniz: 

tool: D106: %lf

tool: D4: Yuvarlanacak sayiyi giriniz: 

tool: D16: Binlige

tool: D77: Yuzluge

tool: D17: Onluga

tool: D37: Yuvarlanmis Hali

tool: D87: Orjinal Hali

tool: D73: %12s %15s %6s %7s %7s


tool: D31: %12f %16.2f %4.4f %7.4f %7.4f


tool: D79: Program Sonlanmistir :)

assistant: ```c
int main() {
  double sayi_limiti;
  printf("Kac sayinin yuvarlanmasini istiyosunuz giriniz: ");
  scanf("%lf", &sayi_limiti);
  int for_sayici;
  for (for_sayici = 1; for_sayici <= sayi_limiti; for_sayici++) {
    double yuvarlanacak_sayi;
    printf("Yuvarlanacak sayiyi giriniz: ");
    scanf("%lf", &yuvarlanacak_sayi);
    double yuvarlanmis_sayi;
    yuvarlanmis_sayi = tam_sayiya_yuvarla(yuvarlanacak_sayi);
    double onluk_hanede_yuvarlanmis_sayi;
    onluk_hanede_yuvarlanmis_sayi = onluk_tam_sayiya_yuvarla(yuvarlanacak_sayi);
    double yuzluk_hanede_yuvarlanmis_sayi;
    yuzluk_hanede_yuvarlanmis_sayi = yuzluk_tam_sayiya_yuvarla(yuvarlanacak_sayi);
    double binlik_hanede_yuvarlanmis_sayi;
    binlik_hanede_yuvarlanmis_sayi = binlik_tam_sayiya_yuvarla(yuvarlanacak_sayi);
    printf("%12s %15s %6s %7s %7s\n", "Orjinal Hali", "Yuvarlanmis Hali", "Onluga", "Yuzluge", "Binlige");
    printf("%12f %16.2f %4.4f %7.4f %7.4f\n", yuvarlanacak_sayi, yuvarlanmis_sayi, onluk_hanede_yuvarlanmis_sayi, yuzluk_hanede_yuvarlanmis_sayi, binlik_hanede_yuvarlanmis_sayi);
  }
  printf("Program Sonlanmistir :)");
  return 0;
}
```