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

```asm
<_output_debug>:
  endbr64
  sub    $0x98,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x88(%rsp)
  xor    %eax,%eax
  test   %rdi,%rdi
  je     L68
  lea    0xf(%rdi),%rdx
  mov    %rdi,%rax
  cmovns %rdi,%rdx
  sar    $0x3f,%rax
  shr    $0x3c,%rax
  add    %rax,%rdi
  and    $0xf,%edi
  sub    %rax,%rdi
  cmp    $0xa,%rdi
  lea    0x37(%rdi),%rcx
  lea    0x30(%rdi),%rax
  cmovge %rcx,%rax
  mov    %rax,(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L68
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rax,0x8(%rsp)
  mov    %rcx,%rax
  sar    $0x4,%rax
  je     L68
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x10(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L407
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rax,0x18(%rsp)
  mov    %rcx,%rax
  sar    $0x4,%rax
  je     L323
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x20(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L366
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rax,0x28(%rsp)
  mov    %rcx,%rax
  sar    $0x4,%rax
  je     L338
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x30(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L279
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  lea    0x30(%rax),%rdx
  cmp    $0xa,%rax
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rcx,%rdx
  sar    $0x4,%rdx
  mov    %rax,0x38(%rsp)
  je     L336
  test   %rdx,%rdx
  lea    0xf(%rdx),%rax
  cmovns %rdx,%rax
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rdx
  and    $0xf,%edx
  sub    %rcx,%rdx
  cmp    $0xa,%rdx
  lea    0x37(%rdx),%rsi
  lea    0x30(%rdx),%rcx
  cmovl  %rcx,%rsi
  sar    $0x4,%rax
  mov    %rsi,0x40(%rsp)
  je     L217
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  mov    %rax,%rcx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x48(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L107
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rax,0x50(%rsp)
  mov    %rcx,%rax
  sar    $0x4,%rax
  je     L77
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x58(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L408
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  mov    %rax,0x60(%rsp)
  mov    %rcx,%rax
  sar    $0x4,%rax
  je     L188
  test   %rax,%rax
  lea    0xf(%rax),%rdx
  cmovns %rax,%rdx
  sar    $0x3f,%rcx
  shr    $0x3c,%rcx
  add    %rcx,%rax
  and    $0xf,%eax
  sub    %rcx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rcx
  mov    %rsi,%rax
  cmovl  %rcx,%rax
  mov    %rax,0x68(%rsp)
  mov    %rdx,%rax
  sar    $0x4,%rax
  je     L117
  test   %rax,%rax
  lea    0xf(%rax),%rcx
  cmovns %rax,%rcx
  sar    $0x3f,%rdx
  shr    $0x3c,%rdx
  add    %rdx,%rax
  and    $0xf,%eax
  sub    %rdx,%rax
  lea    0x37(%rax),%rsi
  cmp    $0xa,%rax
  lea    0x30(%rax),%rdx
  mov    %rsi,%rax
  cmovl  %rdx,%rax
  sar    $0x4,%rcx
  mov    %rax,0x70(%rsp)
  je     L281
  add    $0x30,%rcx
  mov    $0xf,%eax
  mov    %rcx,0x78(%rsp)
L251:
  movabs $0x100000208,%rdx
  mov    (%rsp,%rax,8),%rcx
  mov    %rcx,(%rdx)
  mov    -0x8(%rsp,%rax,8),%rcx
  mov    %rcx,(%rdx)
  mov    -0x10(%rsp,%rax,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x3(%rax),%rcx
  cmp    $0x2,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x4(%rax),%rcx
  cmp    $0x3,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x5(%rax),%rcx
  cmp    $0x4,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x6(%rax),%rcx
  cmp    $0x5,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x7(%rax),%rcx
  cmp    $0x6,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x8(%rax),%rcx
  cmp    $0x7,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0x9(%rax),%rcx
  cmp    $0x8,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0xa(%rax),%rcx
  cmp    $0x9,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0xb(%rax),%rcx
  cmp    $0xa,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
  lea    -0xc(%rax),%rdx
  cmp    $0xb,%rax
  je     L68
  mov    (%rsp,%rdx,8),%rcx
  movabs $0x100000208,%rdx
  mov    %rcx,(%rdx)
  lea    -0xd(%rax),%rcx
  cmp    $0xc,%rax
  je     L68
  mov    (%rsp,%rcx,8),%rcx
  mov    %rcx,(%rdx)
L68:
  movabs $0x100000208,%rax
  movq   $0xa,(%rax)
  mov    0x88(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L5
  add    $0x98,%rsp
  ret
L407:
  mov    $0x2,%eax
  jmp    L251
L323:
  mov    $0x3,%eax
  jmp    L251
L366:
  mov    $0x4,%eax
  jmp    L251
L338:
  mov    $0x5,%eax
  jmp    L251
L279:
  mov    $0x6,%eax
  jmp    L251
L336:
  mov    $0x7,%eax
  jmp    L251
L217:
  mov    $0x8,%eax
  jmp    L251
L107:
  mov    $0x9,%eax
  jmp    L251
L77:
  mov    $0xa,%eax
  jmp    L251
L408:
  mov    $0xb,%eax
  jmp    L251
L188:
  mov    $0xc,%eax
  jmp    L251
L117:
  mov    $0xd,%eax
  jmp    L251
L281:
  mov    $0xe,%eax
  jmp    L251
L5:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void _output_debug(long x) {
  long t;
  long i;
  long vec[16];
  if (x == 0)
    *(long *)(0x100000208) = '0';
  i = 0;
  while (x != 0) {
    t = x / 16;
    if (x - t * 16 < 10)
      vec[i] = x - t * 16 + '0';
    else
      vec[i] = x - t * 16 - 10 + 'A';
    x = t;
    i = i + 1;
  }
  i = i - 1;
  for (; i >= 0; i = i - 1) {
    *(long *)(0x100000208) = vec[i];
  }
  *(long *)(0x100000208) = 10;
  return;
}
```