user: Please show me the C implementation that matches the assembly code listed below:

```asm
<mime_content_type>:
  endbr64
  push   %r13
  push   %r12
  mov    %rsi,%r12
  mov    $0x2e,%esi
  push   %rbp
  call   <strrchr@plt>
  lea    D560(%rip),%rsi
  test   %rax,%rax
  je     L33
  lea    D794(%rip),%rsi
  mov    %rax,%rdi
  mov    %rax,%rbp
  call   <strcmp@plt>
  lea    D235(%rip),%r13
  test   %rax,%rax
  jne    L68
L149:
  mov    %r13,%rsi
L33:
  pop    %rbp
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1070 <strcpy@plt>
L68:
  lea    D604(%rip),%rsi
  mov    %rbp,%rdi
  lea    D63(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D252(%rip),%rsi
  mov    %rbp,%rdi
  lea    D452(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L30
L161:
  lea    D679(%rip),%r13
  jmp    L149
L30:
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  lea    D692(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L253
L521:
  lea    D640(%rip),%r13
  jmp    L149
L253:
  lea    D642(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L521
  lea    D540(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L521
  lea    D292(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L42
L168:
  lea    D890(%rip),%r13
  jmp    L149
L42:
  lea    D99(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L168
  lea    D918(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L168
  lea    D531(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L168
  lea    D609(%rip),%rsi
  mov    %rbp,%rdi
  lea    D659(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D976(%rip),%rsi
  mov    %rbp,%rdi
  lea    D457(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D391(%rip),%rsi
  mov    %rbp,%rdi
  lea    D474(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D260(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L202
L315:
  lea    D1004(%rip),%r13
  jmp    L149
L202:
  lea    D298(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L315
  lea    D344(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L315
  lea    D796(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L315
  lea    D82(%rip),%rsi
  mov    %rbp,%rdi
  lea    D83(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D187(%rip),%rsi
  mov    %rbp,%rdi
  lea    D247(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D401(%rip),%rsi
  mov    %rbp,%rdi
  lea    D108(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D639(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L552
L696:
  lea    D977(%rip),%r13
  jmp    L149
L552:
  lea    D446(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L696
  lea    D209(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L550
L723:
  lea    D483(%rip),%r13
  jmp    L149
L550:
  lea    D382(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L723
  lea    D670(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L163
L142:
  lea    D800(%rip),%r13
  jmp    L149
L163:
  lea    D633(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L142
  lea    D703(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L484
L451:
  lea    D678(%rip),%r13
  jmp    L149
L484:
  lea    D1016(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L451
  lea    D309(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L451
  lea    D635(%rip),%rsi
  mov    %rbp,%rdi
  lea    D257(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D62(%rip),%rsi
  mov    %rbp,%rdi
  lea    D380(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D786(%rip),%rsi
  mov    %rbp,%rdi
  lea    D290(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D759(%rip),%rsi
  mov    %rbp,%rdi
  lea    D522(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D556(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L96
L758:
  lea    D157(%rip),%r13
  jmp    L149
L96:
  lea    D201(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L758
  lea    D484(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L684
L36:
  lea    D686(%rip),%r13
  jmp    L149
L684:
  lea    D471(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L36
  lea    D568(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L3
L569:
  lea    D239(%rip),%r13
  jmp    L149
L3:
  lea    D928(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L569
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L569
  lea    D721(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L569
  lea    D2(%rip),%rsi
  mov    %rbp,%rdi
  lea    D44(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D843(%rip),%rsi
  mov    %rbp,%rdi
  lea    D1007(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D469(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L200
L54:
  lea    D215(%rip),%r13
  jmp    L149
L200:
  lea    D532(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L54
  lea    D981(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L8
L433:
  lea    D566(%rip),%r13
  jmp    L149
L8:
  lea    D765(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L433
  lea    D55(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L602
L432:
  lea    D255(%rip),%r13
  jmp    L149
L602:
  lea    D608(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L432
  lea    D814(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L387
L752:
  lea    D861(%rip),%r13
  jmp    L149
L387:
  lea    D644(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L752
  lea    D726(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L752
  lea    D125(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L562
L23:
  lea    D646(%rip),%r13
  jmp    L149
L562:
  lea    D139(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L23
  lea    D755(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L23
  lea    D653(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L23
  lea    D865(%rip),%rsi
  mov    %rbp,%rdi
  lea    D564(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D818(%rip),%rsi
  mov    %rbp,%rdi
  lea    D898(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D941(%rip),%rsi
  mov    %rbp,%rdi
  lea    D72(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D722(%rip),%rsi
  mov    %rbp,%rdi
  lea    D323(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D16(%rip),%rsi
  mov    %rbp,%rdi
  lea    D272(%rip),%r13
  call   <strcmp@plt>
  test   %rax,%rax
  je     L149
  lea    D808(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  lea    D560(%rip),%rax
  cmovne %rax,%r13
  jmp    L149
```

