user: Please show me the C implementation that matches the assembly code listed below:

```asm
<edflib_sprint_int_number_nonlocalized>:
  endbr64
  movslq %ecx,%rax
  test   %edx,%edx
  js     L304
  xor    %r8d,%r8d
  cmp    $0x9,%edx
  setg   %r8b
L211:
  test   %esi,%esi
  js     L271
  test   %eax,%eax
  jne    L240
L78:
  mov    %esi,%ecx
  shr    $0x9,%ecx
  imul   $0x44b83,%rcx,%rcx
  shr    $0x27,%rcx
  imul   $0x3b9aca00,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0xa,%edx
  je     L212
  or     %ecx,%r8d
  jne    L101
  mov    %esi,%ecx
  imul   $0x55e63b89,%rcx,%rcx
  shr    $0x39,%rcx
  imul   $0x5f5e100,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x9,%edx
  je     L227
  test   %ecx,%ecx
  jne    L227
  mov    %esi,%ecx
  imul   $0x6b5fca6b,%rcx,%rcx
  shr    $0x36,%rcx
  imul   $0x989680,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x8,%edx
  je     L293
  test   %ecx,%ecx
  jne    L293
  mov    %esi,%ecx
  imul   $0x431bde83,%rcx,%rcx
  shr    $0x32,%rcx
  imul   $0xf4240,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x7,%edx
  je     L393
  test   %ecx,%ecx
  jne    L393
  mov    %esi,%ecx
  shr    $0x5,%ecx
  imul   $0xa7c5ac5,%rcx,%rcx
  shr    $0x27,%rcx
  imul   $0x186a0,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x6,%edx
  je     L309
  test   %ecx,%ecx
  jne    L309
  mov    %esi,%ecx
  mov    $0xd1b71759,%r8d
  imul   %r8,%rcx
  shr    $0x2d,%rcx
  imul   $0x2710,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x5,%edx
  je     L67
  test   %ecx,%ecx
  jne    L67
  mov    %esi,%ecx
  imul   $0x10624dd3,%rcx,%rcx
  shr    $0x26,%rcx
  imul   $0x3e8,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x4,%edx
  je     L16
  test   %ecx,%ecx
  jne    L16
  mov    %esi,%ecx
  imul   $0x51eb851f,%rcx,%rcx
  shr    $0x25,%rcx
  imul   $0x64,%ecx,%r8d
  sub    %r8d,%esi
  cmp    $0x3,%edx
  je     L91
  test   %ecx,%ecx
  jne    L91
  mov    %esi,%ecx
  mov    $0xcccccccd,%r8d
  imul   %r8,%rcx
  shr    $0x23,%rcx
  lea    (%rcx,%rcx,4),%r8d
  add    %r8d,%r8d
  sub    %r8d,%esi
  cmp    $0x2,%edx
  je     L107
  test   %ecx,%ecx
  jne    L107
  cmp    $0x1,%edx
  je     L43
  test   %esi,%esi
  jne    L43
  lea    0x1(%rax),%r8d
  movb   $0x30,(%rdi,%rax,1)
  movslq %r8d,%rax
  movb   $0x0,(%rdi,%rax,1)
  mov    %r8d,%eax
  ret
  nop
L101:
  movslq %eax,%r9
  add    $0x30,%ecx
  lea    0x1(%rax),%r8d
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  imul   $0x55e63b89,%rcx,%rcx
  shr    $0x39,%rcx
  imul   $0x5f5e100,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x9,%edx
  jne    L209
  movslq %r8d,%r8
  add    $0x30,%ecx
  add    $0x2,%eax
  mov    %cl,(%rdi,%r8,1)
  mov    %esi,%ecx
  imul   $0x6b5fca6b,%rcx,%rcx
  shr    $0x36,%rcx
  imul   $0x989680,%ecx,%r8d
  sub    %r8d,%esi
L293:
  movslq %eax,%r9
  add    $0x30,%ecx
  lea    0x1(%rax),%r8d
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  imul   $0x431bde83,%rcx,%rcx
  shr    $0x32,%rcx
  imul   $0xf4240,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x7,%edx
  jne    L4
  movslq %r8d,%r8
  add    $0x30,%ecx
  add    $0x2,%eax
  mov    %cl,(%rdi,%r8,1)
  mov    %esi,%ecx
  shr    $0x5,%ecx
  imul   $0xa7c5ac5,%rcx,%rcx
  shr    $0x27,%rcx
  imul   $0x186a0,%ecx,%r8d
  sub    %r8d,%esi
L309:
  movslq %eax,%r9
  add    $0x30,%ecx
  lea    0x1(%rax),%r8d
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  mov    $0xd1b71759,%r9d
  imul   %r9,%rcx
  shr    $0x2d,%rcx
  imul   $0x2710,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x5,%edx
  jne    L323
  movslq %r8d,%r8
  add    $0x30,%ecx
  add    $0x2,%eax
  mov    %cl,(%rdi,%r8,1)
  mov    %esi,%ecx
  imul   $0x10624dd3,%rcx,%rcx
  shr    $0x26,%rcx
  imul   $0x3e8,%ecx,%r8d
  sub    %r8d,%esi
L16:
  movslq %eax,%r9
  add    $0x30,%ecx
  lea    0x1(%rax),%r8d
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  imul   $0x51eb851f,%rcx,%rcx
  shr    $0x25,%rcx
  imul   $0x64,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x3,%edx
  jne    L135
  add    $0x30,%ecx
  movslq %r8d,%r8
  lea    0x2(%rax),%r9d
  mov    $0xcccccccd,%eax
  mov    %cl,(%rdi,%r8,1)
  mov    %esi,%ecx
  imul   %rax,%rcx
  shr    $0x23,%rcx
  lea    (%rcx,%rcx,4),%eax
  add    %eax,%eax
  sub    %eax,%esi
L31:
  lea    0x1(%r9),%eax
  add    $0x30,%ecx
  movslq %r9d,%r9
  mov    %cl,(%rdi,%r9,1)
L43:
  lea    0x1(%rax),%r8d
  add    $0x30,%esi
  cltq
  mov    %sil,(%rdi,%rax,1)
L220:
  movslq %r8d,%rax
  movb   $0x0,(%rdi,%rax,1)
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L240:
  movb   $0x2b,(%rdi)
  mov    $0x1,%eax
  jmp    L78
  nopl   (%rax)
L271:
  movb   $0x2d,(%rdi)
  neg    %esi
  mov    $0x1,%eax
  jmp    L78
  nopw   0x0(%rax,%rax,1)
L304:
  xor    %edx,%edx
  xor    %r8d,%r8d
  jmp    L211
  nopw   0x0(%rax,%rax,1)
L212:
  add    $0x30,%ecx
  lea    0x1(%rax),%r8d
  mov    %cl,(%rdi,%rax,1)
  mov    %esi,%ecx
  imul   $0x55e63b89,%rcx,%rcx
  shr    $0x39,%rcx
  imul   $0x5f5e100,%ecx,%eax
  sub    %eax,%esi
L209:
  movslq %r8d,%r9
  add    $0x30,%ecx
  lea    0x1(%r8),%eax
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  imul   $0x6b5fca6b,%rcx,%rcx
  shr    $0x36,%rcx
  imul   $0x989680,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x8,%edx
  jne    L293
  cltq
  add    $0x30,%ecx
  add    $0x2,%r8d
  mov    %cl,(%rdi,%rax,1)
  mov    %esi,%ecx
  imul   $0x431bde83,%rcx,%rcx
  shr    $0x32,%rcx
  imul   $0xf4240,%ecx,%eax
  sub    %eax,%esi
L4:
  movslq %r8d,%r9
  add    $0x30,%ecx
  lea    0x1(%r8),%eax
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  shr    $0x5,%ecx
  imul   $0xa7c5ac5,%rcx,%rcx
  shr    $0x27,%rcx
  imul   $0x186a0,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x6,%edx
  jne    L309
  cltq
  add    $0x30,%ecx
  add    $0x2,%r8d
  mov    %cl,(%rdi,%rax,1)
  mov    %esi,%ecx
  mov    $0xd1b71759,%eax
  imul   %rax,%rcx
  shr    $0x2d,%rcx
  imul   $0x2710,%ecx,%eax
  sub    %eax,%esi
L323:
  movslq %r8d,%r9
  add    $0x30,%ecx
  lea    0x1(%r8),%eax
  mov    %cl,(%rdi,%r9,1)
  mov    %esi,%ecx
  imul   $0x10624dd3,%rcx,%rcx
  shr    $0x26,%rcx
  imul   $0x3e8,%ecx,%r9d
  sub    %r9d,%esi
  cmp    $0x4,%edx
  jne    L16
  cltq
  add    $0x30,%ecx
  add    $0x2,%r8d
  mov    %cl,(%rdi,%rax,1)
  mov    %esi,%ecx
  imul   $0x51eb851f,%rcx,%rcx
  shr    $0x25,%rcx
  imul   $0x64,%ecx,%eax
  sub    %eax,%esi
L135:
  movslq %r8d,%rax
  add    $0x30,%ecx
  lea    0x1(%r8),%r9d
  mov    %cl,(%rdi,%rax,1)
  mov    %esi,%ecx
  mov    $0xcccccccd,%eax
  imul   %rax,%rcx
  shr    $0x23,%rcx
  lea    (%rcx,%rcx,4),%eax
  add    %eax,%eax
  sub    %eax,%esi
  cmp    $0x2,%edx
  jne    L31
  lea    0x2(%r8),%eax
  movslq %r9d,%r9
  add    $0x30,%ecx
  add    $0x30,%esi
  lea    0x1(%rax),%r8d
  cltq
  mov    %cl,(%rdi,%r9,1)
  mov    %sil,(%rdi,%rax,1)
  jmp    L220
L67:
  mov    %eax,%r8d
  jmp    L323
L107:
  mov    %eax,%r9d
  jmp    L31
L91:
  mov    %eax,%r8d
  jmp    L135
L393:
  mov    %eax,%r8d
  jmp    L4
L227:
  mov    %eax,%r8d
  jmp    L209
```

assistant: ```c
int edflib_sprint_int_number_nonlocalized(char *str, int q, int minimum, int sign) {
  int flag = 0, z, i, j = 0, base = 1000000000;
  if (minimum < 0) {
    minimum = 0;
  }
  if (minimum > 9) {
    flag = 1;
  }
  if (q < 0) {
    str[j++] = '-';
    q = -q;
  } else {
    if (sign) {
      str[j++] = '+';
    }
  }
  for (i = 10; i; i--) {
    if (minimum == i) {
      flag = 1;
    }
    z = q / base;
    q %= base;
    if (z || flag) {
      str[j++] = '0' + z;
      flag = 1;
    }
    base /= 10;
  }
  if (!flag) {
    str[j++] = '0';
  }
  str[j] = 0;
  return (j);
}
```