user: Converte this assembly snippet into its equivalent C code:

```asm
<parse_collection>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x0,%eax
  call   <get_value@plt>
  cmp    $0x6,%eax
  ja     L78
  mov    %eax,%eax
  lea    D18(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
L79:
  add    $0x8,%rsp
  ret
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D76(%rip),%rdi
  call   <printf@plt>
  jmp    L79
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D153(%rip),%rdi
  call   <printf@plt>
  jmp    L79
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D89(%rip),%rdi
  call   <printf@plt>
  jmp    L79
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D1(%rip),%rdi
  call   <printf@plt>
  jmp    L79
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  jmp    L79
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D154(%rip),%rdi
  call   <printf@plt>
  jmp    L79
L78:
  lea    D204(%rip),%rdi
  call   <parse_value@plt>
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D155(%rip),%rdi
  call   <printf@plt>
  jmp    L79
```

tool_calls: name: parse_data
arguments: tag: D204
datatype: string
name: parse_data
arguments: tag: D188
datatype: string
name: parse_data
arguments: tag: D37
datatype: string
name: parse_data
arguments: tag: D76
datatype: string
name: parse_data
arguments: tag: D153
datatype: string
name: parse_data
arguments: tag: D89
datatype: string
name: parse_data
arguments: tag: D1
datatype: string
name: parse_data
arguments: tag: D46
datatype: string
name: parse_data
arguments: tag: D154
datatype: string
name: parse_data
arguments: tag: D155
datatype: string

tool: D204: COLLECTION

tool: D188:  

tool: D37: Physical

tool: D76: Application

tool: D153: Logical

tool: D89: Report

tool: D1: Named Array

tool: D46: Usage Switch

tool: D154: Usage Modifier

tool: D155: RESERVED

assistant: ```c
void parse_collection(void) {
  switch (get_value()) {
  case 0x00:
    parse_value("COLLECTION");
    (printf(" "), printf("Physical"));
    break;
  case 0x01:
    parse_value("COLLECTION");
    (printf(" "), printf("Application"));
    break;
  case 0x02:
    parse_value("COLLECTION");
    (printf(" "), printf("Logical"));
    break;
  case 0x03:
    parse_value("COLLECTION");
    (printf(" "), printf("Report"));
    break;
  case 0x04:
    parse_value("COLLECTION");
    (printf(" "), printf("Named Array"));
    break;
  case 0x05:
    parse_value("COLLECTION");
    (printf(" "), printf("Usage Switch"));
    break;
  case 0x06:
    parse_value("COLLECTION");
    (printf(" "), printf("Usage Modifier"));
    break;
  default:
    parse_value("COLLECTION");
    (printf(" "), printf("RESERVED"));
    break;
  }
}
```