user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<str2opcode>:
  endbr64
  push   %rbp
  lea    D35(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  jne    L255
L51:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L255:
  lea    D140(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L51
  lea    D322(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x3,%eax
  test   %r8,%r8
  je     L51
  lea    D192(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x4,%eax
  test   %r8,%r8
  je     L51
  lea    D212(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x5,%eax
  test   %r8,%r8
  je     L51
  lea    D170(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x6,%eax
  test   %r8,%r8
  je     L51
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x7,%eax
  test   %r8,%r8
  je     L51
  lea    D304(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x8,%eax
  test   %r8,%r8
  je     L51
  lea    D275(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x9,%eax
  test   %r8,%r8
  je     L51
  lea    D165(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xa,%eax
  test   %r8,%r8
  je     L51
  lea    D203(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xb,%eax
  test   %r8,%r8
  je     L51
  lea    D215(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xc,%eax
  test   %r8,%r8
  je     L51
  lea    D160(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xd,%eax
  test   %r8,%r8
  je     L51
  lea    D9(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xe,%eax
  test   %r8,%r8
  je     L51
  lea    D201(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0xf,%eax
  test   %r8,%r8
  je     L51
  lea    D42(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L27
  lea    D281(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L284
  lea    D25(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L294
  lea    D357(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L158
  lea    D206(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L19
  lea    D128(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L129
  lea    D224(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L119
  lea    D148(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L146
  lea    D171(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L176
  lea    D166(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L217
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L102
  lea    D340(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L87
  lea    D136(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  je     L51
  lea    D178(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L308
  lea    D102(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L273
  lea    D265(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L14
  lea    D12(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L134
  lea    D83(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L20
  lea    D124(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L27
  lea    D110(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcasecmp@plt>
  test   %rax,%rax
  je     L284
  mov    %rbp,%rdi
  lea    D142(%rip),%rsi
  call   <strcasecmp@plt>
  pop    %rbp
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x12,%eax
  ret
L27:
  mov    $0x10,%eax
  pop    %rbp
  ret
L284:
  mov    $0x11,%eax
  pop    %rbp
  ret
L294:
  mov    $0x12,%eax
  pop    %rbp
  ret
L19:
  mov    $0x14,%eax
  pop    %rbp
  ret
L158:
  mov    $0x13,%eax
  pop    %rbp
  ret
L176:
  mov    $0x1a,%eax
  pop    %rbp
  ret
L146:
  mov    $0x17,%eax
  pop    %rbp
  ret
L119:
  mov    $0x16,%eax
  pop    %rbp
  ret
L129:
  mov    $0x15,%eax
  pop    %rbp
  ret
L20:
  mov    $0xc,%eax
  pop    %rbp
  ret
L134:
  mov    $0xb,%eax
  pop    %rbp
  ret
L14:
  mov    $0xa,%eax
  pop    %rbp
  ret
L273:
  mov    $0x9,%eax
  pop    %rbp
  ret
L308:
  mov    $0x8,%eax
  pop    %rbp
  ret
L87:
  mov    $0x1f,%eax
  pop    %rbp
  ret
L102:
  mov    $0x1e,%eax
  pop    %rbp
  ret
L217:
  mov    $0x1b,%eax
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: tag: D35
type_guessed: string
name: unpack_data
arguments: tag: D140
type_guessed: string
name: unpack_data
arguments: tag: D322
type_guessed: string
name: unpack_data
arguments: tag: D192
type_guessed: string
name: unpack_data
arguments: tag: D212
type_guessed: string
name: unpack_data
arguments: tag: D170
type_guessed: string
name: unpack_data
arguments: tag: D86
type_guessed: string
name: unpack_data
arguments: tag: D304
type_guessed: string
name: unpack_data
arguments: tag: D275
type_guessed: string
name: unpack_data
arguments: tag: D165
type_guessed: string
name: unpack_data
arguments: tag: D203
type_guessed: string
name: unpack_data
arguments: tag: D215
type_guessed: string
name: unpack_data
arguments: tag: D160
type_guessed: string
name: unpack_data
arguments: tag: D9
type_guessed: string
name: unpack_data
arguments: tag: D201
type_guessed: string
name: unpack_data
arguments: tag: D42
type_guessed: string
name: unpack_data
arguments: tag: D281
type_guessed: string
name: unpack_data
arguments: tag: D25
type_guessed: string
name: unpack_data
arguments: tag: D357
type_guessed: string
name: unpack_data
arguments: tag: D206
type_guessed: string
name: unpack_data
arguments: tag: D128
type_guessed: string
name: unpack_data
arguments: tag: D224
type_guessed: string
name: unpack_data
arguments: tag: D148
type_guessed: string
name: unpack_data
arguments: tag: D171
type_guessed: string
name: unpack_data
arguments: tag: D166
type_guessed: string
name: unpack_data
arguments: tag: D30
type_guessed: string
name: unpack_data
arguments: tag: D340
type_guessed: string
name: unpack_data
arguments: tag: D136
type_guessed: string
name: unpack_data
arguments: tag: D178
type_guessed: string
name: unpack_data
arguments: tag: D102
type_guessed: string
name: unpack_data
arguments: tag: D265
type_guessed: string
name: unpack_data
arguments: tag: D12
type_guessed: string
name: unpack_data
arguments: tag: D83
type_guessed: string
name: unpack_data
arguments: tag: D124
type_guessed: string
name: unpack_data
arguments: tag: D110
type_guessed: string
name: unpack_data
arguments: tag: D142
type_guessed: string

tool: D35: set

tool: D140: add

tool: D322: sub

tool: D192: mul

tool: D212: mli

tool: D170: div

tool: D86: dvi

tool: D304: mod

tool: D275: mdi

tool: D165: and

tool: D203: bor

tool: D215: xor

tool: D160: shr

tool: D9: asr

tool: D201: shl

tool: D42: ifb

tool: D281: ifc

tool: D25: ife

tool: D357: ifn

tool: D206: ifg

tool: D128: ifa

tool: D224: ifl

tool: D148: ifu

tool: D171: adx

tool: D166: sbx

tool: D30: sti

tool: D340: std

tool: D136: jsr

tool: D178: int

tool: D102: iag

tool: D265: ias

tool: D12: rfi

tool: D83: iaq

tool: D124: hwn

tool: D110: hwq

tool: D142: hwi

assistant: ```c
int str2opcode(char *s) {
  if ((strcasecmp((s), ("set")) == 0))
    return 0x01;
  if ((strcasecmp((s), ("add")) == 0))
    return 0x02;
  if ((strcasecmp((s), ("sub")) == 0))
    return 0x03;
  if ((strcasecmp((s), ("mul")) == 0))
    return 0x04;
  if ((strcasecmp((s), ("mli")) == 0))
    return 0x05;
  if ((strcasecmp((s), ("div")) == 0))
    return 0x06;
  if ((strcasecmp((s), ("dvi")) == 0))
    return 0x07;
  if ((strcasecmp((s), ("mod")) == 0))
    return 0x08;
  if ((strcasecmp((s), ("mdi")) == 0))
    return 0x09;
  if ((strcasecmp((s), ("and")) == 0))
    return 0x0a;
  if ((strcasecmp((s), ("bor")) == 0))
    return 0x0b;
  if ((strcasecmp((s), ("xor")) == 0))
    return 0x0c;
  if ((strcasecmp((s), ("shr")) == 0))
    return 0x0d;
  if ((strcasecmp((s), ("asr")) == 0))
    return 0x0e;
  if ((strcasecmp((s), ("shl")) == 0))
    return 0x0f;
  if ((strcasecmp((s), ("ifb")) == 0))
    return 0x10;
  if ((strcasecmp((s), ("ifc")) == 0))
    return 0x11;
  if ((strcasecmp((s), ("ife")) == 0))
    return 0x12;
  if ((strcasecmp((s), ("ifn")) == 0))
    return 0x13;
  if ((strcasecmp((s), ("ifg")) == 0))
    return 0x14;
  if ((strcasecmp((s), ("ifa")) == 0))
    return 0x15;
  if ((strcasecmp((s), ("ifl")) == 0))
    return 0x16;
  if ((strcasecmp((s), ("ifu")) == 0))
    return 0x17;
  if ((strcasecmp((s), ("adx")) == 0))
    return 0x1a;
  if ((strcasecmp((s), ("sbx")) == 0))
    return 0x1b;
  if ((strcasecmp((s), ("sti")) == 0))
    return 0x1e;
  if ((strcasecmp((s), ("std")) == 0))
    return 0x1f;
  if ((strcasecmp((s), ("jsr")) == 0))
    return 0x01;
  if ((strcasecmp((s), ("int")) == 0))
    return 0x08;
  if ((strcasecmp((s), ("iag")) == 0))
    return 0x09;
  if ((strcasecmp((s), ("ias")) == 0))
    return 0x0a;
  if ((strcasecmp((s), ("rfi")) == 0))
    return 0x0b;
  if ((strcasecmp((s), ("iaq")) == 0))
    return 0x0c;
  if ((strcasecmp((s), ("hwn")) == 0))
    return 0x10;
  if ((strcasecmp((s), ("hwq")) == 0))
    return 0x11;
  if ((strcasecmp((s), ("hwi")) == 0))
    return 0x12;
  return 0;
}
```