user: What would the C source look like for the assembly code provided here:

```asm
<printToken>:
  endbr64
  push   %r14
  lea    D37(%rip),%r14
  push   %r13
  mov    %ecx,%r13d
  push   %r12
  mov    %edx,%r12d
  push   %rbp
  mov    %rsi,%rbp
  sub    $0x8,%rsp
  cmp    $0x21,%edi
  ja     L81
  lea    D56(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopw   0x0(%rax,%rax,1)
L81:
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D9(%rip),%rdi
L24:
  xor    %eax,%eax
  call   <printf@plt>
  add    $0x8,%rsp
  mov    %r14,%rdi
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  jmp    1060 <puts@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D45(%rip),%rdi
  jmp    L24
  nopw   0x0(%rax,%rax,1)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D68(%rip),%rdi
  jmp    L24
  nopw   0x0(%rax,%rax,1)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D94(%rip),%rdi
  jmp    L24
  nopw   0x0(%rax,%rax,1)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D112(%rip),%rdi
  jmp    L24
  nopl   (%rax)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D24(%rip),%rdi
  jmp    L24
  nopl   (%rax)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D91(%rip),%rdi
  jmp    L24
  nopl   (%rax)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D75(%rip),%rdi
  jmp    L24
  nopl   (%rax)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D26(%rip),%rdi
  jmp    L24
  nopl   (%rax)
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13d,%ecx
  mov    %r12d,%edx
  mov    %rbp,%rsi
  lea    D109(%rip),%rdi
  jmp    L24
```

tool_calls: name: read_data
arguments: data_label: D37
type_guessed: string
name: read_data
arguments: data_label: D9
type_guessed: string
name: read_data
arguments: data_label: D45
type_guessed: string
name: read_data
arguments: data_label: D68
type_guessed: string
name: read_data
arguments: data_label: D94
type_guessed: string
name: read_data
arguments: data_label: D112
type_guessed: string
name: read_data
arguments: data_label: D24
type_guessed: string
name: read_data
arguments: data_label: D91
type_guessed: string
name: read_data
arguments: data_label: D75
type_guessed: string
name: read_data
arguments: data_label: D26
type_guessed: string
name: read_data
arguments: data_label: D109
type_guessed: string

tool: D37: ______________________________________________________

tool: D9: ERR:    %s		%d		%d


tool: D45: FLOAT: %s		%d		%d


tool: D68: ID:     %s		%d		%d


tool: D94: INT:   %s		%d		%d


tool: D112: LIT:    %s		%d		%d


tool: D24: PR:     %s		%d		%d


tool: D91: ARIT:  %s		%d		%d


tool: D75: ASIG:  %s		%d		%d


tool: D26: REL:   %s		%d		%d


tool: D109: SIGN:  %s		%d		%d


assistant: ```c
printToken(int type, char *value, int charC, int lineC) {
  switch (type) {
  case 31:
    printf("______________________________________________________\n");
    printf("ASIG:  %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 30:
    printf("______________________________________________________\n");
    printf("ARIT:  %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 32:
    printf("______________________________________________________\n");
    printf("REL:   %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 2:
    printf("______________________________________________________\n");
    printf("FLOAT: %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 7:
    printf("______________________________________________________\n");
    printf("INT:   %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 33:
    printf("______________________________________________________\n");
    printf("SIGN:  %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 6:
    printf("______________________________________________________\n");
    printf("ID:     %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 29:
    printf("______________________________________________________\n");
    printf("PR:     %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  case 8:
    printf("______________________________________________________\n");
    printf("LIT:    %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  default:
    printf("______________________________________________________\n");
    printf("ERR:    %s\t\t%d\t\t%d\n", value, charC, lineC);
    printf("______________________________________________________\n");
    break;
  }
}
```