user: 下面的汇编指令对应的C源代码是什么：

```asm
<FormatDuration>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  cmpq   $0xe0f,-0x8(%rbp)
  jg     L11
  mov    -0x8(%rbp),%rcx
  movabs $0x8888888888888889,%rdx
  mov    %rcx,%rax
  imul   %rdx
  lea    (%rdx,%rcx,1),%rax
  sar    $0x5,%rax
  sar    $0x3f,%rcx
  sub    %rcx,%rax
  mov    %rax,%rdx
  mov    -0x10(%rbp),%rax
  lea    D19(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L10
L11:
  cmpq   $0x1517f,-0x8(%rbp)
  jg     L9
  mov    -0x8(%rbp),%rsi
  movabs $0x48d159e26af37c05,%rdx
  mov    %rsi,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xa,%rax
  mov    %rsi,%rdx
  sar    $0x3f,%rdx
  sub    %rdx,%rax
  mov    %rax,%rcx
  imul   $0xe10,%rcx,%rax
  sub    %rax,%rsi
  mov    %rsi,%rcx
  movabs $0x8888888888888889,%rdx
  mov    %rcx,%rax
  imul   %rdx
  lea    (%rdx,%rcx,1),%rax
  sar    $0x5,%rax
  sar    $0x3f,%rcx
  mov    %rcx,%rdx
  sub    %rdx,%rax
  mov    %rax,%rsi
  mov    -0x8(%rbp),%rcx
  movabs $0x48d159e26af37c05,%rdx
  mov    %rcx,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xa,%rax
  sar    $0x3f,%rcx
  sub    %rcx,%rax
  mov    %rax,%rdx
  mov    -0x10(%rbp),%rax
  mov    %rsi,%rcx
  lea    D6(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L10
L9:
  cmpq   $0x1e1337f,-0x8(%rbp)
  jg     L20
  mov    -0x8(%rbp),%rsi
  movabs $0x1845c8a0ce512957,%rdx
  mov    %rsi,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xd,%rax
  mov    %rsi,%rdx
  sar    $0x3f,%rdx
  sub    %rdx,%rax
  mov    %rax,%rcx
  imul   $0x15180,%rcx,%rax
  sub    %rax,%rsi
  mov    %rsi,%rcx
  movabs $0x48d159e26af37c05,%rdx
  mov    %rcx,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xa,%rax
  sar    $0x3f,%rcx
  mov    %rcx,%rdx
  sub    %rdx,%rax
  mov    %rax,%rsi
  mov    -0x8(%rbp),%rcx
  movabs $0x1845c8a0ce512957,%rdx
  mov    %rcx,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xd,%rax
  sar    $0x3f,%rcx
  sub    %rcx,%rax
  mov    %rax,%rdx
  mov    -0x10(%rbp),%rax
  mov    %rsi,%rcx
  lea    D0(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L10
L20:
  mov    -0x8(%rbp),%rsi
  movabs $0x883148f5cb1270b9,%rdx
  mov    %rsi,%rax
  imul   %rdx
  lea    (%rdx,%rsi,1),%rax
  sar    $0x18,%rax
  mov    %rsi,%rdx
  sar    $0x3f,%rdx
  sub    %rdx,%rax
  mov    %rax,%rcx
  imul   $0x1e13380,%rcx,%rax
  sub    %rax,%rsi
  mov    %rsi,%rcx
  movabs $0x1845c8a0ce512957,%rdx
  mov    %rcx,%rax
  imul   %rdx
  mov    %rdx,%rax
  sar    $0xd,%rax
  sar    $0x3f,%rcx
  mov    %rcx,%rdx
  sub    %rdx,%rax
  mov    %rax,%rsi
  mov    -0x8(%rbp),%rcx
  movabs $0x883148f5cb1270b9,%rdx
  mov    %rcx,%rax
  imul   %rdx
  lea    (%rdx,%rcx,1),%rax
  sar    $0x18,%rax
  sar    $0x3f,%rcx
  sub    %rcx,%rax
  mov    %rax,%rdx
  mov    -0x10(%rbp),%rax
  mov    %rsi,%rcx
  lea    D28(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L10:
  mov    -0x10(%rbp),%rax
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D19
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D6
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D0
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D28
type_guessed: string

tool: D19: %dm

tool: D6: %dh%dm

tool: D0: %dd%dh

tool: D28: %dy%dd

assistant: ```c
const char *FormatDuration(long seconds, char *buf) {
  if (seconds < (60 * 60)) {
    sprintf(buf, "%dm", seconds / 60);
  } else if (seconds < (24 * 60 * 60)) {
    sprintf(buf, "%dh%dm", seconds / (60 * 60), (seconds % (60 * 60)) / 60);
  } else if (seconds < (365 * 24 * 60 * 60)) {
    sprintf(buf, "%dd%dh", seconds / (24 * 60 * 60), (seconds % (24 * 60 * 60)) / (60 * 60));
  } else {
    sprintf(buf, "%dy%dd", seconds / (365 * 24 * 60 * 60), (seconds % (365 * 24 * 60 * 60)) / (24 * 60 * 60));
  }
  return buf;
}
```