user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<get_mime_type>:
  endbr64
  push   %rbp
  mov    $0x2e,%esi
  call   <strrchr@plt>
  mov    %rax,%rbp
  lea    D222(%rip),%rax
  test   %rbp,%rbp
  je     L220
  lea    D321(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L156
L194:
  lea    D350(%rip),%rax
L220:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L156:
  lea    D196(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L194
  lea    D449(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L77
  lea    D5(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L57
L77:
  lea    D75(%rip),%rax
  pop    %rbp
  ret
  nopl   (%rax)
L57:
  lea    D57(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D246(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D411(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D261(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D174(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D319(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D173(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D290(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D416(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D414(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D79(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D362(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D389(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D84(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D54(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L82
  lea    D114(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L82
  lea    D448(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L121
  lea    D163(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L121
  lea    D372(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L12
  lea    D356(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L12
  lea    D201(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L15
  lea    D363(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L15
  lea    D56(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D43(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D278(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D310(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D169(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D222(%rip),%rax
  test   %r8,%r8
  je     L220
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L34
  lea    D293(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L34
  mov    %rbp,%rdi
  lea    D268(%rip),%rsi
  call   <strcasecmp@plt>
  lea    D156(%rip),%rdx
  pop    %rbp
  test   %rax,%rax
  lea    D340(%rip),%rax
  cmove  %rdx,%rax
  ret
L82:
  lea    D172(%rip),%rax
  pop    %rbp
  ret
L34:
  lea    D171(%rip),%rax
  pop    %rbp
  ret
L15:
  lea    D232(%rip),%rax
  pop    %rbp
  ret
L12:
  lea    D404(%rip),%rax
  pop    %rbp
  ret
L121:
  lea    D279(%rip),%rax
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D222
data_type: string
name: disassemble_data
arguments: data_label: D321
data_type: string
name: disassemble_data
arguments: data_label: D350
data_type: string
name: disassemble_data
arguments: data_label: D196
data_type: string
name: disassemble_data
arguments: data_label: D449
data_type: string
name: disassemble_data
arguments: data_label: D5
data_type: string
name: disassemble_data
arguments: data_label: D75
data_type: string
name: disassemble_data
arguments: data_label: D57
data_type: string
name: disassemble_data
arguments: data_label: D246
data_type: string
name: disassemble_data
arguments: data_label: D411
data_type: string
name: disassemble_data
arguments: data_label: D261
data_type: string
name: disassemble_data
arguments: data_label: D174
data_type: string
name: disassemble_data
arguments: data_label: D319
data_type: string
name: disassemble_data
arguments: data_label: D173
data_type: string
name: disassemble_data
arguments: data_label: D290
data_type: string
name: disassemble_data
arguments: data_label: D416
data_type: string
name: disassemble_data
arguments: data_label: D414
data_type: string
name: disassemble_data
arguments: data_label: D79
data_type: string
name: disassemble_data
arguments: data_label: D362
data_type: string
name: disassemble_data
arguments: data_label: D389
data_type: string
name: disassemble_data
arguments: data_label: D84
data_type: string
name: disassemble_data
arguments: data_label: D54
data_type: string
name: disassemble_data
arguments: data_label: D114
data_type: string
name: disassemble_data
arguments: data_label: D448
data_type: string
name: disassemble_data
arguments: data_label: D163
data_type: string
name: disassemble_data
arguments: data_label: D372
data_type: string
name: disassemble_data
arguments: data_label: D356
data_type: string
name: disassemble_data
arguments: data_label: D201
data_type: string
name: disassemble_data
arguments: data_label: D363
data_type: string
name: disassemble_data
arguments: data_label: D56
data_type: string
name: disassemble_data
arguments: data_label: D43
data_type: string
name: disassemble_data
arguments: data_label: D278
data_type: string
name: disassemble_data
arguments: data_label: D310
data_type: string
name: disassemble_data
arguments: data_label: D169
data_type: string
name: disassemble_data
arguments: data_label: D91
data_type: string
name: disassemble_data
arguments: data_label: D293
data_type: string
name: disassemble_data
arguments: data_label: D268
data_type: string
name: disassemble_data
arguments: data_label: D156
data_type: string
name: disassemble_data
arguments: data_label: D340
data_type: string
name: disassemble_data
arguments: data_label: D172
data_type: string
name: disassemble_data
arguments: data_label: D171
data_type: string
name: disassemble_data
arguments: data_label: D232
data_type: string
name: disassemble_data
arguments: data_label: D404
data_type: string
name: disassemble_data
arguments: data_label: D279
data_type: string

tool: D222: HTTP/1.0 200 OK
Content-type: text/plain; charset=gb2312


tool: D321: .html

tool: D350: HTTP/1.0 200 OK
Content-type: text/html; charset=gb2312


tool: D196: .htm

tool: D449: .jpg

tool: D5: .jpeg

tool: D75: HTTP/1.0 200 OK
Content-type: image/jpeg


tool: D57: .gif

tool: D246: HTTP/1.0 200 OK
Content-type: image/gif


tool: D411: .png

tool: D261: HTTP/1.0 200 OK
Content-type: image/png


tool: D174: .pcx

tool: D319: HTTP/1.0 200 OK
Content-type: image/pcx


tool: D173: .css

tool: D290: HTTP/1.0 200 OK
Content-type: text/css


tool: D416: .au

tool: D414: HTTP/1.0 200 OK
Content-type: audio/basic


tool: D79: .wav

tool: D362: HTTP/1.0 200 OK
Content-type: audio/wav


tool: D389: .avi

tool: D84: HTTP/1.0 200 OK
Content-type: video/x-msvideo


tool: D54: .mov

tool: D114: .qt

tool: D448: .mpeg

tool: D163: .mpe

tool: D372: .vrml

tool: D356: .wrl

tool: D201: .midi

tool: D363: .mid

tool: D56: .mp3

tool: D43: HTTP/1.0 200 OK
Content-type: audio/mpeg


tool: D278: .pac

tool: D310: HTTP/1.0 200 OK
Content-type: application/x-ns-proxy-autoconfig


tool: D169: .txt

tool: D91: .xht

tool: D293: .xhtml

tool: D268: .xml

tool: D156: text/xml

tool: D340: HTTP/1.0 200 OK
Content-type: application/octet-stream


tool: D172: HTTP/1.0 200 OK
Content-type: video/quicktime


tool: D171: HTTP/1.0 200 OK
Content-type: application/xhtml+xml


tool: D232: HTTP/1.0 200 OK
Content-type: audio/midi


tool: D404: HTTP/1.0 200 OK
Content-type: model/vrml


tool: D279: HTTP/1.0 200 OK
Content-type: video/mpeg


assistant: ```c
char *get_mime_type(char *name) {
  char *dot;
  dot = strrchr(name, '.');
  if (dot == (char *)0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "text/plain; charset="
           "gb2312"
           "\r\n";
  if (strcasecmp(dot, ".html") == 0 || strcasecmp(dot, ".htm") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "text/html; charset="
           "gb2312"
           "\r\n";
  if (strcasecmp(dot, ".jpg") == 0 || strcasecmp(dot, ".jpeg") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "image/jpeg"
           "\r\n";
  if (strcasecmp(dot, ".gif") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "image/gif"
           "\r\n";
  if (strcasecmp(dot, ".png") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "image/png"
           "\r\n";
  if (strcasecmp(dot, ".pcx") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "image/pcx"
           "\r\n";
  if (strcasecmp(dot, ".css") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "text/css"
           "\r\n";
  if (strcasecmp(dot, ".au") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "audio/basic"
           "\r\n";
  if (strcasecmp(dot, ".wav") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "audio/wav"
           "\r\n";
  if (strcasecmp(dot, ".avi") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "video/x-msvideo"
           "\r\n";
  if (strcasecmp(dot, ".mov") == 0 || strcasecmp(dot, ".qt") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "video/quicktime"
           "\r\n";
  if (strcasecmp(dot, ".mpeg") == 0 || strcasecmp(dot, ".mpe") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "video/mpeg"
           "\r\n";
  if (strcasecmp(dot, ".vrml") == 0 || strcasecmp(dot, ".wrl") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "model/vrml"
           "\r\n";
  if (strcasecmp(dot, ".midi") == 0 || strcasecmp(dot, ".mid") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "audio/midi"
           "\r\n";
  if (strcasecmp(dot, ".mp3") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "audio/mpeg"
           "\r\n";
  if (strcasecmp(dot, ".pac") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "application/x-ns-proxy-autoconfig"
           "\r\n";
  if (strcasecmp(dot, ".txt") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "text/plain; charset="
           "gb2312"
           "\r\n";
  if (strcasecmp(dot, ".xht") == 0 || strcasecmp(dot, ".xhtml") == 0)
    return "HTTP/1.0 200 OK\nContent-type: "
           "application/xhtml+xml"
           "\r\n";
  if (strcasecmp(dot, ".xml") == 0)
    return "text/xml";
  return "HTTP/1.0 200 OK\nContent-type: "
         "application/octet-stream"
         "\r\n";
}
```