user: What is the c source code of the assembly code below:

```asm
<code_for>:
  endbr64
  push   %rbp
  lea    D65(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x21,%eax
  test   %r8,%r8
  jne    L220
L100:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L220:
  lea    D28(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x30,%eax
  test   %r8,%r8
  je     L100
  lea    D147(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x31,%eax
  test   %r8,%r8
  je     L100
  lea    D123(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x32,%eax
  test   %r8,%r8
  je     L100
  lea    D33(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x33,%eax
  test   %r8,%r8
  je     L100
  lea    D224(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x34,%eax
  test   %r8,%r8
  je     L100
  lea    D129(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x35,%eax
  test   %r8,%r8
  je     L100
  lea    D19(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x36,%eax
  test   %r8,%r8
  je     L100
  lea    D89(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x56,%eax
  test   %r8,%r8
  je     L100
  lea    D237(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x46,%eax
  test   %r8,%r8
  je     L100
  lea    D185(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x49,%eax
  test   %r8,%r8
  je     L100
  lea    D248(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x48,%eax
  test   %r8,%r8
  je     L100
  lea    D47(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L83
  lea    D85(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L83
  lea    D93(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L83
  lea    D130(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x44,%eax
  test   %r8,%r8
  je     L100
  lea    D128(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L202
  lea    D52(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L202
  lea    D180(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L202
  lea    D78(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x53,%eax
  test   %r8,%r8
  je     L100
  lea    D212(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x73,%eax
  test   %r8,%r8
  je     L100
  lea    D181(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x43,%eax
  test   %r8,%r8
  je     L100
  lea    D249(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x69,%eax
  test   %r8,%r8
  je     L100
  lea    D245(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x40,%eax
  test   %r8,%r8
  je     L100
  mov    %rbp,%rdi
  lea    D244(%rip),%rsi
  call   <strcmp@plt>
  pop    %rbp
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x16,%eax
  add    $0x3f,%eax
  ret
L83:
  mov    $0x58,%eax
  pop    %rbp
  ret
L202:
  mov    $0x42,%eax
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D65
type_guessed: string
name: retrieve_data
arguments: data_label: D28
type_guessed: string
name: retrieve_data
arguments: data_label: D147
type_guessed: string
name: retrieve_data
arguments: data_label: D123
type_guessed: string
name: retrieve_data
arguments: data_label: D33
type_guessed: string
name: retrieve_data
arguments: data_label: D224
type_guessed: string
name: retrieve_data
arguments: data_label: D129
type_guessed: string
name: retrieve_data
arguments: data_label: D19
type_guessed: string
name: retrieve_data
arguments: data_label: D89
type_guessed: string
name: retrieve_data
arguments: data_label: D237
type_guessed: string
name: retrieve_data
arguments: data_label: D185
type_guessed: string
name: retrieve_data
arguments: data_label: D248
type_guessed: string
name: retrieve_data
arguments: data_label: D47
type_guessed: string
name: retrieve_data
arguments: data_label: D85
type_guessed: string
name: retrieve_data
arguments: data_label: D93
type_guessed: string
name: retrieve_data
arguments: data_label: D130
type_guessed: string
name: retrieve_data
arguments: data_label: D128
type_guessed: string
name: retrieve_data
arguments: data_label: D52
type_guessed: string
name: retrieve_data
arguments: data_label: D180
type_guessed: string
name: retrieve_data
arguments: data_label: D78
type_guessed: string
name: retrieve_data
arguments: data_label: D212
type_guessed: string
name: retrieve_data
arguments: data_label: D181
type_guessed: string
name: retrieve_data
arguments: data_label: D249
type_guessed: string
name: retrieve_data
arguments: data_label: D245
type_guessed: string
name: retrieve_data
arguments: data_label: D244
type_guessed: string

tool: D65: BOOT

tool: D28: CODE

tool: D147: CODE1

tool: D123: CODE2

tool: D33: CODE3

tool: D224: CODE4

tool: D129: CODE5

tool: D19: CODE6

tool: D89: VIDEO

tool: D237: FONT

tool: D185: INITIALIZED

tool: D248: HOME

tool: D47: DISCARD

tool: D85: DISCARD1

tool: D93: DISCARD2

tool: D130: DATA

tool: D128: BUFFERS

tool: D52: BUFFERS1

tool: D180: BUFFERS2

tool: D78: COMMONMEM

tool: D212: COMMONDATA

tool: D181: CONST

tool: D249: INITIALIZER

tool: D245: STUBS

tool: D244: UDATA

assistant: ```c
char code_for(const char *name) {
  if (strcmp(name, "BOOT") == 0)
    return '!';
  if (strcmp(name, "CODE") == 0)
    return '0';
  if (strcmp(name, "CODE1") == 0)
    return '1';
  if (strcmp(name, "CODE2") == 0)
    return '2';
  if (strcmp(name, "CODE3") == 0)
    return '3';
  if (strcmp(name, "CODE4") == 0)
    return '4';
  if (strcmp(name, "CODE5") == 0)
    return '5';
  if (strcmp(name, "CODE6") == 0)
    return '6';
  if (strcmp(name, "VIDEO") == 0)
    return 'V';
  if (strcmp(name, "FONT") == 0)
    return 'F';
  if (strcmp(name, "INITIALIZED") == 0)
    return 'I';
  if (strcmp(name, "HOME") == 0)
    return 'H';
  if (strcmp(name, "DISCARD") == 0)
    return 'X';
  if (strcmp(name, "DISCARD1") == 0)
    return 'X';
  if (strcmp(name, "DISCARD2") == 0)
    return 'X';
  if (strcmp(name, "DATA") == 0)
    return 'D';
  if (strcmp(name, "BUFFERS") == 0)
    return 'B';
  if (strcmp(name, "BUFFERS1") == 0)
    return 'B';
  if (strcmp(name, "BUFFERS2") == 0)
    return 'B';
  if (strcmp(name, "COMMONMEM") == 0)
    return 'S';
  if (strcmp(name, "COMMONDATA") == 0)
    return 's';
  if (strcmp(name, "CONST") == 0)
    return 'C';
  if (strcmp(name, "INITIALIZER") == 0)
    return 'i';
  if (strcmp(name, "STUBS") == 0)
    return '@';
  if (strcmp(name, "UDATA") == 0)
    return 'U';
  return '?';
}
```