user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<om_html_print_numkeybar_entry>:
  endbr64
  push   %r14
  movss  D83(%rip),%xmm1
  push   %r13
  mov    %r8d,%r13d
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  mov    %r9d,%esi
  push   %rbx
  test   %ecx,%ecx
  je     L0
  pxor   %xmm1,%xmm1
  cvtsi2ss %ecx,%xmm1
L0:
  movss  D83(%rip),%xmm2
  test   %edx,%edx
  je     L7
  pxor   %xmm2,%xmm2
  cvtsi2ss %edx,%xmm2
L7:
  imul   $0x64,%r13d,%eax
  pxor   %xmm0,%xmm0
  mov    %rbp,%rdi
  cvtsi2ss %eax,%xmm0
  movaps %xmm0,%xmm3
  divss  %xmm2,%xmm3
  divss  %xmm1,%xmm0
  cvttss2si %xmm3,%r14d
  movd   %xmm0,%ebx
  call   <vi_is_weekend@plt>
  mov    %r12,%rcx
  test   %eax,%eax
  je     L29
  mov    $0x28,%edx
  mov    $0x1,%esi
  lea    D30(%rip),%rdi
  call   <fwrite@plt>
L18:
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <om_html_entities@plt>
  mov    %r12,%rcx
  mov    $0x3b,%edx
  mov    $0x1,%esi
  lea    D68(%rip),%rdi
  call   <fwrite@plt>
  movd   %ebx,%xmm4
  mov    %r13d,%edx
  mov    %r12,%rdi
  lea    D23(%rip),%rsi
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  cvtss2sd %xmm4,%xmm0
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D86(%rip),%rdi
  call   <fwrite@plt>
  mov    %r14d,%esi
  mov    %r12,%rdi
  lea    D21(%rip),%rcx
  lea    D67(%rip),%rdx
  call   <om_html_print_bar@plt>
  pop    %rbx
  mov    %r12,%rcx
  pop    %rbp
  mov    $0xb,%edx
  pop    %r12
  mov    $0x1,%esi
  pop    %r13
  lea    D88(%rip),%rdi
  pop    %r14
  jmp    10d0 <fwrite@plt>
  nopl   0x0(%rax,%rax,1)
L29:
  mov    $0x26,%edx
  mov    $0x1,%esi
  lea    D7(%rip),%rdi
  call   <fwrite@plt>
  jmp    L18
```

tool_calls: name: disassemble_data
arguments: data_tag: D83
data_type: byte[4]
name: disassemble_data
arguments: data_tag: D30
data_type: string
name: disassemble_data
arguments: data_tag: D68
data_type: string
name: disassemble_data
arguments: data_tag: D23
data_type: string
name: disassemble_data
arguments: data_tag: D86
data_type: string
name: disassemble_data
arguments: data_tag: D21
data_type: string
name: disassemble_data
arguments: data_tag: D67
data_type: string
name: disassemble_data
arguments: data_tag: D88
data_type: string
name: disassemble_data
arguments: data_tag: D7
data_type: string

tool: {"D83": [0x00,0x00,0x80,0x3f]}

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

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

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

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

tool: D21: barempty

tool: D67: barfill

tool: D88: </td></tr>


tool: D7: <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");
}
```