user: Demonstrate the C code that generates the assembly output below:

```asm
<om_html_print_numkeybar_entry>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rdi,%rbx
  mov    %rsi,%r12
  mov    %edx,%eax
  mov    %r8d,%ebp
  mov    %r9d,%esi
  test   %ecx,%ecx
  mov    $0x1,%edx
  cmove  %edx,%ecx
  test   %eax,%eax
  cmove  %edx,%eax
  imul   $0x64,%r8d,%edx
  pxor   %xmm0,%xmm0
  cvtsi2ss %edx,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2ss %eax,%xmm2
  movaps %xmm0,%xmm1
  divss  %xmm2,%xmm1
  cvttss2si %xmm1,%r13d
  pxor   %xmm1,%xmm1
  cvtsi2ss %ecx,%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,0xc(%rsp)
  mov    %r12,%rdi
  call   <vi_is_weekend@plt>
  test   %eax,%eax
  je     L13
  mov    %rbx,%rcx
  mov    $0x28,%edx
  mov    $0x1,%esi
  lea    D25(%rip),%rdi
  call   <fwrite@plt>
L12:
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <om_html_entities@plt>
  mov    %rbx,%rcx
  mov    $0x3b,%edx
  mov    $0x1,%esi
  lea    D15(%rip),%rdi
  call   <fwrite@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0xc(%rsp),%xmm0
  mov    %ebp,%edx
  lea    D12(%rip),%rsi
  mov    %rbx,%rdi
  mov    $0x1,%eax
  call   <fprintf@plt>
  mov    %rbx,%rcx
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D54(%rip),%rdi
  call   <fwrite@plt>
  lea    D73(%rip),%rcx
  lea    D64(%rip),%rdx
  mov    %r13d,%esi
  mov    %rbx,%rdi
  call   <om_html_print_bar@plt>
  mov    %rbx,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D67(%rip),%rdi
  call   <fwrite@plt>
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
L13:
  mov    %rbx,%rcx
  mov    $0x26,%edx
  mov    $0x1,%esi
  lea    D56(%rip),%rdi
  call   <fwrite@plt>
  jmp    L12
```

tool_calls: name: parse_data
arguments: tag: D25
data_type: string
name: parse_data
arguments: tag: D15
data_type: string
name: parse_data
arguments: tag: D12
data_type: string
name: parse_data
arguments: tag: D54
data_type: string
name: parse_data
arguments: tag: D73
data_type: string
name: parse_data
arguments: tag: D64
data_type: string
name: parse_data
arguments: tag: D67
data_type: string
name: parse_data
arguments: tag: D56
data_type: string

tool: D25: <tr><td align="left" class="keyentrywe">

tool: D15: &nbsp;&nbsp;&nbsp;</td><td align="left" class="valueentry">

tool: D12: %d (%02.1f%%)

tool: D54: </td><td align="left" class="bar">

tool: D73: barempty

tool: D64: barfill

tool: D67: </td></tr>


tool: D56: <tr><td align="left" class="keyentry">

assistant: ```c
void om_html_print_numkeybar_entry(FILE *fp, char *key, int max, int tot, int this, int time_delta) {
  int l, weekend;
  float p;
  if (tot == 0)
    tot++;
  if (max == 0)
    max++;
  l = ((float)(100 * this)) / max;
  p = ((float)(100 * this)) / tot;
  weekend = vi_is_weekend(key, time_delta);
  if (weekend)
    fprintf(fp, "<tr><td align=\"left\" class=\"keyentrywe\">");
  else
    fprintf(fp, "<tr><td align=\"left\" class=\"keyentry\">");
  om_html_entities(fp, key);
  fprintf(fp, "&nbsp;&nbsp;&nbsp;</td><td align=\"left\" class=\"valueentry\">");
  fprintf(fp, "%d (%02.1f%%)", this, p);
  fprintf(fp, "</td><td align=\"left\" class=\"bar\">");
  om_html_print_bar(fp, l, "barfill", "barempty");
  fprintf(fp, "</td></tr>\n");
}
```