user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<lookup>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  mov    $0x2e,%esi
  mov    %rax,%rdi
  call   <strrchr@plt>
  mov    %rax,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D41(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L98
  lea    D8(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L98:
  mov    -0x8(%rbp),%rax
  lea    D140(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L110
  lea    D83(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L110:
  mov    -0x8(%rbp),%rax
  lea    D129(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L55
  lea    D108(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L55:
  mov    -0x8(%rbp),%rax
  lea    D46(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L123
  lea    D151(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L123:
  mov    -0x8(%rbp),%rax
  lea    D4(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L144
  lea    D26(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L144:
  mov    -0x8(%rbp),%rax
  lea    D89(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L30
  lea    D157(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L30:
  mov    -0x8(%rbp),%rax
  lea    D128(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L59
  lea    D90(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L59:
  mov    -0x8(%rbp),%rax
  lea    D35(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L85
  lea    D101(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L73
L85:
  movq   $0x0,-0x10(%rbp)
L73:
  mov    -0x10(%rbp),%rax
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D41
type: string
name: retrieve_data
arguments: label: D8
type: string
name: retrieve_data
arguments: label: D140
type: string
name: retrieve_data
arguments: label: D83
type: string
name: retrieve_data
arguments: label: D129
type: string
name: retrieve_data
arguments: label: D108
type: string
name: retrieve_data
arguments: label: D46
type: string
name: retrieve_data
arguments: label: D151
type: string
name: retrieve_data
arguments: label: D4
type: string
name: retrieve_data
arguments: label: D26
type: string
name: retrieve_data
arguments: label: D89
type: string
name: retrieve_data
arguments: label: D157
type: string
name: retrieve_data
arguments: label: D128
type: string
name: retrieve_data
arguments: label: D90
type: string
name: retrieve_data
arguments: label: D35
type: string
name: retrieve_data
arguments: label: D101
type: string

tool: D41: .css

tool: D8: text/css

tool: D140: .html

tool: D83: text/html

tool: D129: .gif

tool: D108: image/gif

tool: D46: .ico

tool: D151: image/x-ico

tool: D4: .jpg

tool: D26: image/jpeg

tool: D89: .js

tool: D157: text/javascript

tool: D128: .php

tool: D90: text/x-php

tool: D35: .png

tool: D101: image/png

assistant: ```c
const char *lookup(const char *path) {
  char *ext = strrchr(path, '.');
  const char *type;
  if (strcasecmp(ext, ".css") == 0) {
    type = "text/css";
  } else if (strcasecmp(ext, ".html") == 0) {
    type = "text/html";
  } else if (strcasecmp(ext, ".gif") == 0) {
    type = "image/gif";
  } else if (strcasecmp(ext, ".ico") == 0) {
    type = "image/x-ico";
  } else if (strcasecmp(ext, ".jpg") == 0) {
    type = "image/jpeg";
  } else if (strcasecmp(ext, ".js") == 0) {
    type = "text/javascript";
  } else if (strcasecmp(ext, ".php") == 0) {
    type = "text/x-php";
  } else if (strcasecmp(ext, ".png") == 0) {
    type = "image/png";
  } else {
    type = NULL;
  }
  return type;
}
```