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

```asm
<panel_utils_gate_time_to_str>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %esi,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0x4(%rbp)
  cmpl   $0xbf,-0x4(%rbp)
  jle    L67
  mov    -0x18(%rbp),%rax
  lea    D12(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L67:
  cmpl   $0x5f,-0x4(%rbp)
  jle    L83
  mov    -0x18(%rbp),%rax
  lea    D111(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L83:
  cmpl   $0x47,-0x4(%rbp)
  jle    L221
  mov    -0x18(%rbp),%rax
  lea    D52(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L221:
  cmpl   $0x2f,-0x4(%rbp)
  jle    L216
  mov    -0x18(%rbp),%rax
  lea    D2(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L216:
  cmpl   $0x1f,-0x4(%rbp)
  jle    L235
  mov    -0x18(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L235:
  cmpl   $0x17,-0x4(%rbp)
  jle    L109
  mov    -0x18(%rbp),%rax
  lea    D97(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L109:
  cmpl   $0x11,-0x4(%rbp)
  jle    L33
  mov    -0x18(%rbp),%rax
  lea    D138(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L33:
  cmpl   $0xb,-0x4(%rbp)
  jle    L195
  mov    -0x18(%rbp),%rax
  lea    D65(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L195:
  cmpl   $0x8,-0x4(%rbp)
  jle    L255
  mov    -0x18(%rbp),%rax
  lea    D6(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L255:
  cmpl   $0x5,-0x4(%rbp)
  jle    L10
  mov    -0x18(%rbp),%rax
  lea    D133(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L10:
  cmpl   $0x3,-0x4(%rbp)
  jle    L156
  mov    -0x18(%rbp),%rax
  lea    D83(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L156:
  cmpl   $0x2,-0x4(%rbp)
  jle    L163
  mov    -0x18(%rbp),%rax
  lea    D122(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L163:
  cmpl   $0x1,-0x4(%rbp)
  jle    L157
  mov    -0x18(%rbp),%rax
  lea    D102(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L86
L157:
  mov    -0x18(%rbp),%rax
  lea    D71(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
L86:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D12
type_infered: string
name: disassemble_data
arguments: tag: D111
type_infered: string
name: disassemble_data
arguments: tag: D52
type_infered: string
name: disassemble_data
arguments: tag: D2
type_infered: string
name: disassemble_data
arguments: tag: D11
type_infered: string
name: disassemble_data
arguments: tag: D97
type_infered: string
name: disassemble_data
arguments: tag: D138
type_infered: string
name: disassemble_data
arguments: tag: D65
type_infered: string
name: disassemble_data
arguments: tag: D6
type_infered: string
name: disassemble_data
arguments: tag: D133
type_infered: string
name: disassemble_data
arguments: tag: D83
type_infered: string
name: disassemble_data
arguments: tag: D122
type_infered: string
name: disassemble_data
arguments: tag: D102
type_infered: string
name: disassemble_data
arguments: tag: D71
type_infered: string

tool: D12: w+

tool: D111: w

tool: D52: h.

tool: D2: h

tool: D11: q.

tool: D97: q

tool: D138: 8.

tool: D65: 8

tool: D6: 16.

tool: D133: 16

tool: D83: 32.

tool: D122: 32

tool: D102: 64.

tool: D71: 64

assistant: ```c
void panel_utils_gate_time_to_str(char *tempstr, int time) {
  int tm = time / (96 / 24);
  if (tm >= 192) {
    sprintf(tempstr, "w+");
    return;
  } else if (tm >= 96) {
    sprintf(tempstr, "w");
    return;
  } else if (tm >= 72) {
    sprintf(tempstr, "h.");
    return;
  } else if (tm >= 48) {
    sprintf(tempstr, "h");
    return;
  } else if (tm >= 32) {
    sprintf(tempstr, "q.");
    return;
  } else if (tm >= 24) {
    sprintf(tempstr, "q");
    return;
  } else if (tm >= 18) {
    sprintf(tempstr, "8.");
    return;
  } else if (tm >= 12) {
    sprintf(tempstr, "8");
    return;
  } else if (tm >= 9) {
    sprintf(tempstr, "16.");
    return;
  } else if (tm >= 6) {
    sprintf(tempstr, "16");
    return;
  } else if (tm >= 4) {
    sprintf(tempstr, "32.");
    return;
  } else if (tm >= 3) {
    sprintf(tempstr, "32");
    return;
  } else if (tm >= 2) {
    sprintf(tempstr, "64.");
    return;
  }
  sprintf(tempstr, "64");
}
```