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

```asm
<main>:
  endbr64
  push   %r15
  lea    D26(%rip),%rdi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x58,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x48(%rsp)
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x1c(%rsp),%rsi
  lea    D14(%rip),%rdi
  call   <scanf@plt>
  mov    0x1c(%rsp),%ecx
  test   %ecx,%ecx
  jle    L188
  movslq %ecx,%rax
  mov    %ecx,%edx
  mov    %ecx,%esi
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%edx
  sar    $0x22,%rax
  sub    %edx,%eax
  lea    (%rax,%rax,4),%edx
  add    %edx,%edx
  sub    %edx,%esi
  mov    %esi,0x20(%rsp)
  cmp    $0x9,%ecx
  jle    L188
  mov    %eax,%edx
  mov    $0xcccccccd,%edi
  imul   %rdi,%rdx
  shr    $0x23,%rdx
  lea    (%rdx,%rdx,4),%esi
  add    %esi,%esi
  sub    %esi,%eax
  mov    %eax,0x24(%rsp)
  cmp    $0x63,%ecx
  jle    L23
  mov    %edx,%eax
  imul   %rdi,%rax
  shr    $0x23,%rax
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  mov    %edx,0x28(%rsp)
  cmp    $0x3e7,%ecx
  jle    L272
  mov    $0xa,%esi
  cltd
  idiv   %esi
  mov    %edx,0x2c(%rsp)
  cmp    $0x270f,%ecx
  jle    L127
  cltd
  idiv   %esi
  mov    %edx,0x30(%rsp)
  cmp    $0x1869f,%ecx
  jle    L20
  cltd
  idiv   %esi
  mov    %edx,0x34(%rsp)
  cmp    $0xf423f,%ecx
  jle    L235
  cltd
  idiv   %esi
  mov    %edx,0x38(%rsp)
  cmp    $0x98967f,%ecx
  jle    L319
  cltd
  idiv   %esi
  mov    %edx,0x3c(%rsp)
  cmp    $0x5f5e0ff,%ecx
  jle    L7
  cltd
  idiv   %esi
  mov    %edx,0x40(%rsp)
  cmp    $0x3b9ac9ff,%ecx
  jle    L121
  mov    %eax,0x44(%rsp)
  mov    $0x9,%r15d
  movl   $0x0,0x1c(%rsp)
L249:
  lea    0x1(%r15),%eax
  lea    0x20(%rsp),%rbx
  mov    $0x1,%r12d
  mov    %eax,0xc(%rsp)
  lea    D17(%rip),%r13
  jmp    L326
  nopw   0x0(%rax,%rax,1)
L467:
  lea    0x1(%r12),%r14d
  cmp    %r15d,%r12d
  jge    L395
  cmp    0x8(%rbx),%ebp
  je     L181
L159:
  cmp    %r15d,%r14d
  jge    L395
  cmp    0xc(%rbx),%ebp
  je     L322
L330:
  lea    0x2(%r12),%eax
  cmp    %r15d,%eax
  jge    L395
  cmp    0x10(%rbx),%ebp
  je     L345
L332:
  lea    0x3(%r12),%eax
  cmp    %r15d,%eax
  jge    L395
  cmp    0x14(%rbx),%ebp
  je     L314
L183:
  lea    0x4(%r12),%eax
  cmp    %r15d,%eax
  jge    L395
  cmp    0x18(%rbx),%ebp
  je     L191
L54:
  lea    0x5(%r12),%eax
  cmp    %r15d,%eax
  jge    L395
  cmp    0x1c(%rbx),%ebp
  je     L320
L464:
  lea    0x6(%r12),%eax
  cmp    %r15d,%eax
  jge    L395
  cmp    0x20(%rbx),%ebp
  je     L246
L8:
  add    $0x7,%r12d
  cmp    %r15d,%r12d
  jge    L395
  cmp    %ebp,0x24(%rbx)
  je     L307
L395:
  add    $0x4,%rbx
  cmp    0xc(%rsp),%r14d
  je     L188
  mov    %r14d,%r12d
L326:
  mov    (%rbx),%ebp
  cmp    0x4(%rbx),%ebp
  jne    L467
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L467
  nopl   0x0(%rax,%rax,1)
L188:
  mov    0x48(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L411
  add    $0x58,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L181:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L159
  nopl   0x0(%rax)
L322:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L330
  nopl   0x0(%rax)
L345:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L332
  nopl   0x0(%rax)
L314:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L183
  nopl   0x0(%rax)
L191:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L54
L320:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L464
L246:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L8
L307:
  mov    %ebp,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L395
L20:
  mov    %eax,0x1c(%rsp)
  mov    $0x4,%r15d
  jmp    L249
L23:
  mov    %edx,0x1c(%rsp)
  mov    $0x1,%r15d
  jmp    L249
L272:
  mov    %eax,0x1c(%rsp)
  mov    $0x2,%r15d
  jmp    L249
L127:
  mov    %eax,0x1c(%rsp)
  mov    $0x3,%r15d
  jmp    L249
L235:
  mov    %eax,0x1c(%rsp)
  mov    $0x5,%r15d
  jmp    L249
L319:
  mov    %eax,0x1c(%rsp)
  mov    $0x6,%r15d
  jmp    L249
L7:
  mov    %eax,0x1c(%rsp)
  mov    $0x7,%r15d
  jmp    L249
L121:
  mov    %eax,0x1c(%rsp)
  mov    $0x8,%r15d
  jmp    L249
L411:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D26
datatype: string
name: unpack_data
arguments: label: D14
datatype: string
name: unpack_data
arguments: label: D17
datatype: string

tool: D26: Vuvedete chislo:

tool: D14: %d

tool: D17: Chisloto %d se povtarq!


assistant: ```c
int main() {
  int n, i, k, b;
  int a[10];
  printf("Vuvedete chislo:");
  scanf("%d", &n);
  for (i = 0; n > 0; i++) {
    a[i] = n % 10;
    n = n / 10;
  }
  k = i;
  for (i = 0; i < k; i++)
    for (b = i + 1; b < k; b++) {
      if (a[i] == a[b]) {
        printf("Chisloto %d se povtarq!\n", a[i]);
      }
    }
  return 0;
}
```