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

```asm
<get_mime_type>:
  endbr64
  push   %rbx
  mov    $0x2e,%esi
  call   <strrchr@plt>
  mov    %rax,%rbx
  lea    D176(%rip),%rax
  test   %rbx,%rbx
  je     L19
  lea    D234(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D150(%rip),%rax
  test   %rdx,%rdx
  jne    L127
L19:
  pop    %rbx
  ret
L127:
  lea    D310(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D150(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D160(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D339(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D341(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D339(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D73(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D339(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D184(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D176(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D236(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D269(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D117(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D67(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D346(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D263(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D204(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D187(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D225(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D142(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D26(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D300(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D159(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D271(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D241(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D309(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D24(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D309(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D343(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  lea    D235(%rip),%rax
  test   %rdx,%rdx
  je     L19
  lea    D179(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  lea    D176(%rip),%rax
  jmp    L19
```

tool_calls: name: unpack_data
arguments: label: D176
data_type: string
name: unpack_data
arguments: label: D234
data_type: string
name: unpack_data
arguments: label: D150
data_type: string
name: unpack_data
arguments: label: D310
data_type: string
name: unpack_data
arguments: label: D160
data_type: string
name: unpack_data
arguments: label: D339
data_type: string
name: unpack_data
arguments: label: D341
data_type: string
name: unpack_data
arguments: label: D73
data_type: string
name: unpack_data
arguments: label: D184
data_type: string
name: unpack_data
arguments: label: D236
data_type: string
name: unpack_data
arguments: label: D269
data_type: string
name: unpack_data
arguments: label: D117
data_type: string
name: unpack_data
arguments: label: D67
data_type: string
name: unpack_data
arguments: label: D346
data_type: string
name: unpack_data
arguments: label: D263
data_type: string
name: unpack_data
arguments: label: D204
data_type: string
name: unpack_data
arguments: label: D187
data_type: string
name: unpack_data
arguments: label: D225
data_type: string
name: unpack_data
arguments: label: D142
data_type: string
name: unpack_data
arguments: label: D26
data_type: string
name: unpack_data
arguments: label: D300
data_type: string
name: unpack_data
arguments: label: D159
data_type: string
name: unpack_data
arguments: label: D271
data_type: string
name: unpack_data
arguments: label: D241
data_type: string
name: unpack_data
arguments: label: D309
data_type: string
name: unpack_data
arguments: label: D24
data_type: string
name: unpack_data
arguments: label: D343
data_type: string
name: unpack_data
arguments: label: D235
data_type: string
name: unpack_data
arguments: label: D179
data_type: string

tool: D176: text/plain

tool: D234: .html

tool: D150: text/html

tool: D310: .htm

tool: D160: .jpg

tool: D339: image/jpeg

tool: D341: .jpeg

tool: D73: .JPG

tool: D184: .txt

tool: D236: .csv

tool: D269: text/csv

tool: D117: .gif

tool: D67: image/gif

tool: D346: .png

tool: D263: image/png

tool: D204: .css

tool: D187: text/css

tool: D225: .au

tool: D142: audio/basic

tool: D26: .wav

tool: D300: audio/wav

tool: D159: .avi

tool: D271: video/x-msvideo

tool: D241: .mpeg

tool: D309: video/mpeg

tool: D24: .mpg

tool: D343: .mp3

tool: D235: audio/mpeg

tool: D179: .cgi

assistant: ```c
char *get_mime_type(char *name) {
  char *ext = strrchr(name, '.');
  if (!ext)
    return "text/plain";
  if (strcmp(ext, ".html") == 0 || strcmp(ext, ".htm") == 0)
    return "text/html";
  if (strcmp(ext, ".jpg") == 0 || strcmp(ext, ".jpeg") == 0 || strcmp(ext, ".JPG") == 0)
    return "image/jpeg";
  if (strcmp(ext, ".txt") == 0)
    return "text/plain";
  if (strcmp(ext, ".csv") == 0)
    return "text/csv";
  if (strcmp(ext, ".gif") == 0)
    return "image/gif";
  if (strcmp(ext, ".png") == 0)
    return "image/png";
  if (strcmp(ext, ".css") == 0)
    return "text/css";
  if (strcmp(ext, ".au") == 0)
    return "audio/basic";
  if (strcmp(ext, ".wav") == 0)
    return "audio/wav";
  if (strcmp(ext, ".avi") == 0)
    return "video/x-msvideo";
  if (strcmp(ext, ".mpeg") == 0 || strcmp(ext, ".mpg") == 0)
    return "video/mpeg";
  if (strcmp(ext, ".mp3") == 0)
    return "audio/mpeg";
  if (strcmp(ext, ".cgi") == 0)
    return "text/plain";
  return "text/plain";
}
```