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

```asm
<room_bit_name>:
  endbr64
  push   %rbx
  mov    %edi,%ebx
  movb   $0x0,D58(%rip)
  test   $0x1,%dil
  jne    L177
L330:
  test   $0x4,%bl
  jne    L148
L335:
  test   $0x8,%bl
  jne    L200
L11:
  test   $0x2,%bh
  jne    L100
L64:
  test   $0x4,%bh
  jne    L28
L139:
  test   $0x8,%bh
  jne    L120
L73:
  test   $0x10,%bh
  jne    L13
L52:
  test   $0x20,%bh
  jne    L75
L57:
  test   $0x40,%bh
  jne    L98
L184:
  test   $0x80,%bh
  jne    L228
L245:
  test   $0x10000,%ebx
  jne    L261
L147:
  test   $0x20000,%ebx
  jne    L220
L101:
  test   $0x40000,%ebx
  jne    L268
L308:
  test   $0x100000,%ebx
  jne    L275
L95:
  test   $0x80000,%ebx
  jne    L333
L181:
  test   $0x800000,%ebx
  jne    L45
L162:
  test   $0x200000,%ebx
  jne    L9
L44:
  cmpb   $0x0,D58(%rip)
  lea    D361(%rip),%rax
  lea    D112(%rip),%rdx
  cmove  %rdx,%rax
  pop    %rbx
  ret
L177:
  lea    D30(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L330
L148:
  lea    D220(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L335
L200:
  lea    D365(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L11
L100:
  lea    D109(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L64
L28:
  lea    D129(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L139
L120:
  lea    D340(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L73
L13:
  lea    D341(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L52
L75:
  lea    D289(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L57
L98:
  lea    D175(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L184
L228:
  lea    D281(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L245
L261:
  lea    D173(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L147
L220:
  lea    D51(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L101
L268:
  lea    D205(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L308
L275:
  lea    D31(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L95
L333:
  lea    D161(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L181
L45:
  lea    D254(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L162
L9:
  lea    D163(%rip),%rsi
  lea    D58(%rip),%rdi
  call   <strcat@plt>
  jmp    L44
```

tool_calls: name: parse_data
arguments: label: D112
datatype: string
name: parse_data
arguments: label: D30
datatype: string
name: parse_data
arguments: label: D220
datatype: string
name: parse_data
arguments: label: D365
datatype: string
name: parse_data
arguments: label: D109
datatype: string
name: parse_data
arguments: label: D129
datatype: string
name: parse_data
arguments: label: D340
datatype: string
name: parse_data
arguments: label: D341
datatype: string
name: parse_data
arguments: label: D289
datatype: string
name: parse_data
arguments: label: D175
datatype: string
name: parse_data
arguments: label: D281
datatype: string
name: parse_data
arguments: label: D173
datatype: string
name: parse_data
arguments: label: D51
datatype: string
name: parse_data
arguments: label: D205
datatype: string
name: parse_data
arguments: label: D31
datatype: string
name: parse_data
arguments: label: D161
datatype: string
name: parse_data
arguments: label: D254
datatype: string
name: parse_data
arguments: label: D163
datatype: string

tool: D112: none

tool: D30:  dark

tool: D220:  no_mob

tool: D365:  indoors

tool: D109:  private

tool: D129:  safe

tool: D340:  solitary

tool: D341:  pet_shop

tool: D289:  no_recall

tool: D175:  imp

tool: D281:  gods

tool: D173:  heroes

tool: D51:  newbies

tool: D205:  law

tool: D31:  clan_ent

tool: D161:  nowhere

tool: D254:  locked

tool: D163:  arena

assistant: ```c
char *room_bit_name(int room_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (room_flags & (1))
    strcat(buf, " dark");
  if (room_flags & (4))
    strcat(buf, " no_mob");
  if (room_flags & (8))
    strcat(buf, " indoors");
  if (room_flags & (512))
    strcat(buf, " private");
  if (room_flags & (1024))
    strcat(buf, " safe");
  if (room_flags & (2048))
    strcat(buf, " solitary");
  if (room_flags & (4096))
    strcat(buf, " pet_shop");
  if (room_flags & (8192))
    strcat(buf, " no_recall");
  if (room_flags & (16384))
    strcat(buf, " imp");
  if (room_flags & (32768))
    strcat(buf, " gods");
  if (room_flags & (65536))
    strcat(buf, " heroes");
  if (room_flags & (131072))
    strcat(buf, " newbies");
  if (room_flags & (262144))
    strcat(buf, " law");
  if (room_flags & (1048576))
    strcat(buf, " clan_ent");
  if (room_flags & (524288))
    strcat(buf, " nowhere");
  if (room_flags & (8388608))
    strcat(buf, " locked");
  if (room_flags & (2097152))
    strcat(buf, " arena");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```