user: 下面的汇编指令对应的C源代码是什么:

```asm
<get_mime_type>:
  endbr64
  push   %r12
  mov    $0x2e,%esi
  call   <strrchr@plt>
  mov    %rax,%r12
  test   %rax,%rax
  je     L82
  lea    D122(%rip),%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L102
L55:
  lea    D133(%rip),%r12
L82:
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   0x0(%rax)
L102:
  lea    D10(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L55
  lea    D37(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L196
L78:
  lea    D21(%rip),%r12
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   (%rax)
L196:
  lea    D192(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L78
  lea    D15(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L11
  lea    D206(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L65
  lea    D14(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L34
  lea    D135(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L89
  lea    D3(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L20
  lea    D221(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L106
  lea    D187(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L58
  lea    D130(%rip),%rsi
  mov    %r12,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L58
  mov    %r12,%rdi
  lea    D143(%rip),%rsi
  lea    D121(%rip),%r12
  call   <strcmp@plt>
  test   %rax,%rax
  mov    $0x0,%eax
  cmovne %rax,%r12
  jmp    L82
  nop
L11:
  lea    D155(%rip),%r12
  jmp    L82
  nopl   0x0(%rax)
L65:
  lea    D52(%rip),%r12
  jmp    L82
L34:
  lea    D158(%rip),%r12
  jmp    L82
L89:
  lea    D101(%rip),%r12
  jmp    L82
L20:
  lea    D102(%rip),%r12
  jmp    L82
L106:
  lea    D68(%rip),%r12
  jmp    L82
L58:
  lea    D113(%rip),%r12
  jmp    L82
```

tool_calls: name: extract_symbolic_data
arguments: label: D122
datatype: string
name: extract_symbolic_data
arguments: label: D133
datatype: string
name: extract_symbolic_data
arguments: label: D10
datatype: string
name: extract_symbolic_data
arguments: label: D37
datatype: string
name: extract_symbolic_data
arguments: label: D21
datatype: string
name: extract_symbolic_data
arguments: label: D192
datatype: string
name: extract_symbolic_data
arguments: label: D15
datatype: string
name: extract_symbolic_data
arguments: label: D206
datatype: string
name: extract_symbolic_data
arguments: label: D14
datatype: string
name: extract_symbolic_data
arguments: label: D135
datatype: string
name: extract_symbolic_data
arguments: label: D3
datatype: string
name: extract_symbolic_data
arguments: label: D221
datatype: string
name: extract_symbolic_data
arguments: label: D187
datatype: string
name: extract_symbolic_data
arguments: label: D130
datatype: string
name: extract_symbolic_data
arguments: label: D143
datatype: string
name: extract_symbolic_data
arguments: label: D121
datatype: string
name: extract_symbolic_data
arguments: label: D155
datatype: string
name: extract_symbolic_data
arguments: label: D52
datatype: string
name: extract_symbolic_data
arguments: label: D158
datatype: string
name: extract_symbolic_data
arguments: label: D101
datatype: string
name: extract_symbolic_data
arguments: label: D102
datatype: string
name: extract_symbolic_data
arguments: label: D68
datatype: string
name: extract_symbolic_data
arguments: label: D113
datatype: string

tool: D122: .html

tool: D133: text/html

tool: D10: .htm

tool: D37: .jpg

tool: D21: image/jpeg

tool: D192: .jpeg

tool: D15: .gif

tool: D206: .png

tool: D14: .css

tool: D135: .au

tool: D3: .wav

tool: D221: .avi

tool: D187: .mpeg

tool: D130: .mpg

tool: D143: .mp3

tool: D121: audio/mpeg

tool: D155: image/gif

tool: D52: image/png

tool: D158: text/css

tool: D101: audio/basic

tool: D102: audio/wav

tool: D68: video/x-msvideo

tool: D113: video/mpeg

assistant: ```c
char *get_mime_type(char *name) {
  char *ext = strrchr(name, '.');
  if (!ext)
    return NULL;
  if (strcmp(ext, ".html") == 0 || strcmp(ext, ".htm") == 0)
    return "text/html";
  if (strcmp(ext, ".jpg") == 0 || strcmp(ext, ".jpeg") == 0)
    return "image/jpeg";
  if (strcmp(ext, ".gif") == 0)
    return "image/gif";
  if (strcmp(ext, ".png") == 0)
    return "image/png";
  if (strcmp(ext, ".css") == 0)
    return "text/css";
  if (strcmp(ext, ".au") == 0)
    return "audio/basic";
  if (strcmp(ext, ".wav") == 0)
    return "audio/wav";
  if (strcmp(ext, ".avi") == 0)
    return "video/x-msvideo";
  if (strcmp(ext, ".mpeg") == 0 || strcmp(ext, ".mpg") == 0)
    return "video/mpeg";
  if (strcmp(ext, ".mp3") == 0)
    return "audio/mpeg";
  return NULL;
}
```