user: Demonstrate the C code that generates the assembly output below:

```asm
<MimeTypeToFileExtension>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D117(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L194
  lea    D32(%rip),%rax
  jmp    L187
L194:
  mov    -0x8(%rbp),%rax
  lea    D169(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L48
  lea    D97(%rip),%rax
  jmp    L187
L48:
  mov    -0x8(%rbp),%rax
  lea    D95(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L202
  lea    D80(%rip),%rax
  jmp    L187
L202:
  mov    -0x8(%rbp),%rax
  lea    D158(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L33
  lea    D203(%rip),%rax
  jmp    L187
L33:
  mov    -0x8(%rbp),%rax
  lea    D133(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L231
  lea    D98(%rip),%rax
  jmp    L187
L231:
  mov    -0x8(%rbp),%rax
  lea    D5(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L170
  lea    D168(%rip),%rax
  jmp    L187
L170:
  mov    -0x8(%rbp),%rax
  lea    D24(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L168
  lea    D138(%rip),%rax
  jmp    L187
L168:
  mov    -0x8(%rbp),%rax
  lea    D34(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L87
  lea    D79(%rip),%rax
  jmp    L187
L87:
  mov    -0x8(%rbp),%rax
  lea    D86(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L1
  lea    D241(%rip),%rax
  jmp    L187
L1:
  mov    -0x8(%rbp),%rax
  lea    D86(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L66
  lea    D240(%rip),%rax
  jmp    L187
L66:
  mov    -0x8(%rbp),%rax
  lea    D200(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <stricmp@plt>
  test   %rax,%rax
  jne    L128
  lea    D132(%rip),%rax
  jmp    L187
L128:
  mov    -0x8(%rbp),%rax
  lea    D128(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmpi@plt>
  test   %rax,%rax
  jne    L175
  lea    D115(%rip),%rax
  jmp    L187
L175:
  lea    D149(%rip),%rax
L187:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D117
type: string
name: read_data
arguments: data_tag: D32
type: string
name: read_data
arguments: data_tag: D169
type: string
name: read_data
arguments: data_tag: D97
type: string
name: read_data
arguments: data_tag: D95
type: string
name: read_data
arguments: data_tag: D80
type: string
name: read_data
arguments: data_tag: D158
type: string
name: read_data
arguments: data_tag: D203
type: string
name: read_data
arguments: data_tag: D133
type: string
name: read_data
arguments: data_tag: D98
type: string
name: read_data
arguments: data_tag: D5
type: string
name: read_data
arguments: data_tag: D168
type: string
name: read_data
arguments: data_tag: D24
type: string
name: read_data
arguments: data_tag: D138
type: string
name: read_data
arguments: data_tag: D34
type: string
name: read_data
arguments: data_tag: D79
type: string
name: read_data
arguments: data_tag: D86
type: string
name: read_data
arguments: data_tag: D241
type: string
name: read_data
arguments: data_tag: D240
type: string
name: read_data
arguments: data_tag: D200
type: string
name: read_data
arguments: data_tag: D132
type: string
name: read_data
arguments: data_tag: D128
type: string
name: read_data
arguments: data_tag: D115
type: string
name: read_data
arguments: data_tag: D149
type: string

tool: D117: audio/mpeg

tool: D32: .mp3

tool: D169: audio/x-ms-wma

tool: D97: .wma

tool: D95: audio/x-ogg

tool: D80: .ogg

tool: D158: audio/x-ms-asx

tool: D203: .asx

tool: D133: video/x-ms-asf

tool: D98: .asf

tool: D5: video/x-ms-wmv

tool: D168: .wmv

tool: D24: video/mpeg

tool: D138: .mpg

tool: D34: video/quicktime

tool: D79: .mov

tool: D86: image/jpeg

tool: D241: .jpg

tool: D240: .jpeg

tool: D200: image/bmp

tool: D132: .bmp

tool: D128: audio/mpegurl

tool: D115: .m3u

tool: D149: .bin

assistant: ```c
char *MimeTypeToFileExtension(char *mime_type) {
  if (stricmp(mime_type, "audio/mpeg") == 0) {
    return ".mp3";
  } else if (stricmp(mime_type, "audio/x-ms-wma") == 0) {
    return ".wma";
  } else if (stricmp(mime_type, "audio/x-ogg") == 0) {
    return ".ogg";
  } else if (stricmp(mime_type, "audio/x-ms-asx") == 0) {
    return ".asx";
  } else if (stricmp(mime_type, "video/x-ms-asf") == 0) {
    return ".asf";
  } else if (stricmp(mime_type, "video/x-ms-wmv") == 0) {
    return ".wmv";
  } else if (stricmp(mime_type, "video/mpeg") == 0) {
    return ".mpg";
  } else if (stricmp(mime_type, "video/quicktime") == 0) {
    return ".mov";
  } else if (stricmp(mime_type, "image/jpeg") == 0) {
    return ".jpg";
  } else if (stricmp(mime_type, "image/jpeg") == 0) {
    return ".jpeg";
  } else if (stricmp(mime_type, "image/bmp") == 0) {
    return ".bmp";
  } else if (strcmpi(mime_type, "audio/mpegurl") == 0) {
    return ".m3u";
  }
  return ".bin";
}
```