user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<wear_bit_name>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  movb   $0x0,D365(%rip)
  mov    -0x4(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L17
  mov    $0x200,%edx
  lea    D490(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L17:
  mov    -0x4(%rbp),%eax
  and    $0x2,%eax
  test   %eax,%eax
  je     L259
  mov    $0x200,%edx
  lea    D343(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L259:
  mov    -0x4(%rbp),%eax
  and    $0x4,%eax
  test   %eax,%eax
  je     L151
  mov    $0x200,%edx
  lea    D291(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L151:
  mov    -0x4(%rbp),%eax
  and    $0x8,%eax
  test   %eax,%eax
  je     L164
  mov    $0x200,%edx
  lea    D386(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L164:
  mov    -0x4(%rbp),%eax
  and    $0x10,%eax
  test   %eax,%eax
  je     L120
  mov    $0x200,%edx
  lea    D51(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L120:
  mov    -0x4(%rbp),%eax
  and    $0x20,%eax
  test   %eax,%eax
  je     L102
  mov    $0x200,%edx
  lea    D137(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L102:
  mov    -0x4(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  je     L98
  mov    $0x200,%edx
  lea    D53(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L98:
  mov    -0x4(%rbp),%eax
  and    $0x80,%eax
  test   %eax,%eax
  je     L206
  mov    $0x200,%edx
  lea    D125(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L206:
  mov    -0x4(%rbp),%eax
  and    $0x100,%eax
  test   %eax,%eax
  je     L246
  mov    $0x200,%edx
  lea    D362(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L246:
  mov    -0x4(%rbp),%eax
  and    $0x200,%eax
  test   %eax,%eax
  je     L181
  mov    $0x200,%edx
  lea    D364(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L181:
  mov    -0x4(%rbp),%eax
  and    $0x400,%eax
  test   %eax,%eax
  je     L142
  mov    $0x200,%edx
  lea    D375(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L142:
  mov    -0x4(%rbp),%eax
  and    $0x800,%eax
  test   %eax,%eax
  je     L210
  mov    $0x200,%edx
  lea    D47(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L210:
  mov    -0x4(%rbp),%eax
  and    $0x1000,%eax
  test   %eax,%eax
  je     L217
  mov    $0x200,%edx
  lea    D160(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L217:
  mov    -0x4(%rbp),%eax
  and    $0x2000,%eax
  test   %eax,%eax
  je     L161
  mov    $0x200,%edx
  lea    D68(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L161:
  mov    -0x4(%rbp),%eax
  and    $0x4000,%eax
  test   %eax,%eax
  je     L100
  mov    $0x200,%edx
  lea    D361(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L100:
  mov    -0x4(%rbp),%eax
  and    $0x8000,%eax
  test   %eax,%eax
  je     L55
  mov    $0x200,%edx
  lea    D186(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L55:
  mov    -0x4(%rbp),%eax
  and    $0x10000,%eax
  test   %eax,%eax
  je     L95
  mov    $0x200,%edx
  lea    D151(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L95:
  mov    -0x4(%rbp),%eax
  and    $0x20000,%eax
  test   %eax,%eax
  je     L167
  mov    $0x200,%edx
  lea    D485(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L167:
  mov    -0x4(%rbp),%eax
  and    $0x40000,%eax
  test   %eax,%eax
  je     L101
  mov    $0x200,%edx
  lea    D30(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L101:
  mov    -0x4(%rbp),%eax
  and    $0x80000,%eax
  test   %eax,%eax
  je     L214
  mov    $0x200,%edx
  lea    D385(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L214:
  mov    -0x4(%rbp),%eax
  and    $0x100000,%eax
  test   %eax,%eax
  je     L204
  mov    $0x200,%edx
  lea    D512(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L204:
  mov    -0x4(%rbp),%eax
  and    $0x200000,%eax
  test   %eax,%eax
  je     L89
  mov    $0x200,%edx
  lea    D123(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L89:
  mov    -0x4(%rbp),%eax
  and    $0x8000000,%eax
  test   %eax,%eax
  je     L236
  mov    $0x200,%edx
  lea    D100(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L236:
  mov    -0x4(%rbp),%eax
  and    $0x10000000,%eax
  test   %eax,%eax
  je     L169
  mov    $0x200,%edx
  lea    D100(%rip),%rax
  mov    %rax,%rsi
  lea    D365(%rip),%rax
  mov    %rax,%rdi
  call   <mudstrlcat@plt>
L169:
  movzbl D365(%rip),%eax
  test   %al,%al
  je     L16
  lea    D284(%rip),%rax
  jmp    L11
L16:
  lea    D268(%rip),%rax
L11:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D490
type_guessed: string
name: disassemble_data
arguments: label: D343
type_guessed: string
name: disassemble_data
arguments: label: D291
type_guessed: string
name: disassemble_data
arguments: label: D386
type_guessed: string
name: disassemble_data
arguments: label: D51
type_guessed: string
name: disassemble_data
arguments: label: D137
type_guessed: string
name: disassemble_data
arguments: label: D53
type_guessed: string
name: disassemble_data
arguments: label: D125
type_guessed: string
name: disassemble_data
arguments: label: D362
type_guessed: string
name: disassemble_data
arguments: label: D364
type_guessed: string
name: disassemble_data
arguments: label: D375
type_guessed: string
name: disassemble_data
arguments: label: D47
type_guessed: string
name: disassemble_data
arguments: label: D160
type_guessed: string
name: disassemble_data
arguments: label: D68
type_guessed: string
name: disassemble_data
arguments: label: D361
type_guessed: string
name: disassemble_data
arguments: label: D186
type_guessed: string
name: disassemble_data
arguments: label: D151
type_guessed: string
name: disassemble_data
arguments: label: D485
type_guessed: string
name: disassemble_data
arguments: label: D30
type_guessed: string
name: disassemble_data
arguments: label: D385
type_guessed: string
name: disassemble_data
arguments: label: D512
type_guessed: string
name: disassemble_data
arguments: label: D123
type_guessed: string
name: disassemble_data
arguments: label: D100
type_guessed: string
name: disassemble_data
arguments: label: D268
type_guessed: string

tool: D490:  take

tool: D343:  finger

tool: D291:  neck

tool: D386:  body

tool: D51:  head

tool: D137:  legs

tool: D53:  feet

tool: D125:  hands

tool: D362:  arms

tool: D364:  shield

tool: D375:  about

tool: D47:  waist

tool: D160:  wrist

tool: D68:  wield

tool: D361:  hold

tool: D186:  dual-wield

tool: D151:  ears

tool: D485:  eyes

tool: D30:  missile

tool: D385:  back

tool: D512:  face

tool: D123:  ankle

tool: D100:  wing

tool: D268: none

assistant: ```c
const char *wear_bit_name(int wear_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (wear_flags & (1 << 0))
    mudstrlcat(buf, " take", 512);
  if (wear_flags & (1 << 1))
    mudstrlcat(buf, " finger", 512);
  if (wear_flags & (1 << 2))
    mudstrlcat(buf, " neck", 512);
  if (wear_flags & (1 << 3))
    mudstrlcat(buf, " body", 512);
  if (wear_flags & (1 << 4))
    mudstrlcat(buf, " head", 512);
  if (wear_flags & (1 << 5))
    mudstrlcat(buf, " legs", 512);
  if (wear_flags & (1 << 6))
    mudstrlcat(buf, " feet", 512);
  if (wear_flags & (1 << 7))
    mudstrlcat(buf, " hands", 512);
  if (wear_flags & (1 << 8))
    mudstrlcat(buf, " arms", 512);
  if (wear_flags & (1 << 9))
    mudstrlcat(buf, " shield", 512);
  if (wear_flags & (1 << 10))
    mudstrlcat(buf, " about", 512);
  if (wear_flags & (1 << 11))
    mudstrlcat(buf, " waist", 512);
  if (wear_flags & (1 << 12))
    mudstrlcat(buf, " wrist", 512);
  if (wear_flags & (1 << 13))
    mudstrlcat(buf, " wield", 512);
  if (wear_flags & (1 << 14))
    mudstrlcat(buf, " hold", 512);
  if (wear_flags & (1 << 15))
    mudstrlcat(buf, " dual-wield", 512);
  if (wear_flags & (1 << 16))
    mudstrlcat(buf, " ears", 512);
  if (wear_flags & (1 << 17))
    mudstrlcat(buf, " eyes", 512);
  if (wear_flags & (1 << 18))
    mudstrlcat(buf, " missile", 512);
  if (wear_flags & (1 << 19))
    mudstrlcat(buf, " back", 512);
  if (wear_flags & (1 << 20))
    mudstrlcat(buf, " face", 512);
  if (wear_flags & (1 << 21))
    mudstrlcat(buf, " ankle", 512);
  if (wear_flags & (1 << 27))
    mudstrlcat(buf, " wing", 512);
  if (wear_flags & (1 << 28))
    mudstrlcat(buf, " wing", 512);
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```