user: What is the c source code of the assembly code below:

```asm
<mkline>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  mov    %edi,%eax
  mov    $0x2,%ebx
  movabs $0x2020202020202020,%rdi
  mov    %rdi,D65(%rip)
  movb   $0x0,D68(%rip)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x2,%edx
  add    %ecx,%edx
  add    %edx,%edx
  mov    %eax,%ecx
  sub    %edx,%ecx
  mov    %ecx,%edx
  lea    0x30(%rdx),%ecx
  mov    %ebx,%edx
  lea    0x1(%rdx),%ebx
  mov    %ecx,%esi
  movslq %edx,%rdx
  lea    D65(%rip),%rcx
  mov    %sil,(%rdx,%rcx,1)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  test   %eax,%eax
  je     L10
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x2,%edx
  add    %ecx,%edx
  add    %edx,%edx
  mov    %eax,%ecx
  sub    %edx,%ecx
  mov    %ecx,%edx
  lea    0x30(%rdx),%ecx
  mov    %ebx,%edx
  lea    0x1(%rdx),%ebx
  mov    %ecx,%esi
  movslq %edx,%rdx
  lea    D65(%rip),%rcx
  mov    %sil,(%rdx,%rcx,1)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
L10:
  test   %eax,%eax
  je     L9
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x2,%edx
  add    %ecx,%edx
  add    %edx,%edx
  mov    %eax,%ecx
  sub    %edx,%ecx
  mov    %ecx,%edx
  lea    0x30(%rdx),%ecx
  mov    %ebx,%edx
  lea    0x1(%rdx),%ebx
  mov    %ecx,%esi
  movslq %edx,%rdx
  lea    D65(%rip),%rcx
  mov    %sil,(%rdx,%rcx,1)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
L9:
  test   %eax,%eax
  je     L13
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x2,%edx
  add    %ecx,%edx
  add    %edx,%edx
  mov    %eax,%ecx
  sub    %edx,%ecx
  mov    %ecx,%edx
  lea    0x30(%rdx),%ecx
  mov    %ebx,%edx
  lea    0x1(%rdx),%ebx
  mov    %ecx,%esi
  movslq %edx,%rdx
  lea    D65(%rip),%rcx
  mov    %sil,(%rdx,%rcx,1)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
L13:
  test   %eax,%eax
  je     L27
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  mov    %eax,%esi
  sar    $0x1f,%esi
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %ecx,%edx
  shl    $0x2,%edx
  add    %ecx,%edx
  add    %edx,%edx
  mov    %eax,%ecx
  sub    %edx,%ecx
  mov    %ecx,%edx
  lea    0x30(%rdx),%ecx
  mov    %ebx,%edx
  lea    0x1(%rdx),%ebx
  mov    %ecx,%esi
  movslq %edx,%rdx
  lea    D65(%rip),%rcx
  mov    %sil,(%rdx,%rcx,1)
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  sub    %ecx,%edx
L27:
  lea    D65(%rip),%rax
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
char *mkline(n)
register int n;
{
  static char lbuf[9];
  register int i = 2;
  strcpy(lbuf, "        ");
  lbuf[i++] = (n % 10) + '0';
  n /= 10;
  if (n != 0) {
    lbuf[i++] = (n % 10) + '0';
    n /= 10;
  }
  if (n != 0) {
    lbuf[i++] = (n % 10) + '0';
    n /= 10;
  }
  if (n != 0) {
    lbuf[i++] = (n % 10) + '0';
    n /= 10;
  }
  if (n != 0) {
    lbuf[i++] = (n % 10) + '0';
    n /= 10;
  }
  return lbuf;
}
```