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

```asm
<header_display>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  mov    %edx,-0xc(%rbp)
  cmpl   $0x0,-0x4(%rbp)
  je     L6
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L6:
  cmpl   $0x0,-0x8(%rbp)
  je     L55
  lea    D191(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L55:
  lea    D212(%rip),%r9
  lea    D66(%rip),%r8
  lea    D66(%rip),%rax
  mov    %rax,%rcx
  lea    D52(%rip),%rax
  mov    %rax,%rdx
  lea    D66(%rip),%rax
  mov    %rax,%rsi
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,-0x4(%rbp)
  je     L70
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L70:
  cmpl   $0x0,-0x8(%rbp)
  je     L2
  lea    D140(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L2:
  cmpl   $0x0,-0xc(%rbp)
  je     L54
  lea    D15(%rip),%rax
  jmp    L35
L54:
  lea    D19(%rip),%rax
L35:
  lea    D202(%rip),%r8
  lea    D219(%rip),%rdx
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D89(%rip),%rax
  mov    %rax,%rsi
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,-0xc(%rbp)
  je     L51
  lea    D15(%rip),%rax
  jmp    L69
L51:
  lea    D19(%rip),%rax
L69:
  lea    D118(%rip),%r8
  lea    D202(%rip),%rdx
  mov    %rdx,%rcx
  lea    D219(%rip),%rdx
  mov    %rax,%rsi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D12
data_type: string
name: unpack_data
arguments: data_tag: D191
data_type: string
name: unpack_data
arguments: data_tag: D212
data_type: string
name: unpack_data
arguments: data_tag: D66
data_type: string
name: unpack_data
arguments: data_tag: D52
data_type: string
name: unpack_data
arguments: data_tag: D173
data_type: string
name: unpack_data
arguments: data_tag: D16
data_type: string
name: unpack_data
arguments: data_tag: D140
data_type: string
name: unpack_data
arguments: data_tag: D15
data_type: string
name: unpack_data
arguments: data_tag: D19
data_type: string
name: unpack_data
arguments: data_tag: D202
data_type: string
name: unpack_data
arguments: data_tag: D219
data_type: string
name: unpack_data
arguments: data_tag: D89
data_type: string
name: unpack_data
arguments: data_tag: D105
data_type: string
name: unpack_data
arguments: data_tag: D118
data_type: string
name: unpack_data
arguments: data_tag: D58
data_type: string

tool: D12:       

tool: D191:          

tool: D212: out

tool: 

tool: D52: in

tool: D173: %-6s %10s %7s %5s %10s


tool: D16: date  

tool: D140: time     

tool: D15: mbytes

tool: D19: bytes

tool: D202: err

tool: D219: pkts

tool: D89: iface

tool: D105: %-6s %10s %7s %5s 

tool: D118: coll

tool: D58: %10s %7s %5s %5s


assistant: ```c
void header_display(int show_date, int show_time, int show_mb) {
  if (show_date) {
    printf("      ");
  }
  if (show_time) {
    printf("         ");
  }
  printf("%-6s %10s %7s %5s %10s\n", "", "in", "", "", "out");
  if (show_date) {
    printf("date  ");
  }
  if (show_time) {
    printf("time     ");
  }
  printf("%-6s %10s %7s %5s ", "iface", show_mb ? "mbytes" : "bytes", "pkts", "err");
  printf("%10s %7s %5s %5s\n", show_mb ? "mbytes" : "bytes", "pkts", "err", "coll");
}
```