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

```asm
<path_exttype>:
  endbr64
  test   %rdi,%rdi
  je     L25
  push   %rbp
  lea    D129(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D137(%rip),%rax
  test   %r8,%r8
  jne    L21
L31:
  pop    %rbp
  ret
  xchg   %ax,%ax
L21:
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D85(%rip),%rax
  test   %r8,%r8
  je     L31
  lea    D59(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D77(%rip),%rax
  test   %r8,%r8
  je     L31
  lea    D71(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D2(%rip),%rax
  test   %r8,%r8
  je     L31
  lea    D138(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L88
  lea    D41(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L88
  lea    D78(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D65(%rip),%rax
  test   %r8,%r8
  je     L31
  lea    D23(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L1
  lea    D81(%rip),%rax
  pop    %rbp
  ret
  nopl   0x0(%rax)
L1:
  xor    %eax,%eax
  pop    %rbp
  ret
  nopl   0x0(%rax)
L88:
  lea    D114(%rip),%rax
  pop    %rbp
  ret
  nopl   0x0(%rax)
L25:
  xor    %eax,%eax
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D129
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D137
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D38
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D85
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D59
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D77
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D71
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D2
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D138
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D41
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D78
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D65
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D23
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D81
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D114
type_guessed: string

tool: D129: .html

tool: D137: text/html; charset=utf-8

tool: D38: .css

tool: D85: text/css; charset=utf-8

tool: D59: .js

tool: D77: text/javascript; charset=utf-8

tool: D71: .png

tool: D2: image/png

tool: D138: .jpg

tool: D41: .jpeg

tool: D78: .gif

tool: D65: image/gif

tool: D23: .ico

tool: D81: image/vnd.microsoft.icon

tool: D114: image/jpeg

assistant: ```c
char const *path_exttype(char const *const ext) {
  if (!ext)
    return NULL;
  if (0 == strcasecmp(ext, ".html"))
    return "text/html; charset=utf-8";
  if (0 == strcasecmp(ext, ".css"))
    return "text/css; charset=utf-8";
  if (0 == strcasecmp(ext, ".js"))
    return "text/javascript; charset=utf-8";
  if (0 == strcasecmp(ext, ".png"))
    return "image/png";
  if (0 == strcasecmp(ext, ".jpg"))
    return "image/jpeg";
  if (0 == strcasecmp(ext, ".jpeg"))
    return "image/jpeg";
  if (0 == strcasecmp(ext, ".gif"))
    return "image/gif";
  if (0 == strcasecmp(ext, ".ico"))
    return "image/vnd.microsoft.icon";
  return NULL;
}
```