user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<fast_intoa>:
  endbr64
  movslq %edx,%rdx
  mov    $0xcccccccd,%r9d
  mov    %edi,%eax
  lea    (%rsi,%rdx,1),%rcx
  movzbl %dil,%edx
  mov    %rdx,%rsi
  imul   %r9,%rdx
  movb   $0x0,-0x1(%rcx)
  mov    %esi,%edi
  shr    $0x23,%rdx
  lea    (%rdx,%rdx,4),%r8d
  add    %r8d,%r8d
  sub    %r8d,%edi
  add    $0x30,%edi
  mov    %dil,-0x2(%rcx)
  lea    -0x2(%rcx),%rdi
  cmp    $0x9,%esi
  jle    L39
  mov    %edx,%r8d
  imul   %r9,%r8
  shr    $0x23,%r8
  lea    (%r8,%r8,4),%edi
  add    %edi,%edi
  sub    %edi,%edx
  lea    -0x3(%rcx),%rdi
  add    $0x30,%edx
  mov    %dl,-0x3(%rcx)
  cmp    $0x63,%esi
  jg     L43
L39:
  movzbl %ah,%ecx
  mov    $0xcccccccd,%r9d
  movb   $0x2e,-0x1(%rdi)
  mov    %ecx,%edx
  mov    %ecx,%esi
  imul   %r9,%rdx
  shr    $0x23,%rdx
  lea    (%rdx,%rdx,4),%r8d
  add    %r8d,%r8d
  sub    %r8d,%esi
  add    $0x30,%esi
  mov    %sil,-0x2(%rdi)
  lea    -0x2(%rdi),%rsi
  cmp    $0x9,%ecx
  jle    L69
  mov    %edx,%r8d
  imul   %r9,%r8
  shr    $0x23,%r8
  lea    (%r8,%r8,4),%esi
  add    %esi,%esi
  sub    %esi,%edx
  lea    -0x3(%rdi),%rsi
  add    $0x30,%edx
  mov    %dl,-0x3(%rdi)
  cmp    $0x63,%ecx
  jg     L42
L69:
  mov    %eax,%ecx
  mov    $0xcccccccd,%r9d
  movb   $0x2e,-0x1(%rsi)
  shr    $0x10,%ecx
  movzbl %cl,%edx
  mov    %rdx,%rcx
  imul   %r9,%rdx
  mov    %ecx,%edi
  shr    $0x23,%rdx
  lea    (%rdx,%rdx,4),%r8d
  add    %r8d,%r8d
  sub    %r8d,%edi
  add    $0x30,%edi
  mov    %dil,-0x2(%rsi)
  cmp    $0x9,%ecx
  jg     L67
  lea    -0x2(%rsi),%rcx
L17:
  shr    $0x18,%eax
  mov    $0xcccccccd,%r8d
  movb   $0x2e,-0x1(%rcx)
  mov    %eax,%edx
  mov    %eax,%esi
  imul   %r8,%rdx
  shr    $0x23,%rdx
  lea    (%rdx,%rdx,4),%edi
  add    %edi,%edi
  sub    %edi,%esi
  add    $0x30,%esi
  mov    %sil,-0x2(%rcx)
  cmp    $0x9,%eax
  jg     L13
  lea    -0x2(%rcx),%rax
  movb   $0x2e,-0x1(%rax)
  ret
  nop
L67:
  mov    %edx,%edi
  imul   %r9,%rdi
  shr    $0x23,%rdi
  lea    (%rdi,%rdi,4),%r8d
  add    %r8d,%r8d
  sub    %r8d,%edx
  add    $0x30,%edx
  mov    %dl,-0x3(%rsi)
  cmp    $0x63,%ecx
  jle    L90
  add    $0x30,%edi
  lea    -0x4(%rsi),%rcx
  mov    %dil,-0x4(%rsi)
  jmp    L17
  nopl   0x0(%rax)
L13:
  mov    %edx,%esi
  imul   %r8,%rsi
  shr    $0x23,%rsi
  lea    (%rsi,%rsi,4),%edi
  add    %edi,%edi
  sub    %edi,%edx
  add    $0x30,%edx
  mov    %dl,-0x3(%rcx)
  cmp    $0x63,%eax
  jle    L112
  lea    -0x4(%rcx),%rax
  add    $0x30,%esi
  mov    %sil,-0x4(%rcx)
  movb   $0x2e,-0x1(%rax)
  ret
  nopl   0x0(%rax)
L112:
  lea    -0x3(%rcx),%rax
  movb   $0x2e,-0x1(%rax)
  ret
  nopl   0x0(%rax)
L90:
  lea    -0x3(%rsi),%rcx
  jmp    L17
  nopl   0x0(%rax)
L42:
  add    $0x30,%r8d
  lea    -0x4(%rdi),%rsi
  mov    %r8b,-0x4(%rdi)
  jmp    L69
  nopl   0x0(%rax)
L43:
  add    $0x30,%r8d
  lea    -0x4(%rcx),%rdi
  mov    %r8b,-0x4(%rcx)
  jmp    L39
```

assistant: ```c
char *fast_intoa(unsigned int addr, char *buf, int bufLen) {
  char *cp, *retStr;
  uint8_t byte;
  int n;
  cp = &buf[bufLen];
  *--cp = '\0';
  n = 4;
  do {
    byte = addr & 0xff;
    *--cp = byte % 10 + '0';
    byte /= 10;
    if (byte > 0) {
      *--cp = byte % 10 + '0';
      byte /= 10;
      if (byte > 0)
        *--cp = byte + '0';
    }
    *--cp = '.';
    addr >>= 8;
  } while (--n > 0);
  retStr = (char *)(cp + 1);
  return (retStr);
}
```