user: Converte this assembly snippet into its equivalent C code:

```asm
<get_mime_type>:
  endbr64
  push   %rbp
  mov    $0x2e,%esi
  call   <strrchr@plt>
  mov    %rax,%rbp
  lea    D45(%rip),%rax
  test   %rbp,%rbp
  je     L60
  lea    D129(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L16
L178:
  lea    D166(%rip),%rax
L60:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L16:
  lea    D370(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L178
  lea    D177(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L231
  lea    D271(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  jne    L113
L231:
  lea    D64(%rip),%rax
  pop    %rbp
  ret
  nopl   (%rax)
L113:
  lea    D324(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D237(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D31(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D71(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D272(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D41(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D282(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D214(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D109(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D262(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D119(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D330(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L184
  lea    D320(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L184
  lea    D218(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L99
  lea    D46(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L99
  lea    D43(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L89
  lea    D297(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L89
  lea    D6(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L245
  lea    D116(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L245
  lea    D125(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D77(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D238(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D284(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D286(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  lea    D45(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D22(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L154
  lea    D386(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L154
  mov    %rbp,%rdi
  lea    D270(%rip),%rsi
  call   <strcasecmp@plt>
  lea    D399(%rip),%rdx
  pop    %rbp
  test   %rax,%rax
  lea    D198(%rip),%rax
  cmove  %rdx,%rax
  ret
L184:
  lea    D196(%rip),%rax
  pop    %rbp
  ret
L154:
  lea    D13(%rip),%rax
  pop    %rbp
  ret
L245:
  lea    D246(%rip),%rax
  pop    %rbp
  ret
L89:
  lea    D429(%rip),%rax
  pop    %rbp
  ret
L99:
  lea    D19(%rip),%rax
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D45
datatype: string
name: unpack_data
arguments: data_label: D129
datatype: string
name: unpack_data
arguments: data_label: D166
datatype: string
name: unpack_data
arguments: data_label: D370
datatype: string
name: unpack_data
arguments: data_label: D177
datatype: string
name: unpack_data
arguments: data_label: D271
datatype: string
name: unpack_data
arguments: data_label: D64
datatype: string
name: unpack_data
arguments: data_label: D324
datatype: string
name: unpack_data
arguments: data_label: D237
datatype: string
name: unpack_data
arguments: data_label: D137
datatype: string
name: unpack_data
arguments: data_label: D31
datatype: string
name: unpack_data
arguments: data_label: D71
datatype: string
name: unpack_data
arguments: data_label: D272
datatype: string
name: unpack_data
arguments: data_label: D240
datatype: string
name: unpack_data
arguments: data_label: D41
datatype: string
name: unpack_data
arguments: data_label: D282
datatype: string
name: unpack_data
arguments: data_label: D214
datatype: string
name: unpack_data
arguments: data_label: D109
datatype: string
name: unpack_data
arguments: data_label: D262
datatype: string
name: unpack_data
arguments: data_label: D119
datatype: string
name: unpack_data
arguments: data_label: D330
datatype: string
name: unpack_data
arguments: data_label: D117
datatype: string
name: unpack_data
arguments: data_label: D320
datatype: string
name: unpack_data
arguments: data_label: D218
datatype: string
name: unpack_data
arguments: data_label: D46
datatype: string
name: unpack_data
arguments: data_label: D43
datatype: string
name: unpack_data
arguments: data_label: D297
datatype: string
name: unpack_data
arguments: data_label: D6
datatype: string
name: unpack_data
arguments: data_label: D116
datatype: string
name: unpack_data
arguments: data_label: D125
datatype: string
name: unpack_data
arguments: data_label: D77
datatype: string
name: unpack_data
arguments: data_label: D238
datatype: string
name: unpack_data
arguments: data_label: D284
datatype: string
name: unpack_data
arguments: data_label: D286
datatype: string
name: unpack_data
arguments: data_label: D22
datatype: string
name: unpack_data
arguments: data_label: D386
datatype: string
name: unpack_data
arguments: data_label: D270
datatype: string
name: unpack_data
arguments: data_label: D399
datatype: string
name: unpack_data
arguments: data_label: D198
datatype: string
name: unpack_data
arguments: data_label: D196
datatype: string
name: unpack_data
arguments: data_label: D13
datatype: string
name: unpack_data
arguments: data_label: D246
datatype: string
name: unpack_data
arguments: data_label: D429
datatype: string
name: unpack_data
arguments: data_label: D19
datatype: string

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


tool: D129: .html

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


tool: D370: .htm

tool: D177: .jpg

tool: D271: .jpeg

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


tool: D324: .gif

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


tool: D137: .png

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


tool: D71: .pcx

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


tool: D240: .css

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


tool: D282: .au

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


tool: D109: .wav

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


tool: D119: .avi

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


tool: D117: .mov

tool: D320: .qt

tool: D218: .mpeg

tool: D46: .mpe

tool: D43: .vrml

tool: D297: .wrl

tool: D6: .midi

tool: D116: .mid

tool: D125: .mp3

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


tool: D238: .pac

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


tool: D286: .txt

tool: D22: .xht

tool: D386: .xhtml

tool: D270: .xml

tool: D399: text/xml

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


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


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


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


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


tool: D19: 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";
}
```