user: 请从给定的汇编指令推导出C源代码:

```asm
<mime_content_type>:
  endbr64
  push   %r13
  push   %r12
  mov    %rsi,%r12
  mov    $0x2e,%esi
  push   %rbp
  call   <strrchr@plt>
  lea    D247(%rip),%rsi
  test   %rax,%rax
  je     L325
  lea    D809(%rip),%rsi
  mov    %rax,%rdi
  mov    %rax,%rbp
  call   <strcmp@plt>
  lea    D58(%rip),%r13
  test   %rax,%rax
  jne    L20
L481:
  mov    %r13,%rsi
L325:
  pop    %rbp
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1070 <strcpy@plt>
L20:
  lea    D619(%rip),%rsi
  mov    %rbp,%rdi
  lea    D177(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D248(%rip),%rsi
  mov    %rbp,%rdi
  lea    D50(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D584(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L581
L516:
  lea    D850(%rip),%r13
  jmp    L481
L581:
  lea    D458(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L516
  lea    D23(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L723
L342:
  lea    D755(%rip),%r13
  jmp    L481
L723:
  lea    D577(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L342
  lea    D118(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L342
  lea    D956(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L692
L503:
  lea    D948(%rip),%r13
  jmp    L481
L692:
  lea    D109(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L503
  lea    D672(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L503
  lea    D320(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L503
  lea    D650(%rip),%rsi
  mov    %rbp,%rdi
  lea    D508(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D576(%rip),%rsi
  mov    %rbp,%rdi
  lea    D102(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D315(%rip),%rsi
  mov    %rbp,%rdi
  lea    D342(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D366(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L315
L239:
  lea    D173(%rip),%r13
  jmp    L481
L315:
  lea    D793(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L239
  lea    D821(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L239
  lea    D229(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L239
  lea    D414(%rip),%rsi
  mov    %rbp,%rdi
  lea    D564(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D65(%rip),%rsi
  mov    %rbp,%rdi
  lea    D816(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D501(%rip),%rsi
  mov    %rbp,%rdi
  lea    D718(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D385(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L352
L250:
  lea    D680(%rip),%r13
  jmp    L481
L352:
  lea    D481(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L250
  lea    D705(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L505
L577:
  lea    D455(%rip),%r13
  jmp    L481
L505:
  lea    D330(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L577
  lea    D469(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L246
L21:
  lea    D558(%rip),%r13
  jmp    L481
L246:
  lea    D190(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L21
  lea    D227(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L238
L283:
  lea    D251(%rip),%r13
  jmp    L481
L238:
  lea    D798(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L283
  lea    D783(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L283
  lea    D966(%rip),%rsi
  mov    %rbp,%rdi
  lea    D950(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D358(%rip),%rsi
  mov    %rbp,%rdi
  lea    D382(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D488(%rip),%rsi
  mov    %rbp,%rdi
  lea    D232(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D726(%rip),%rsi
  mov    %rbp,%rdi
  lea    D568(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D284(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L328
L215:
  lea    D645(%rip),%r13
  jmp    L481
L328:
  lea    D431(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L215
  lea    D153(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L329
L333:
  lea    D105(%rip),%r13
  jmp    L481
L329:
  lea    D939(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L333
  lea    D1004(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L255
L44:
  lea    D267(%rip),%r13
  jmp    L481
L255:
  lea    D420(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L44
  lea    D221(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L44
  lea    D639(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L44
  lea    D355(%rip),%rsi
  mov    %rbp,%rdi
  lea    D684(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D592(%rip),%rsi
  mov    %rbp,%rdi
  lea    D452(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D947(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L372
L308:
  lea    D309(%rip),%r13
  jmp    L481
L372:
  lea    D417(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L308
  lea    D642(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L506
L534:
  lea    D51(%rip),%r13
  jmp    L481
L506:
  lea    D73(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L534
  lea    D770(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L657
L49:
  lea    D367(%rip),%r13
  jmp    L481
L657:
  lea    D379(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L49
  lea    D817(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L38
L711:
  lea    D484(%rip),%r13
  jmp    L481
L38:
  lea    D151(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L711
  lea    D585(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L711
  lea    D245(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L433
L78:
  lea    D923(%rip),%r13
  jmp    L481
L433:
  lea    D532(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L78
  lea    D515(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L78
  lea    D881(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L78
  lea    D839(%rip),%rsi
  mov    %rbp,%rdi
  lea    D180(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D336(%rip),%rsi
  mov    %rbp,%rdi
  lea    D81(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D912(%rip),%rsi
  mov    %rbp,%rdi
  lea    D332(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D970(%rip),%rsi
  mov    %rbp,%rdi
  lea    D373(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D767(%rip),%rsi
  mov    %rbp,%rdi
  lea    D708(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L481
  lea    D916(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  lea    D247(%rip),%rax
  cmovne %rax,%r13
  jmp    L481
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D247
data_type: string
name: extract_symbolic_data
arguments: data_label: D809
data_type: string
name: extract_symbolic_data
arguments: data_label: D58
data_type: string
name: extract_symbolic_data
arguments: data_label: D619
data_type: string
name: extract_symbolic_data
arguments: data_label: D177
data_type: string
name: extract_symbolic_data
arguments: data_label: D248
data_type: string
name: extract_symbolic_data
arguments: data_label: D50
data_type: string
name: extract_symbolic_data
arguments: data_label: D584
data_type: string
name: extract_symbolic_data
arguments: data_label: D850
data_type: string
name: extract_symbolic_data
arguments: data_label: D458
data_type: string
name: extract_symbolic_data
arguments: data_label: D23
data_type: string
name: extract_symbolic_data
arguments: data_label: D755
data_type: string
name: extract_symbolic_data
arguments: data_label: D577
data_type: string
name: extract_symbolic_data
arguments: data_label: D118
data_type: string
name: extract_symbolic_data
arguments: data_label: D956
data_type: string
name: extract_symbolic_data
arguments: data_label: D948
data_type: string
name: extract_symbolic_data
arguments: data_label: D109
data_type: string
name: extract_symbolic_data
arguments: data_label: D672
data_type: string
name: extract_symbolic_data
arguments: data_label: D320
data_type: string
name: extract_symbolic_data
arguments: data_label: D650
data_type: string
name: extract_symbolic_data
arguments: data_label: D508
data_type: string
name: extract_symbolic_data
arguments: data_label: D576
data_type: string
name: extract_symbolic_data
arguments: data_label: D102
data_type: string
name: extract_symbolic_data
arguments: data_label: D315
data_type: string
name: extract_symbolic_data
arguments: data_label: D342
data_type: string
name: extract_symbolic_data
arguments: data_label: D366
data_type: string
name: extract_symbolic_data
arguments: data_label: D173
data_type: string
name: extract_symbolic_data
arguments: data_label: D793
data_type: string
name: extract_symbolic_data
arguments: data_label: D821
data_type: string
name: extract_symbolic_data
arguments: data_label: D229
data_type: string
name: extract_symbolic_data
arguments: data_label: D414
data_type: string
name: extract_symbolic_data
arguments: data_label: D564
data_type: string
name: extract_symbolic_data
arguments: data_label: D65
data_type: string
name: extract_symbolic_data
arguments: data_label: D816
data_type: string
name: extract_symbolic_data
arguments: data_label: D501
data_type: string
name: extract_symbolic_data
arguments: data_label: D718
data_type: string
name: extract_symbolic_data
arguments: data_label: D385
data_type: string
name: extract_symbolic_data
arguments: data_label: D680
data_type: string
name: extract_symbolic_data
arguments: data_label: D481
data_type: string
name: extract_symbolic_data
arguments: data_label: D705
data_type: string
name: extract_symbolic_data
arguments: data_label: D455
data_type: string
name: extract_symbolic_data
arguments: data_label: D330
data_type: string
name: extract_symbolic_data
arguments: data_label: D469
data_type: string
name: extract_symbolic_data
arguments: data_label: D558
data_type: string
name: extract_symbolic_data
arguments: data_label: D190
data_type: string
name: extract_symbolic_data
arguments: data_label: D227
data_type: string
name: extract_symbolic_data
arguments: data_label: D251
data_type: string
name: extract_symbolic_data
arguments: data_label: D798
data_type: string
name: extract_symbolic_data
arguments: data_label: D783
data_type: string
name: extract_symbolic_data
arguments: data_label: D966
data_type: string
name: extract_symbolic_data
arguments: data_label: D950
data_type: string
name: extract_symbolic_data
arguments: data_label: D358
data_type: string
name: extract_symbolic_data
arguments: data_label: D382
data_type: string
name: extract_symbolic_data
arguments: data_label: D488
data_type: string
name: extract_symbolic_data
arguments: data_label: D232
data_type: string
name: extract_symbolic_data
arguments: data_label: D726
data_type: string
name: extract_symbolic_data
arguments: data_label: D568
data_type: string
name: extract_symbolic_data
arguments: data_label: D284
data_type: string
name: extract_symbolic_data
arguments: data_label: D645
data_type: string
name: extract_symbolic_data
arguments: data_label: D431
data_type: string
name: extract_symbolic_data
arguments: data_label: D153
data_type: string
name: extract_symbolic_data
arguments: data_label: D105
data_type: string
name: extract_symbolic_data
arguments: data_label: D939
data_type: string
name: extract_symbolic_data
arguments: data_label: D1004
data_type: string
name: extract_symbolic_data
arguments: data_label: D267
data_type: string
name: extract_symbolic_data
arguments: data_label: D420
data_type: string
name: extract_symbolic_data
arguments: data_label: D221
data_type: string
name: extract_symbolic_data
arguments: data_label: D639
data_type: string
name: extract_symbolic_data
arguments: data_label: D355
data_type: string
name: extract_symbolic_data
arguments: data_label: D684
data_type: string
name: extract_symbolic_data
arguments: data_label: D592
data_type: string
name: extract_symbolic_data
arguments: data_label: D452
data_type: string
name: extract_symbolic_data
arguments: data_label: D947
data_type: string
name: extract_symbolic_data
arguments: data_label: D309
data_type: string
name: extract_symbolic_data
arguments: data_label: D417
data_type: string
name: extract_symbolic_data
arguments: data_label: D642
data_type: string
name: extract_symbolic_data
arguments: data_label: D51
data_type: string
name: extract_symbolic_data
arguments: data_label: D73
data_type: string
name: extract_symbolic_data
arguments: data_label: D770
data_type: string
name: extract_symbolic_data
arguments: data_label: D367
data_type: string
name: extract_symbolic_data
arguments: data_label: D379
data_type: string
name: extract_symbolic_data
arguments: data_label: D817
data_type: string
name: extract_symbolic_data
arguments: data_label: D484
data_type: string
name: extract_symbolic_data
arguments: data_label: D151
data_type: string
name: extract_symbolic_data
arguments: data_label: D585
data_type: string
name: extract_symbolic_data
arguments: data_label: D245
data_type: string
name: extract_symbolic_data
arguments: data_label: D923
data_type: string
name: extract_symbolic_data
arguments: data_label: D532
data_type: string
name: extract_symbolic_data
arguments: data_label: D515
data_type: string
name: extract_symbolic_data
arguments: data_label: D881
data_type: string
name: extract_symbolic_data
arguments: data_label: D839
data_type: string
name: extract_symbolic_data
arguments: data_label: D180
data_type: string
name: extract_symbolic_data
arguments: data_label: D336
data_type: string
name: extract_symbolic_data
arguments: data_label: D81
data_type: string
name: extract_symbolic_data
arguments: data_label: D912
data_type: string
name: extract_symbolic_data
arguments: data_label: D332
data_type: string
name: extract_symbolic_data
arguments: data_label: D970
data_type: string
name: extract_symbolic_data
arguments: data_label: D373
data_type: string
name: extract_symbolic_data
arguments: data_label: D767
data_type: string
name: extract_symbolic_data
arguments: data_label: D708
data_type: string
name: extract_symbolic_data
arguments: data_label: D916
data_type: string

tool: D247: application/octet-stream

tool: D809: .txt

tool: D58: text/plain

tool: D619: .css

tool: D177: text/css

tool: D248: .js

tool: D50: text/javascript

tool: D584: .xml

tool: D850: text/xml

tool: D458: .xsl

tool: D23: .xhtm

tool: D755: application/xhtml+xml

tool: D577: .xhtml

tool: D118: .xht

tool: D956: .html

tool: D948: text/html

tool: D109: .htm

tool: D672: .shtml

tool: D320: .hts

tool: D650: .gif

tool: D508: image/gif

tool: D576: .png

tool: D102: image/png

tool: D315: .bmp

tool: D342: application/x-MS-bmp

tool: D366: .jpg

tool: D173: image/jpeg

tool: D793: .jpeg

tool: D821: .jpe

tool: D229: .jpz

tool: D414: .wav

tool: D564: audio/wav

tool: D65: .wma

tool: D816: audio/x-ms-wma

tool: D501: .wmv

tool: D718: audio/x-ms-wmv

tool: D385: .au

tool: D680: audio/basic

tool: D481: .snd

tool: D705: .midi

tool: D455: audio/midi

tool: D330: .mid

tool: D469: .mp3

tool: D558: audio/x-mpeg

tool: D190: .mp2

tool: D227: .rm

tool: D251: audio/x-pn-realaudio

tool: D798: .rmvb

tool: D783: .rmm

tool: D966: .avi

tool: D950: video/x-msvideo

tool: D358: .3gp

tool: D382: video/3gpp

tool: D488: .mov

tool: D232: video/quicktime

tool: D726: .wmx

tool: D568: video/x-ms-wmx

tool: D284: .asf

tool: D645: video/x-ms-asf

tool: D431: .asx

tool: D153: .mp4

tool: D105: video/mp4

tool: D939: .mpg4

tool: D1004: .mpe

tool: D267: video/mpeg

tool: D420: .mpeg

tool: D221: .mpg

tool: D639: .mpga

tool: D355: .pdf

tool: D684: application/pdf

tool: D592: .rtf

tool: D452: application/rtf

tool: D947: .doc

tool: D309: application/msword

tool: D417: .dot

tool: D642: .xls

tool: D51: application/msexcel

tool: D73: .xla

tool: D770: .hlp

tool: D367: application/mshelp

tool: D379: .chm

tool: D817: .swf

tool: D484: application/x-shockwave-flash

tool: D151: .swfl

tool: D585: .cab

tool: D245: .ppt

tool: D923: application/mspowerpoint

tool: D532: .ppz

tool: D515: .pps

tool: D881: .pot

tool: D839: .zip

tool: D180: application/zip

tool: D336: .rar

tool: D81: application/x-rar-compressed

tool: D912: .gz

tool: D332: application/x-gzip

tool: D970: .jar

tool: D373: application/java-archive

tool: D767: .tgz

tool: D708: application/x-tar

tool: D916: .tar

assistant: ```c
void mime_content_type(const char *name, char *ret) {
  char *dot, *buf;
  dot = strrchr(name, '.');
  if (!dot) {
    buf = "application/octet-stream";
    strcpy(ret, buf);
  } else {
    if (strcmp(dot, ".txt") == 0) {
      buf = "text/plain";
    } else if (strcmp(dot, ".css") == 0) {
      buf = "text/css";
    } else if (strcmp(dot, ".js") == 0) {
      buf = "text/javascript";
    } else if (strcmp(dot, ".xml") == 0 || strcmp(dot, ".xsl") == 0) {
      buf = "text/xml";
    } else if (strcmp(dot, ".xhtm") == 0 || strcmp(dot, ".xhtml") == 0 || strcmp(dot, ".xht") == 0) {
      buf = "application/xhtml+xml";
    } else if (strcmp(dot, ".html") == 0 || strcmp(dot, ".htm") == 0 || strcmp(dot, ".shtml") == 0 || strcmp(dot, ".hts") == 0) {
      buf = "text/html";
    } else if (strcmp(dot, ".gif") == 0) {
      buf = "image/gif";
    } else if (strcmp(dot, ".png") == 0) {
      buf = "image/png";
    } else if (strcmp(dot, ".bmp") == 0) {
      buf = "application/x-MS-bmp";
    } else if (strcmp(dot, ".jpg") == 0 || strcmp(dot, ".jpeg") == 0 || strcmp(dot, ".jpe") == 0 || strcmp(dot, ".jpz") == 0) {
      buf = "image/jpeg";
    } else if (strcmp(dot, ".wav") == 0) {
      buf = "audio/wav";
    } else if (strcmp(dot, ".wma") == 0) {
      buf = "audio/x-ms-wma";
    } else if (strcmp(dot, ".wmv") == 0) {
      buf = "audio/x-ms-wmv";
    } else if (strcmp(dot, ".au") == 0 || strcmp(dot, ".snd") == 0) {
      buf = "audio/basic";
    } else if (strcmp(dot, ".midi") == 0 || strcmp(dot, ".mid") == 0) {
      buf = "audio/midi";
    } else if (strcmp(dot, ".mp3") == 0 || strcmp(dot, ".mp2") == 0) {
      buf = "audio/x-mpeg";
    } else if (strcmp(dot, ".rm") == 0 || strcmp(dot, ".rmvb") == 0 || strcmp(dot, ".rmm") == 0) {
      buf = "audio/x-pn-realaudio";
    } else if (strcmp(dot, ".avi") == 0) {
      buf = "video/x-msvideo";
    } else if (strcmp(dot, ".3gp") == 0) {
      buf = "video/3gpp";
    } else if (strcmp(dot, ".mov") == 0) {
      buf = "video/quicktime";
    } else if (strcmp(dot, ".wmx") == 0) {
      buf = "video/x-ms-wmx";
    } else if (strcmp(dot, ".asf") == 0 || strcmp(dot, ".asx") == 0) {
      buf = "video/x-ms-asf";
    } else if (strcmp(dot, ".mp4") == 0 || strcmp(dot, ".mpg4") == 0) {
      buf = "video/mp4";
    } else if (strcmp(dot, ".mpe") == 0 || strcmp(dot, ".mpeg") == 0 || strcmp(dot, ".mpg") == 0 || strcmp(dot, ".mpga") == 0) {
      buf = "video/mpeg";
    } else if (strcmp(dot, ".pdf") == 0) {
      buf = "application/pdf";
    } else if (strcmp(dot, ".rtf") == 0) {
      buf = "application/rtf";
    } else if (strcmp(dot, ".doc") == 0 || strcmp(dot, ".dot") == 0) {
      buf = "application/msword";
    } else if (strcmp(dot, ".xls") == 0 || strcmp(dot, ".xla") == 0) {
      buf = "application/msexcel";
    } else if (strcmp(dot, ".hlp") == 0 || strcmp(dot, ".chm") == 0) {
      buf = "application/mshelp";
    } else if (strcmp(dot, ".swf") == 0 || strcmp(dot, ".swfl") == 0 || strcmp(dot, ".cab") == 0) {
      buf = "application/x-shockwave-flash";
    } else if (strcmp(dot, ".ppt") == 0 || strcmp(dot, ".ppz") == 0 || strcmp(dot, ".pps") == 0 || strcmp(dot, ".pot") == 0) {
      buf = "application/mspowerpoint";
    } else if (strcmp(dot, ".zip") == 0) {
      buf = "application/zip";
    } else if (strcmp(dot, ".rar") == 0) {
      buf = "application/x-rar-compressed";
    } else if (strcmp(dot, ".gz") == 0) {
      buf = "application/x-gzip";
    } else if (strcmp(dot, ".jar") == 0) {
      buf = "application/java-archive";
    } else if (strcmp(dot, ".tgz") == 0 || strcmp(dot, ".tar") == 0) {
      buf = "application/x-tar";
    } else {
      buf = "application/octet-stream";
    }
    strcpy(ret, buf);
  }
}
```