tool_calls: name: retrieve_data
arguments: data_label: D560
type: string
name: retrieve_data
arguments: data_label: D794
type: string
name: retrieve_data
arguments: data_label: D235
type: string
name: retrieve_data
arguments: data_label: D604
type: string
name: retrieve_data
arguments: data_label: D63
type: string
name: retrieve_data
arguments: data_label: D252
type: string
name: retrieve_data
arguments: data_label: D452
type: string
name: retrieve_data
arguments: data_label: D67
type: string
name: retrieve_data
arguments: data_label: D679
type: string
name: retrieve_data
arguments: data_label: D137
type: string
name: retrieve_data
arguments: data_label: D692
type: string
name: retrieve_data
arguments: data_label: D640
type: string
name: retrieve_data
arguments: data_label: D642
type: string
name: retrieve_data
arguments: data_label: D540
type: string
name: retrieve_data
arguments: data_label: D292
type: string
name: retrieve_data
arguments: data_label: D890
type: string
name: retrieve_data
arguments: data_label: D99
type: string
name: retrieve_data
arguments: data_label: D918
type: string
name: retrieve_data
arguments: data_label: D531
type: string
name: retrieve_data
arguments: data_label: D609
type: string
name: retrieve_data
arguments: data_label: D659
type: string
name: retrieve_data
arguments: data_label: D976
type: string
name: retrieve_data
arguments: data_label: D457
type: string
name: retrieve_data
arguments: data_label: D391
type: string
name: retrieve_data
arguments: data_label: D474
type: string
name: retrieve_data
arguments: data_label: D260
type: string
name: retrieve_data
arguments: data_label: D1004
type: string
name: retrieve_data
arguments: data_label: D298
type: string
name: retrieve_data
arguments: data_label: D344
type: string
name: retrieve_data
arguments: data_label: D796
type: string
name: retrieve_data
arguments: data_label: D82
type: string
name: retrieve_data
arguments: data_label: D83
type: string
name: retrieve_data
arguments: data_label: D187
type: string
name: retrieve_data
arguments: data_label: D247
type: string
name: retrieve_data
arguments: data_label: D401
type: string
name: retrieve_data
arguments: data_label: D108
type: string
name: retrieve_data
arguments: data_label: D639
type: string
name: retrieve_data
arguments: data_label: D977
type: string
name: retrieve_data
arguments: data_label: D446
type: string
name: retrieve_data
arguments: data_label: D209
type: string
name: retrieve_data
arguments: data_label: D483
type: string
name: retrieve_data
arguments: data_label: D382
type: string
name: retrieve_data
arguments: data_label: D670
type: string
name: retrieve_data
arguments: data_label: D800
type: string
name: retrieve_data
arguments: data_label: D633
type: string
name: retrieve_data
arguments: data_label: D703
type: string
name: retrieve_data
arguments: data_label: D678
type: string
name: retrieve_data
arguments: data_label: D1016
type: string
name: retrieve_data
arguments: data_label: D309
type: string
name: retrieve_data
arguments: data_label: D635
type: string
name: retrieve_data
arguments: data_label: D257
type: string
name: retrieve_data
arguments: data_label: D62
type: string
name: retrieve_data
arguments: data_label: D380
type: string
name: retrieve_data
arguments: data_label: D786
type: string
name: retrieve_data
arguments: data_label: D290
type: string
name: retrieve_data
arguments: data_label: D759
type: string
name: retrieve_data
arguments: data_label: D522
type: string
name: retrieve_data
arguments: data_label: D556
type: string
name: retrieve_data
arguments: data_label: D157
type: string
name: retrieve_data
arguments: data_label: D201
type: string
name: retrieve_data
arguments: data_label: D484
type: string
name: retrieve_data
arguments: data_label: D686
type: string
name: retrieve_data
arguments: data_label: D471
type: string
name: retrieve_data
arguments: data_label: D568
type: string
name: retrieve_data
arguments: data_label: D239
type: string
name: retrieve_data
arguments: data_label: D928
type: string
name: retrieve_data
arguments: data_label: D39
type: string
name: retrieve_data
arguments: data_label: D721
type: string
name: retrieve_data
arguments: data_label: D2
type: string
name: retrieve_data
arguments: data_label: D44
type: string
name: retrieve_data
arguments: data_label: D843
type: string
name: retrieve_data
arguments: data_label: D1007
type: string
name: retrieve_data
arguments: data_label: D469
type: string
name: retrieve_data
arguments: data_label: D215
type: string
name: retrieve_data
arguments: data_label: D532
type: string
name: retrieve_data
arguments: data_label: D981
type: string
name: retrieve_data
arguments: data_label: D566
type: string
name: retrieve_data
arguments: data_label: D765
type: string
name: retrieve_data
arguments: data_label: D55
type: string
name: retrieve_data
arguments: data_label: D255
type: string
name: retrieve_data
arguments: data_label: D608
type: string
name: retrieve_data
arguments: data_label: D814
type: string
name: retrieve_data
arguments: data_label: D861
type: string
name: retrieve_data
arguments: data_label: D644
type: string
name: retrieve_data
arguments: data_label: D726
type: string
name: retrieve_data
arguments: data_label: D125
type: string
name: retrieve_data
arguments: data_label: D646
type: string
name: retrieve_data
arguments: data_label: D139
type: string
name: retrieve_data
arguments: data_label: D755
type: string
name: retrieve_data
arguments: data_label: D653
type: string
name: retrieve_data
arguments: data_label: D865
type: string
name: retrieve_data
arguments: data_label: D564
type: string
name: retrieve_data
arguments: data_label: D818
type: string
name: retrieve_data
arguments: data_label: D898
type: string
name: retrieve_data
arguments: data_label: D941
type: string
name: retrieve_data
arguments: data_label: D72
type: string
name: retrieve_data
arguments: data_label: D722
type: string
name: retrieve_data
arguments: data_label: D323
type: string
name: retrieve_data
arguments: data_label: D16
type: string
name: retrieve_data
arguments: data_label: D272
type: string
name: retrieve_data
arguments: data_label: D808
type: string

