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

```asm
<get_door>:
  endbr64
  push   %rbp
  lea    D32(%rip),%rsi
  mov    %rdi,%rbp
  call   <str_cmp@plt>
  test   %eax,%eax
  jne    L41
L51:
  xor    %eax,%eax
L187:
  pop    %rbp
  ret
  nopl   0x0(%rax)
L41:
  lea    D132(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L51
  lea    D189(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  jne    L145
L99:
  mov    $0x1,%eax
  pop    %rbp
  ret
  nopl   (%rax)
L145:
  lea    D62(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L99
  lea    D92(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L53
  lea    D76(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L53
  lea    D188(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L45
  lea    D198(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L45
  lea    D152(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L139
  lea    D0(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L139
  lea    D156(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L44
  lea    D68(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L44
  lea    D149(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L157
  lea    D113(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L157
  lea    D94(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L82
  lea    D27(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L82
  lea    D165(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L66
  lea    D179(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  test   %eax,%eax
  je     L66
  lea    D15(%rip),%rsi
  mov    %rbp,%rdi
  call   <str_cmp@plt>
  mov    %eax,%r8d
  mov    $0x9,%eax
  test   %r8d,%r8d
  je     L187
  mov    %rbp,%rdi
  lea    D58(%rip),%rsi
  call   <str_cmp@plt>
  pop    %rbp
  cmp    $0x1,%eax
  sbb    %eax,%eax
  and    $0xa,%eax
  sub    $0x1,%eax
  ret
  nopl   0x0(%rax)
L53:
  mov    $0x2,%eax
  pop    %rbp
  ret
L45:
  mov    $0x3,%eax
  pop    %rbp
  ret
L139:
  mov    $0x4,%eax
  pop    %rbp
  ret
L44:
  mov    $0x5,%eax
  pop    %rbp
  ret
L157:
  mov    $0x6,%eax
  pop    %rbp
  ret
L66:
  mov    $0x8,%eax
  pop    %rbp
  ret
L82:
  mov    $0x7,%eax
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D32
datatype: string
name: extract_symbolic_data
arguments: label: D132
datatype: string
name: extract_symbolic_data
arguments: label: D189
datatype: string
name: extract_symbolic_data
arguments: label: D62
datatype: string
name: extract_symbolic_data
arguments: label: D92
datatype: string
name: extract_symbolic_data
arguments: label: D76
datatype: string
name: extract_symbolic_data
arguments: label: D188
datatype: string
name: extract_symbolic_data
arguments: label: D198
datatype: string
name: extract_symbolic_data
arguments: label: D152
datatype: string
name: extract_symbolic_data
arguments: label: D0
datatype: string
name: extract_symbolic_data
arguments: label: D156
datatype: string
name: extract_symbolic_data
arguments: label: D68
datatype: string
name: extract_symbolic_data
arguments: label: D149
datatype: string
name: extract_symbolic_data
arguments: label: D113
datatype: string
name: extract_symbolic_data
arguments: label: D94
datatype: string
name: extract_symbolic_data
arguments: label: D27
datatype: string
name: extract_symbolic_data
arguments: label: D165
datatype: string
name: extract_symbolic_data
arguments: label: D179
datatype: string
name: extract_symbolic_data
arguments: label: D15
datatype: string
name: extract_symbolic_data
arguments: label: D58
datatype: string

tool: D32: n

tool: D132: north

tool: D189: e

tool: D62: east

tool: D92: s

tool: D76: south

tool: D188: w

tool: D198: west

tool: D152: u

tool: D0: up

tool: D156: d

tool: D68: down

tool: D149: ne

tool: D113: northeast

tool: D94: nw

tool: D27: northwest

tool: D165: se

tool: D179: southeast

tool: D15: sw

tool: D58: southwest

assistant: ```c
int get_door(const char *arg) {
  int door;
  if (!str_cmp(arg, "n") || !str_cmp(arg, "north"))
    door = 0;
  else if (!str_cmp(arg, "e") || !str_cmp(arg, "east"))
    door = 1;
  else if (!str_cmp(arg, "s") || !str_cmp(arg, "south"))
    door = 2;
  else if (!str_cmp(arg, "w") || !str_cmp(arg, "west"))
    door = 3;
  else if (!str_cmp(arg, "u") || !str_cmp(arg, "up"))
    door = 4;
  else if (!str_cmp(arg, "d") || !str_cmp(arg, "down"))
    door = 5;
  else if (!str_cmp(arg, "ne") || !str_cmp(arg, "northeast"))
    door = 6;
  else if (!str_cmp(arg, "nw") || !str_cmp(arg, "northwest"))
    door = 7;
  else if (!str_cmp(arg, "se") || !str_cmp(arg, "southeast"))
    door = 8;
  else if (!str_cmp(arg, "sw") || !str_cmp(arg, "southwest"))
    door = 9;
  else
    door = -1;
  return door;
}
```