user: Translate the below assembly code into C programming language:

```asm
<mime_content_type>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  mov    $0x2e,%esi
  mov    %rax,%rdi
  call   <strrchr@plt>
  mov    %rax,-0x8(%rbp)
  cmpq   $0x0,-0x8(%rbp)
  jne    L665
  lea    D773(%rip),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x10(%rbp),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L128
L665:
  mov    -0x8(%rbp),%rax
  lea    D835(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L335
  lea    D563(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L335:
  mov    -0x8(%rbp),%rax
  lea    D926(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L556
  lea    D434(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L556:
  mov    -0x8(%rbp),%rax
  lea    D946(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L796
  lea    D759(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L796:
  mov    -0x8(%rbp),%rax
  lea    D390(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L338
  mov    -0x8(%rbp),%rax
  lea    D422(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L839
L338:
  lea    D869(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L839:
  mov    -0x8(%rbp),%rax
  lea    D1008(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L350
  mov    -0x8(%rbp),%rax
  lea    D325(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L350
  mov    -0x8(%rbp),%rax
  lea    D318(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L910
L350:
  lea    D230(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L910:
  mov    -0x8(%rbp),%rax
  lea    D321(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L84
  mov    -0x8(%rbp),%rax
  lea    D790(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L84
  mov    -0x8(%rbp),%rax
  lea    D93(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L84
  mov    -0x8(%rbp),%rax
  lea    D407(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L605
L84:
  lea    D761(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L605:
  mov    -0x8(%rbp),%rax
  lea    D809(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L696
  lea    D641(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L696:
  mov    -0x8(%rbp),%rax
  lea    D864(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L637
  lea    D307(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L637:
  mov    -0x8(%rbp),%rax
  lea    D438(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L373
  lea    D458(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L373:
  mov    -0x8(%rbp),%rax
  lea    D143(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L890
  mov    -0x8(%rbp),%rax
  lea    D378(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L890
  mov    -0x8(%rbp),%rax
  lea    D197(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L890
  mov    -0x8(%rbp),%rax
  lea    D494(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L948
L890:
  lea    D726(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L948:
  mov    -0x8(%rbp),%rax
  lea    D992(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L51
  lea    D73(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L51:
  mov    -0x8(%rbp),%rax
  lea    D870(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L344
  lea    D257(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L344:
  mov    -0x8(%rbp),%rax
  lea    D977(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L618
  lea    D679(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L618:
  mov    -0x8(%rbp),%rax
  lea    D531(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L693
  mov    -0x8(%rbp),%rax
  lea    D1014(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L227
L693:
  lea    D691(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L227:
  mov    -0x8(%rbp),%rax
  lea    D521(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L178
  mov    -0x8(%rbp),%rax
  lea    D365(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L783
L178:
  lea    D972(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L783:
  mov    -0x8(%rbp),%rax
  lea    D635(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L773
  mov    -0x8(%rbp),%rax
  lea    D994(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L692
L773:
  lea    D299(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L692:
  mov    -0x8(%rbp),%rax
  lea    D625(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L209
  mov    -0x8(%rbp),%rax
  lea    D674(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L209
  mov    -0x8(%rbp),%rax
  lea    D319(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L955
L209:
  lea    D987(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L955:
  mov    -0x8(%rbp),%rax
  lea    D937(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L667
  lea    D389(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L667:
  mov    -0x8(%rbp),%rax
  lea    D362(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L764
  lea    D79(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L764:
  mov    -0x8(%rbp),%rax
  lea    D373(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L744
  lea    D486(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L744:
  mov    -0x8(%rbp),%rax
  lea    D687(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L723
  lea    D817(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L723:
  mov    -0x8(%rbp),%rax
  lea    D122(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L396
  mov    -0x8(%rbp),%rax
  lea    D75(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L753
L396:
  lea    D137(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L753:
  mov    -0x8(%rbp),%rax
  lea    D895(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L15
  mov    -0x8(%rbp),%rax
  lea    D825(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L394
L15:
  lea    D111(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L394:
  mov    -0x8(%rbp),%rax
  lea    D44(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L282
  mov    -0x8(%rbp),%rax
  lea    D199(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L282
  mov    -0x8(%rbp),%rax
  lea    D495(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L282
  mov    -0x8(%rbp),%rax
  lea    D794(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L476
L282:
  lea    D777(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L476:
  mov    -0x8(%rbp),%rax
  lea    D981(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L193
  lea    D999(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L193:
  mov    -0x8(%rbp),%rax
  lea    D269(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L184
  lea    D671(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L184:
  mov    -0x8(%rbp),%rax
  lea    D471(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L852
  mov    -0x8(%rbp),%rax
  lea    D912(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L512
L852:
  lea    D732(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L512:
  mov    -0x8(%rbp),%rax
  lea    D646(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x8(%rbp),%rax
  lea    D426(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L189
L100:
  lea    D634(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L189:
  mov    -0x8(%rbp),%rax
  lea    D497(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L155
  mov    -0x8(%rbp),%rax
  lea    D514(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L315
L155:
  lea    D616(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L315:
  mov    -0x8(%rbp),%rax
  lea    D510(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L599
  mov    -0x8(%rbp),%rax
  lea    D632(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L599
  mov    -0x8(%rbp),%rax
  lea    D958(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L987
L599:
  lea    D576(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L987:
  mov    -0x8(%rbp),%rax
  lea    D685(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L823
  mov    -0x8(%rbp),%rax
  lea    D1009(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L823
  mov    -0x8(%rbp),%rax
  lea    D381(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L823
  mov    -0x8(%rbp),%rax
  lea    D245(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L481
L823:
  lea    D336(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L481:
  mov    -0x8(%rbp),%rax
  lea    D573(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L791
  lea    D897(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L791:
  mov    -0x8(%rbp),%rax
  lea    D746(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L973
  lea    D775(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L973:
  mov    -0x8(%rbp),%rax
  lea    D808(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L572
  lea    D186(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L572:
  mov    -0x8(%rbp),%rax
  lea    D702(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L958
  lea    D803(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L958:
  mov    -0x8(%rbp),%rax
  lea    D892(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L751
  mov    -0x8(%rbp),%rax
  lea    D739(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L461
L751:
  lea    D879(%rip),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L133
L461:
  lea    D773(%rip),%rax
  mov    %rax,-0x10(%rbp)
L133:
  mov    -0x10(%rbp),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
L128:
  nop
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D773
datatype: string
name: retrieve_data
arguments: data_tag: D835
datatype: string
name: retrieve_data
arguments: data_tag: D563
datatype: string
name: retrieve_data
arguments: data_tag: D926
datatype: string
name: retrieve_data
arguments: data_tag: D434
datatype: string
name: retrieve_data
arguments: data_tag: D946
datatype: string
name: retrieve_data
arguments: data_tag: D759
datatype: string
name: retrieve_data
arguments: data_tag: D390
datatype: string
name: retrieve_data
arguments: data_tag: D422
datatype: string
name: retrieve_data
arguments: data_tag: D869
datatype: string
name: retrieve_data
arguments: data_tag: D1008
datatype: string
name: retrieve_data
arguments: data_tag: D325
datatype: string
name: retrieve_data
arguments: data_tag: D318
datatype: string
name: retrieve_data
arguments: data_tag: D230
datatype: string
name: retrieve_data
arguments: data_tag: D321
datatype: string
name: retrieve_data
arguments: data_tag: D790
datatype: string
name: retrieve_data
arguments: data_tag: D93
datatype: string
name: retrieve_data
arguments: data_tag: D407
datatype: string
name: retrieve_data
arguments: data_tag: D761
datatype: string
name: retrieve_data
arguments: data_tag: D809
datatype: string
name: retrieve_data
arguments: data_tag: D641
datatype: string
name: retrieve_data
arguments: data_tag: D864
datatype: string
name: retrieve_data
arguments: data_tag: D307
datatype: string
name: retrieve_data
arguments: data_tag: D438
datatype: string
name: retrieve_data
arguments: data_tag: D458
datatype: string
name: retrieve_data
arguments: data_tag: D143
datatype: string
name: retrieve_data
arguments: data_tag: D378
datatype: string
name: retrieve_data
arguments: data_tag: D197
datatype: string
name: retrieve_data
arguments: data_tag: D494
datatype: string
name: retrieve_data
arguments: data_tag: D726
datatype: string
name: retrieve_data
arguments: data_tag: D992
datatype: string
name: retrieve_data
arguments: data_tag: D73
datatype: string
name: retrieve_data
arguments: data_tag: D870
datatype: string
name: retrieve_data
arguments: data_tag: D257
datatype: string
name: retrieve_data
arguments: data_tag: D977
datatype: string
name: retrieve_data
arguments: data_tag: D679
datatype: string
name: retrieve_data
arguments: data_tag: D531
datatype: string
name: retrieve_data
arguments: data_tag: D1014
datatype: string
name: retrieve_data
arguments: data_tag: D691
datatype: string
name: retrieve_data
arguments: data_tag: D521
datatype: string
name: retrieve_data
arguments: data_tag: D365
datatype: string
name: retrieve_data
arguments: data_tag: D972
datatype: string
name: retrieve_data
arguments: data_tag: D635
datatype: string
name: retrieve_data
arguments: data_tag: D994
datatype: string
name: retrieve_data
arguments: data_tag: D299
datatype: string
name: retrieve_data
arguments: data_tag: D625
datatype: string
name: retrieve_data
arguments: data_tag: D674
datatype: string
name: retrieve_data
arguments: data_tag: D319
datatype: string
name: retrieve_data
arguments: data_tag: D987
datatype: string
name: retrieve_data
arguments: data_tag: D937
datatype: string
name: retrieve_data
arguments: data_tag: D389
datatype: string
name: retrieve_data
arguments: data_tag: D362
datatype: string
name: retrieve_data
arguments: data_tag: D79
datatype: string
name: retrieve_data
arguments: data_tag: D373
datatype: string
name: retrieve_data
arguments: data_tag: D486
datatype: string
name: retrieve_data
arguments: data_tag: D687
datatype: string
name: retrieve_data
arguments: data_tag: D817
datatype: string
name: retrieve_data
arguments: data_tag: D122
datatype: string
name: retrieve_data
arguments: data_tag: D75
datatype: string
name: retrieve_data
arguments: data_tag: D137
datatype: string
name: retrieve_data
arguments: data_tag: D895
datatype: string
name: retrieve_data
arguments: data_tag: D825
datatype: string
name: retrieve_data
arguments: data_tag: D111
datatype: string
name: retrieve_data
arguments: data_tag: D44
datatype: string
name: retrieve_data
arguments: data_tag: D199
datatype: string
name: retrieve_data
arguments: data_tag: D495
datatype: string
name: retrieve_data
arguments: data_tag: D794
datatype: string
name: retrieve_data
arguments: data_tag: D777
datatype: string
name: retrieve_data
arguments: data_tag: D981
datatype: string
name: retrieve_data
arguments: data_tag: D999
datatype: string
name: retrieve_data
arguments: data_tag: D269
datatype: string
name: retrieve_data
arguments: data_tag: D671
datatype: string
name: retrieve_data
arguments: data_tag: D471
datatype: string
name: retrieve_data
arguments: data_tag: D912
datatype: string
name: retrieve_data
arguments: data_tag: D732
datatype: string
name: retrieve_data
arguments: data_tag: D646
datatype: string
name: retrieve_data
arguments: data_tag: D426
datatype: string
name: retrieve_data
arguments: data_tag: D634
datatype: string
name: retrieve_data
arguments: data_tag: D497
datatype: string
name: retrieve_data
arguments: data_tag: D514
datatype: string
name: retrieve_data
arguments: data_tag: D616
datatype: string
name: retrieve_data
arguments: data_tag: D510
datatype: string
name: retrieve_data
arguments: data_tag: D632
datatype: string
name: retrieve_data
arguments: data_tag: D958
datatype: string
name: retrieve_data
arguments: data_tag: D576
datatype: string
name: retrieve_data
arguments: data_tag: D685
datatype: string
name: retrieve_data
arguments: data_tag: D1009
datatype: string
name: retrieve_data
arguments: data_tag: D381
datatype: string
name: retrieve_data
arguments: data_tag: D245
datatype: string
name: retrieve_data
arguments: data_tag: D336
datatype: string
name: retrieve_data
arguments: data_tag: D573
datatype: string
name: retrieve_data
arguments: data_tag: D897
datatype: string
name: retrieve_data
arguments: data_tag: D746
datatype: string
name: retrieve_data
arguments: data_tag: D775
datatype: string
name: retrieve_data
arguments: data_tag: D808
datatype: string
name: retrieve_data
arguments: data_tag: D186
datatype: string
name: retrieve_data
arguments: data_tag: D702
datatype: string
name: retrieve_data
arguments: data_tag: D803
datatype: string
name: retrieve_data
arguments: data_tag: D892
datatype: string
name: retrieve_data
arguments: data_tag: D739
datatype: string
name: retrieve_data
arguments: data_tag: D879
datatype: string

tool: D773: application/octet-stream

tool: D835: .txt

tool: D563: text/plain

tool: D926: .css

tool: D434: text/css

tool: D946: .js

tool: D759: text/javascript

tool: D390: .xml

tool: D422: .xsl

tool: D869: text/xml

tool: D1008: .xhtm

tool: D325: .xhtml

tool: D318: .xht

tool: D230: application/xhtml+xml

tool: D321: .html

tool: D790: .htm

tool: D93: .shtml

tool: D407: .hts

tool: D761: text/html

tool: D809: .gif

tool: D641: image/gif

tool: D864: .png

tool: D307: image/png

tool: D438: .bmp

tool: D458: application/x-MS-bmp

tool: D143: .jpg

tool: D378: .jpeg

tool: D197: .jpe

tool: D494: .jpz

tool: D726: image/jpeg

tool: D992: .wav

tool: D73: audio/wav

tool: D870: .wma

tool: D257: audio/x-ms-wma

tool: D977: .wmv

tool: D679: audio/x-ms-wmv

tool: D531: .au

tool: D1014: .snd

tool: D691: audio/basic

tool: D521: .midi

tool: D365: .mid

tool: D972: audio/midi

tool: D635: .mp3

tool: D994: .mp2

tool: D299: audio/x-mpeg

tool: D625: .rm

tool: D674: .rmvb

tool: D319: .rmm

tool: D987: audio/x-pn-realaudio

tool: D937: .avi

tool: D389: video/x-msvideo

tool: D362: .3gp

tool: D79: video/3gpp

tool: D373: .mov

tool: D486: video/quicktime

tool: D687: .wmx

tool: D817: video/x-ms-wmx

tool: D122: .asf

tool: D75: .asx

tool: D137: video/x-ms-asf

tool: D895: .mp4

tool: D825: .mpg4

tool: D111: video/mp4

tool: D44: .mpe

tool: D199: .mpeg

tool: D495: .mpg

tool: D794: .mpga

tool: D777: video/mpeg

tool: D981: .pdf

tool: D999: application/pdf

tool: D269: .rtf

tool: D671: application/rtf

tool: D471: .doc

tool: D912: .dot

tool: D732: application/msword

tool: D646: .xls

tool: D426: .xla

tool: D634: application/msexcel

tool: D497: .hlp

tool: D514: .chm

tool: D616: application/mshelp

tool: D510: .swf

tool: D632: .swfl

tool: D958: .cab

tool: D576: application/x-shockwave-flash

tool: D685: .ppt

tool: D1009: .ppz

tool: D381: .pps

tool: D245: .pot

tool: D336: application/mspowerpoint

tool: D573: .zip

tool: D897: application/zip

tool: D746: .rar

tool: D775: application/x-rar-compressed

tool: D808: .gz

tool: D186: application/x-gzip

tool: D702: .jar

tool: D803: application/java-archive

tool: D892: .tgz

tool: D739: .tar

tool: D879: application/x-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);
  }
}
```