tool: D560: application/octet-stream

tool: D794: .txt

tool: D235: text/plain

tool: D604: .css

tool: D63: text/css

tool: D252: .js

tool: D452: text/javascript

tool: D67: .xml

tool: D679: text/xml

tool: D137: .xsl

tool: D692: .xhtm

tool: D640: application/xhtml+xml

tool: D642: .xhtml

tool: D540: .xht

tool: D292: .html

tool: D890: text/html

tool: D99: .htm

tool: D918: .shtml

tool: D531: .hts

tool: D609: .gif

tool: D659: image/gif

tool: D976: .png

tool: D457: image/png

tool: D391: .bmp

tool: D474: application/x-MS-bmp

tool: D260: .jpg

tool: D1004: image/jpeg

tool: D298: .jpeg

tool: D344: .jpe

tool: D796: .jpz

tool: D82: .wav

tool: D83: audio/wav

tool: D187: .wma

tool: D247: audio/x-ms-wma

tool: D401: .wmv

tool: D108: audio/x-ms-wmv

tool: D639: .au

tool: D977: audio/basic

tool: D446: .snd

tool: D209: .midi

tool: D483: audio/midi

tool: D382: .mid

tool: D670: .mp3

tool: D800: audio/x-mpeg

tool: D633: .mp2

tool: D703: .rm

tool: D678: audio/x-pn-realaudio

tool: D1016: .rmvb

tool: D309: .rmm

tool: D635: .avi

tool: D257: video/x-msvideo

tool: D62: .3gp

tool: D380: video/3gpp

tool: D786: .mov

tool: D290: video/quicktime

tool: D759: .wmx

tool: D522: video/x-ms-wmx

tool: D556: .asf

tool: D157: video/x-ms-asf

tool: D201: .asx

tool: D484: .mp4

tool: D686: video/mp4

tool: D471: .mpg4

tool: D568: .mpe

tool: D239: video/mpeg

tool: D928: .mpeg

tool: D39: .mpg

tool: D721: .mpga

tool: D2: .pdf

tool: D44: application/pdf

tool: D843: .rtf

tool: D1007: application/rtf

tool: D469: .doc

tool: D215: application/msword

tool: D532: .dot

tool: D981: .xls

tool: D566: application/msexcel

tool: D765: .xla

tool: D55: .hlp

tool: D255: application/mshelp

tool: D608: .chm

tool: D814: .swf

tool: D861: application/x-shockwave-flash

tool: D644: .swfl

tool: D726: .cab

tool: D125: .ppt

tool: D646: application/mspowerpoint

tool: D139: .ppz

tool: D755: .pps

tool: D653: .pot

tool: D865: .zip

tool: D564: application/zip

tool: D818: .rar

tool: D898: application/x-rar-compressed

tool: D941: .gz

tool: D72: application/x-gzip

tool: D722: .jar

tool: D323: application/java-archive

tool: D16: .tgz

tool: D272: application/x-tar

tool: D808: .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);
  }
}
```