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

```asm
<code_for>:
  endbr64
  push   %rbp
  lea    D26(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x21,%eax
  test   %r8,%r8
  jne    L102
L36:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L102:
  lea    D211(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x30,%eax
  test   %r8,%r8
  je     L36
  lea    D202(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x31,%eax
  test   %r8,%r8
  je     L36
  lea    D22(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x32,%eax
  test   %r8,%r8
  je     L36
  lea    D10(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x33,%eax
  test   %r8,%r8
  je     L36
  lea    D165(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x34,%eax
  test   %r8,%r8
  je     L36
  lea    D2(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x35,%eax
  test   %r8,%r8
  je     L36
  lea    D174(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x36,%eax
  test   %r8,%r8
  je     L36
  lea    D195(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x56,%eax
  test   %r8,%r8
  je     L36
  lea    D189(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x46,%eax
  test   %r8,%r8
  je     L36
  lea    D97(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x49,%eax
  test   %r8,%r8
  je     L36
  lea    D70(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x48,%eax
  test   %r8,%r8
  je     L36
  lea    D146(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L43
  lea    D132(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L43
  lea    D27(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L43
  lea    D12(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x44,%eax
  test   %r8,%r8
  je     L36
  lea    D246(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L27
  lea    D99(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L27
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L27
  lea    D191(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x53,%eax
  test   %r8,%r8
  je     L36
  lea    D140(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x73,%eax
  test   %r8,%r8
  je     L36
  lea    D166(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x43,%eax
  test   %r8,%r8
  je     L36
  lea    D83(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x69,%eax
  test   %r8,%r8
  je     L36
  lea    D5(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x40,%eax
  test   %r8,%r8
  je     L36
  mov    %rbp,%rdi
  lea    D117(%rip),%rsi
  call   <strcmp@plt>
  pop    %rbp
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x16,%eax
  add    $0x3f,%eax
  ret
L43:
  mov    $0x58,%eax
  pop    %rbp
  ret
L27:
  mov    $0x42,%eax
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D26
type_infered: string
name: extract_symbolic_data
arguments: tag: D211
type_infered: string
name: extract_symbolic_data
arguments: tag: D202
type_infered: string
name: extract_symbolic_data
arguments: tag: D22
type_infered: string
name: extract_symbolic_data
arguments: tag: D10
type_infered: string
name: extract_symbolic_data
arguments: tag: D165
type_infered: string
name: extract_symbolic_data
arguments: tag: D2
type_infered: string
name: extract_symbolic_data
arguments: tag: D174
type_infered: string
name: extract_symbolic_data
arguments: tag: D195
type_infered: string
name: extract_symbolic_data
arguments: tag: D189
type_infered: string
name: extract_symbolic_data
arguments: tag: D97
type_infered: string
name: extract_symbolic_data
arguments: tag: D70
type_infered: string
name: extract_symbolic_data
arguments: tag: D146
type_infered: string
name: extract_symbolic_data
arguments: tag: D132
type_infered: string
name: extract_symbolic_data
arguments: tag: D27
type_infered: string
name: extract_symbolic_data
arguments: tag: D12
type_infered: string
name: extract_symbolic_data
arguments: tag: D246
type_infered: string
name: extract_symbolic_data
arguments: tag: D99
type_infered: string
name: extract_symbolic_data
arguments: tag: D91
type_infered: string
name: extract_symbolic_data
arguments: tag: D191
type_infered: string
name: extract_symbolic_data
arguments: tag: D140
type_infered: string
name: extract_symbolic_data
arguments: tag: D166
type_infered: string
name: extract_symbolic_data
arguments: tag: D83
type_infered: string
name: extract_symbolic_data
arguments: tag: D5
type_infered: string
name: extract_symbolic_data
arguments: tag: D117
type_infered: string

tool: D26: BOOT

tool: D211: CODE

tool: D202: CODE1

tool: D22: CODE2

tool: D10: CODE3

tool: D165: CODE4

tool: D2: CODE5

tool: D174: CODE6

tool: D195: VIDEO

tool: D189: FONT

tool: D97: INITIALIZED

tool: D70: HOME

tool: D146: DISCARD

tool: D132: DISCARD1

tool: D27: DISCARD2

tool: D12: DATA

tool: D246: BUFFERS

tool: D99: BUFFERS1

tool: D91: BUFFERS2

tool: D191: COMMONMEM

tool: D140: COMMONDATA

tool: D166: CONST

tool: D83: INITIALIZER

tool: D5: STUBS

tool: D117: 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 '?';
}
```