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

```asm
<find_contenttype>:
  endbr64
  push   %rbp
  mov    $0x2e,%esi
  call   <strrchr@plt>
  test   %rax,%rax
  je     L34
  lea    D57(%rip),%rsi
  mov    %rax,%rdi
  mov    %rax,%rbp
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L80
L66:
  lea    D120(%rip),%rax
L9:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L80:
  lea    D123(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L66
  lea    D92(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D24(%rip),%rax
  test   %r8,%r8
  je     L9
  lea    D83(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D54(%rip),%rax
  test   %r8,%r8
  je     L9
  lea    D90(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D79(%rip),%rax
  test   %r8,%r8
  je     L9
  lea    D162(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D110(%rip),%rax
  test   %r8,%r8
  je     L9
  lea    D105(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1
  lea    D33(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1
  lea    D62(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1
  lea    D93(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L34
L1:
  lea    D91(%rip),%rax
  pop    %rbp
  ret
  nopl   0x0(%rax)
L34:
  lea    D12(%rip),%rax
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: tag: D57
type: string
name: unpack_data
arguments: tag: D120
type: string
name: unpack_data
arguments: tag: D123
type: string
name: unpack_data
arguments: tag: D92
type: string
name: unpack_data
arguments: tag: D24
type: string
name: unpack_data
arguments: tag: D83
type: string
name: unpack_data
arguments: tag: D54
type: string
name: unpack_data
arguments: tag: D90
type: string
name: unpack_data
arguments: tag: D79
type: string
name: unpack_data
arguments: tag: D162
type: string
name: unpack_data
arguments: tag: D110
type: string
name: unpack_data
arguments: tag: D105
type: string
name: unpack_data
arguments: tag: D33
type: string
name: unpack_data
arguments: tag: D62
type: string
name: unpack_data
arguments: tag: D93
type: string
name: unpack_data
arguments: tag: D91
type: string
name: unpack_data
arguments: tag: D12
type: string

tool: D57: .html

tool: D120: text/html

tool: D123: .htm

tool: D92: .jpg

tool: D24: image/jpeg

tool: D83: .png

tool: D54: image/png

tool: D90: .gif

tool: D79: image/gif

tool: D162: .css

tool: D110: text/css

tool: D105: .txt

tool: D33: .c

tool: D62: .cpp

tool: D93: .log

tool: D91: text/plain

tool: D12: application/octet-stream

assistant: ```c
char *find_contenttype(char *path) {
  char *extension = strrchr(path, '.');
  if (extension != NULL) {
    if ((strcmp(extension, ".html") == 0 || strcmp(extension, ".htm") == 0)) {
      return "text/html";
    } else if (strcmp(extension, ".jpg") == 0) {
      return "image/jpeg";
    } else if (strcmp(extension, ".png") == 0) {
      return "image/png";
    } else if (strcmp(extension, ".gif") == 0) {
      return "image/gif";
    } else if (strcmp(extension, ".css") == 0) {
      return "text/css";
    } else if (strcmp(extension, ".txt") == 0 || strcmp(extension, ".c") == 0 || strcmp(extension, ".cpp") == 0 || strcmp(extension, ".log") == 0) {
      return "text/plain";
    }
  }
  return "application/octet-stream";
}
```