user: 这段汇编代码用C语言表示是什么样的?

```asm
<str2fmt>:
  endbr64
  push   %r15
  lea    D160(%rip),%rsi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  sub    $0x18,%rsp
  call   <strstr@plt>
  test   %rax,%rax
  je     L133
L49:
  movl   $0x2,0x8(%rsp)
  mov    $0x8,%r12d
  mov    $0x10,%ebx
  mov    $0x20,%r13d
  movl   $0x0,0xc(%rsp)
  mov    $0x18,%r14d
  mov    $0x4,%r15d
L202:
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L152
L208:
  add    $0x18,%rsp
  mov    %r12d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L152:
  lea    D16(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L208
  lea    D110(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L248
L188:
  mov    %ebx,%r12d
  jmp    L208
  nopl   (%rax)
L133:
  lea    D71(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L49
  lea    D11(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L73
L67:
  movl   $0x3,0x8(%rsp)
  mov    $0x9,%r12d
  mov    $0x11,%ebx
  mov    $0x21,%r13d
  movl   $0x1,0xc(%rsp)
  mov    $0x19,%r14d
  mov    $0x5,%r15d
  jmp    L202
  nopw   0x0(%rax,%rax,1)
L248:
  lea    D161(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L188
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L209
L92:
  mov    %r13d,%r12d
  jmp    L208
  nopl   0x0(%rax)
L209:
  lea    D163(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L92
  lea    D18(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L77
  lea    D26(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L77
  lea    D98(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L148
  lea    D44(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L148
  lea    D162(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L121
  lea    D84(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L121
  lea    D96(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L206
L219:
  mov    0x8(%rsp),%r12d
  jmp    L208
  cs nopw 0x0(%rax,%rax,1)
L73:
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  jmp    L67
  nopl   0x0(%rax)
L77:
  mov    %r14d,%r12d
  jmp    L208
L148:
  mov    $0x1,%r12d
  jmp    L208
L121:
  mov    %r15d,%r12d
  jmp    L208
L206:
  lea    D157(%rip),%rsi
  mov    %rbp,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L219
  mov    0xc(%rsp),%r12d
  jmp    L208
```

tool_calls: name: disassemble_data
arguments: data_label: D160
datatype: string
name: disassemble_data
arguments: data_label: D137
datatype: string
name: disassemble_data
arguments: data_label: D16
datatype: string
name: disassemble_data
arguments: data_label: D110
datatype: string
name: disassemble_data
arguments: data_label: D71
datatype: string
name: disassemble_data
arguments: data_label: D11
datatype: string
name: disassemble_data
arguments: data_label: D161
datatype: string
name: disassemble_data
arguments: data_label: D67
datatype: string
name: disassemble_data
arguments: data_label: D163
datatype: string
name: disassemble_data
arguments: data_label: D18
datatype: string
name: disassemble_data
arguments: data_label: D26
datatype: string
name: disassemble_data
arguments: data_label: D98
datatype: string
name: disassemble_data
arguments: data_label: D44
datatype: string
name: disassemble_data
arguments: data_label: D162
datatype: string
name: disassemble_data
arguments: data_label: D84
datatype: string
name: disassemble_data
arguments: data_label: D96
datatype: string
name: disassemble_data
arguments: data_label: D91
datatype: string
name: disassemble_data
arguments: data_label: D157
datatype: string

tool: D160: be

tool: D137: mulaw

tool: D16: MULAW

tool: D110: alaw

tool: D71: BE

tool: D11: le

tool: D161: ALAW

tool: D67: ac3

tool: D163: AC3

tool: D18: mpeg2

tool: D26: MPEG2

tool: D98: imaadpcm

tool: D44: IMAADPCM

tool: D162: float

tool: D84: FLOAT

tool: D96: unsigned

tool: D91: LE

tool: D157: UNSIGNED

assistant: ```c
int str2fmt(char *str) {
  int format = 0;
  if (strstr(str, "be") || strstr(str, "BE"))
    format |= (0 << 0);
  else if (strstr(str, "le") || strstr(str, "LE"))
    format |= (1 << 0);
  else
    format |= (1 << 0);
  if (strstr(str, "mulaw") || strstr(str, "MULAW")) {
    format |= (1 << 3);
    return format;
  }
  if (strstr(str, "alaw") || strstr(str, "ALAW")) {
    format |= (2 << 3);
    return format;
  }
  if (strstr(str, "ac3") || strstr(str, "AC3")) {
    format |= (4 << 3);
    return format;
  }
  if (strstr(str, "mpeg2") || strstr(str, "MPEG2")) {
    format |= (3 << 3);
    return format;
  }
  if (strstr(str, "imaadpcm") || strstr(str, "IMAADPCM")) {
    format |= (1 << 0) | (0 << 1);
    return format;
  }
  if (strstr(str, "float") || strstr(str, "FLOAT")) {
    format |= (1 << 2);
    return format;
  } else
    format |= (0 << 2);
  if (strstr(str, "unsigned") || strstr(str, "UNSIGNED"))
    format |= (1 << 1);
  else
    format |= (0 << 1);
  return format;
}
```