user: Please show me the C implementation that matches the assembly code listed below:

```asm
<folderview_print>:
  endbr64
  push   %r12
  lea    D28(%rip),%rcx
  lea    D91(%rip),%rdx
  push   %rbp
  mov    %rsi,%rbp
  lea    D37(%rip),%rsi
  lea    D148(%rip),%r12
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <folderview_print_item@plt>
  mov    %rbp,%rdi
  lea    D120(%rip),%rcx
  lea    D69(%rip),%rdx
  lea    D60(%rip),%rsi
  call   <folderview_print_item@plt>
  mov    %rbp,%rdi
  lea    D168(%rip),%rcx
  lea    D9(%rip),%rdx
  lea    D189(%rip),%rsi
  call   <folderview_print_item@plt>
  mov    %rbp,%rdi
  lea    D125(%rip),%rcx
  lea    D156(%rip),%rdx
  lea    D190(%rip),%rsi
  call   <folderview_print_item@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  lea    D185(%rip),%rcx
  lea    D109(%rip),%rdx
  call   <folderview_print_item@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  lea    D150(%rip),%rcx
  lea    D122(%rip),%rdx
  call   <folderview_print_item@plt>
  add    $0x8,%rsp
  mov    %rbp,%rdi
  lea    D31(%rip),%rcx
  pop    %rbp
  lea    D198(%rip),%rdx
  lea    D126(%rip),%rsi
  pop    %r12
  jmp    1050 <folderview_print_item@plt>
```

tool_calls: name: read_data
arguments: data_tag: D28
datatype: string
name: read_data
arguments: data_tag: D91
datatype: string
name: read_data
arguments: data_tag: D37
datatype: string
name: read_data
arguments: data_tag: D148
datatype: string
name: read_data
arguments: data_tag: D120
datatype: string
name: read_data
arguments: data_tag: D69
datatype: string
name: read_data
arguments: data_tag: D60
datatype: string
name: read_data
arguments: data_tag: D168
datatype: string
name: read_data
arguments: data_tag: D9
datatype: string
name: read_data
arguments: data_tag: D189
datatype: string
name: read_data
arguments: data_tag: D125
datatype: string
name: read_data
arguments: data_tag: D156
datatype: string
name: read_data
arguments: data_tag: D190
datatype: string
name: read_data
arguments: data_tag: D185
datatype: string
name: read_data
arguments: data_tag: D109
datatype: string
name: read_data
arguments: data_tag: D150
datatype: string
name: read_data
arguments: data_tag: D122
datatype: string
name: read_data
arguments: data_tag: D31
datatype: string
name: read_data
arguments: data_tag: D198
datatype: string
name: read_data
arguments: data_tag: D126
datatype: string

tool: D28: Grebo IK

tool: D91: /

tool: 

tool: D148: +

tool: D120: Fotboll

tool: D69: /fotboll

tool: D60: -

tool: D168: Ungdom

tool: D9: /fotboll/ungdom

tool: D189: |/

tool: D125: Boll-lek

tool: D156: /fotboll/ungdom/boll-lek

tool: D190: | \

tool: D185: Tennis

tool: D109: /tennis

tool: D150: Innebandy

tool: D122: /innebandy

tool: D31: Isbanan

tool: D198: /isbanan

tool: D126: x

assistant: ```c
void folderview_print(const char *path, FILE *out) {
  folderview_print_item(out, "", "/", "Grebo IK");
  folderview_print_item(out, "-", "/fotboll", "Fotboll");
  folderview_print_item(out, "|/", "/fotboll/ungdom", "Ungdom");
  folderview_print_item(out, "| \\", "/fotboll/ungdom/boll-lek", "Boll-lek");
  folderview_print_item(out, "+", "/tennis", "Tennis");
  folderview_print_item(out, "+", "/innebandy", "Innebandy");
  folderview_print_item(out, "x", "/isbanan", "Isbanan");
}
```