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

```asm
<utoa32>:
  endbr64
  movslq %edi,%rax
  mov    %rax,%rcx
  imul   $0x66666667,%rax,%rax
  mov    %ecx,%edx
  sar    $0x1f,%edx
  sar    $0x22,%rax
  sub    %edx,%eax
  mov    %ecx,%edx
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  add    $0x30,%edx
  mov    %dl,D35(%rip)
  cmp    $0x9,%ecx
  jle    L29
  movslq %eax,%rdx
  mov    %eax,%esi
  imul   $0x66666667,%rdx,%rdx
  sar    $0x1f,%esi
  sar    $0x22,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  add    %esi,%esi
  sub    %esi,%eax
  add    $0x30,%eax
  mov    %al,D48(%rip)
  cmp    $0x63,%ecx
  jle    L23
  movslq %edx,%rax
  mov    %edx,%esi
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%esi
  sar    $0x22,%rax
  sub    %esi,%eax
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  add    $0x30,%edx
  mov    %dl,D26(%rip)
  cmp    $0x3e7,%ecx
  jle    L43
  movslq %eax,%rdx
  mov    %eax,%esi
  imul   $0x66666667,%rdx,%rdx
  sar    $0x1f,%esi
  sar    $0x22,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  add    %esi,%esi
  sub    %esi,%eax
  add    $0x30,%eax
  mov    %al,D2(%rip)
  cmp    $0x270f,%ecx
  jle    L111
  movslq %edx,%rax
  mov    %edx,%esi
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%esi
  sar    $0x22,%rax
  sub    %esi,%eax
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  add    $0x30,%edx
  mov    %dl,D95(%rip)
  cmp    $0x1869f,%ecx
  jle    L145
  movslq %eax,%rdx
  mov    %eax,%esi
  imul   $0x66666667,%rdx,%rdx
  sar    $0x1f,%esi
  sar    $0x22,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  add    %esi,%esi
  sub    %esi,%eax
  add    $0x30,%eax
  mov    %al,D58(%rip)
  cmp    $0xf423f,%ecx
  jle    L135
  movslq %edx,%rax
  mov    %edx,%esi
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%esi
  sar    $0x22,%rax
  sub    %esi,%eax
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  add    $0x30,%edx
  mov    %dl,D22(%rip)
  cmp    $0x98967f,%ecx
  jle    L86
  movslq %eax,%rdx
  mov    %eax,%esi
  imul   $0x66666667,%rdx,%rdx
  sar    $0x1f,%esi
  sar    $0x22,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  add    %esi,%esi
  sub    %esi,%eax
  add    $0x30,%eax
  mov    %al,D47(%rip)
  cmp    $0x5f5e0ff,%ecx
  jle    L117
  movslq %edx,%rax
  mov    %edx,%esi
  imul   $0x66666667,%rax,%rax
  sar    $0x1f,%esi
  sar    $0x22,%rax
  sub    %esi,%eax
  lea    (%rax,%rax,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  add    $0x30,%edx
  mov    %dl,D59(%rip)
  cmp    $0x3b9ac9ff,%ecx
  jle    L91
  add    $0x30,%eax
  mov    %al,D21(%rip)
  mov    $0x6,%eax
L65:
  lea    D6(%rip),%rdx
  add    %rdx,%rax
  ret
L135:
  mov    $0xa,%eax
  jmp    L65
  nopl   0x0(%rax,%rax,1)
L29:
  lea    D6(%rip),%rdx
  mov    $0xf,%eax
  add    %rdx,%rax
  ret
L23:
  mov    $0xe,%eax
  jmp    L65
L43:
  mov    $0xd,%eax
  jmp    L65
L111:
  mov    $0xc,%eax
  jmp    L65
L145:
  mov    $0xb,%eax
  jmp    L65
L86:
  mov    $0x9,%eax
  jmp    L65
L117:
  mov    $0x8,%eax
  jmp    L65
L91:
  mov    $0x7,%eax
  jmp    L65
```

assistant: ```c
char *utoa32(uint32_t x) {
  static char buf[17];
  uint32_t i = 15;
  do {
    buf[i--] = (x % 10) + '0';
    x /= 10;
  } while (x > 0);
  return buf + i + 1;
}
```