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

```asm
<ft_putnbr>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %edi,%ebx
  sub    $0x18,%rsp
  test   %edi,%edi
  js     L31
L71:
  lea    0x30(%rbx),%edi
  cmp    $0x9,%ebx
  jle    L79
  mov    %ebx,%ecx
  mov    $0xcccccccd,%esi
  mov    %ebx,%r12d
  mov    %rcx,%rdi
  imul   %rsi,%rdi
  shr    $0x23,%rdi
  lea    (%rdi,%rdi,4),%eax
  add    %eax,%eax
  sub    %eax,%r12d
  add    $0x30,%r12d
  cmp    $0x63,%ebx
  jle    L38
  mov    %edi,%eax
  imul   $0x51eb851f,%rcx,%rdx
  imul   %rsi,%rax
  shr    $0x25,%rdx
  shr    $0x23,%rax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %eax,%edi
  lea    0x30(%rdi),%ebp
  cmp    $0x3e7,%ebx
  jle    L32
  mov    %edx,%r13d
  imul   %rsi,%r13
  shr    $0x23,%r13
  lea    0x0(%r13,%r13,4),%eax
  add    %eax,%eax
  sub    %eax,%edx
  lea    0x30(%rdx),%r14d
  cmp    $0x270f,%ebx
  jle    L66
  mov    $0xd1b71759,%r15d
  imul   %rcx,%r15
  shr    $0x2d,%r15
  cmp    $0x1869f,%ebx
  jle    L129
  mov    %ebx,%edx
  shr    $0x5,%edx
  imul   $0xa7c5ac5,%rdx,%rdx
  shr    $0x27,%rdx
  cmp    $0xf423f,%ebx
  jg     L73
L18:
  lea    0x30(%rdx),%edi
  call   <ft_putchar@plt>
  mov    %r15d,%eax
  mov    $0xcccccccd,%edx
  imul   %rdx,%rax
  shr    $0x23,%rax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %eax,%r15d
L129:
  lea    0x30(%r15),%edi
  call   <ft_putchar@plt>
  mov    %r13d,%eax
  mov    $0xcccccccd,%edx
  imul   %rdx,%rax
  shr    $0x23,%rax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %eax,%r13d
L66:
  lea    0x30(%r13),%edi
  call   <ft_putchar@plt>
  mov    %r14d,%edi
  call   <ft_putchar@plt>
L43:
  mov    %ebp,%edi
  call   <ft_putchar@plt>
  mov    %r12d,%edi
L79:
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1050 <ft_putchar@plt>
  xchg   %ax,%ax
L38:
  add    $0x30,%edi
  call   <ft_putchar@plt>
  mov    %r12d,%edi
  jmp    L79
  nopl   (%rax)
L31:
  mov    $0x2d,%edi
  call   <ft_putchar@plt>
  cmp    $0x80000000,%ebx
  je     L109
  neg    %ebx
  jmp    L71
  nopl   0x0(%rax)
L32:
  lea    0x30(%rdx),%edi
  call   <ft_putchar@plt>
  jmp    L43
  nopw   0x0(%rax,%rax,1)
L73:
  imul   $0x431bde83,%rcx,%rcx
  shr    $0x32,%rcx
  cmp    $0x98967f,%ebx
  jg     L53
  lea    0x30(%rcx),%edi
  mov    %edx,0x8(%rsp)
  call   <ft_putchar@plt>
  mov    0x8(%rsp),%edx
  jmp    L84
  nopl   (%rax)
L109:
  mov    $0x32,%edi
  mov    $0x36,%r14d
  mov    $0x34,%ebp
  mov    $0x38,%r12d
  call   <ft_putchar@plt>
  mov    $0x5c2,%edx
  mov    $0x93,%ecx
  mov    $0x399c,%r15d
  mov    $0x2401b,%r13d
L53:
  mov    %ecx,%ebx
  mov    $0xcccccccd,%eax
  mov    %edx,0xc(%rsp)
  imul   %rax,%rbx
  mov    %ecx,0x8(%rsp)
  shr    $0x23,%rbx
  mov    %ebx,%edi
  call   <ft_putnbr>
  mov    0x8(%rsp),%ecx
  lea    (%rbx,%rbx,4),%eax
  add    %eax,%eax
  sub    %eax,%ecx
  lea    0x30(%rcx),%edi
  call   <ft_putchar@plt>
  mov    0xc(%rsp),%edx
L84:
  mov    %edx,%eax
  mov    $0xcccccccd,%ecx
  imul   %rcx,%rax
  shr    $0x23,%rax
  lea    (%rax,%rax,4),%eax
  add    %eax,%eax
  sub    %eax,%edx
  jmp    L18
```

assistant: ```c
void ft_putnbr(int n) {
  if (n < 0) {
    ft_putchar('-');
    if (n == -2147483648) {
      ft_putchar('2');
      n = 147483648;
    } else
      n *= -1;
  }
  if (n <= 9)
    ft_putchar('0' + n);
  else {
    ft_putnbr(n / 10);
    ft_putchar('0' + n % 10);
  }
}
```