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

```asm
<affect_bit_name>:
  endbr64
  push   %rbx
  mov    %edi,%ebx
  movb   $0x0,D241(%rip)
  test   $0x1,%dil
  jne    L490
L465:
  test   $0x2,%bl
  jne    L48
L98:
  test   $0x4,%bl
  jne    L370
L283:
  test   $0x40,%bl
  jne    L282
L441:
  test   $0x8,%bl
  jne    L17
L6:
  test   $0x10,%bl
  jne    L452
L54:
  test   $0x20,%bl
  jne    L219
L436:
  test   $0x80,%bl
  jne    L142
L239:
  test   $0x1,%bh
  jne    L362
L23:
  test   $0x2,%bh
  jne    L107
L78:
  test   $0x4,%bh
  jne    L86
L437:
  test   $0x10,%bh
  jne    L96
L511:
  test   $0x20,%bh
  jne    L418
L494:
  test   $0x40,%bh
  jne    L253
L179:
  test   $0x20000,%ebx
  jne    L334
L188:
  test   $0x80,%bh
  jne    L499
L449:
  test   $0x10000,%ebx
  jne    L330
L229:
  test   $0x40000,%ebx
  jne    L113
L337:
  test   $0x80000,%ebx
  jne    L379
L325:
  test   $0x100000,%ebx
  jne    L338
L4:
  test   $0x4000000,%ebx
  jne    L170
L457:
  test   $0x400000,%ebx
  jne    L442
L3:
  test   $0x200000,%ebx
  jne    L0
L259:
  test   $0x20000000,%ebx
  jne    L38
L90:
  test   $0x800000,%ebx
  jne    L331
L461:
  test   $0x2000000,%ebx
  jne    L47
L321:
  cmpb   $0x0,D241(%rip)
  lea    D66(%rip),%rax
  lea    D415(%rip),%rdx
  cmove  %rdx,%rax
  pop    %rbx
  ret
L490:
  lea    D168(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L465
L48:
  lea    D319(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L98
L370:
  lea    D8(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L283
L282:
  lea    D250(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L441
L17:
  lea    D125(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L6
L452:
  lea    D443(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L54
L219:
  lea    D23(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L436
L142:
  lea    D234(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L239
L362:
  lea    D462(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L23
L107:
  lea    D307(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L78
L86:
  lea    D215(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L437
L96:
  lea    D167(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L511
L418:
  lea    D508(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L494
L253:
  lea    D47(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L179
L334:
  lea    D298(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L188
L499:
  lea    D380(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L449
L330:
  lea    D384(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L229
L113:
  lea    D417(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L337
L379:
  lea    D471(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L325
L338:
  lea    D361(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L4
L170:
  lea    D407(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L457
L442:
  lea    D214(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L3
L0:
  lea    D374(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L259
L38:
  lea    D49(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L90
L331:
  lea    D416(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L461
L47:
  lea    D86(%rip),%rsi
  lea    D241(%rip),%rdi
  call   <strcat@plt>
  jmp    L321
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D415
type_infered: string
name: extract_symbolic_data
arguments: data_label: D168
type_infered: string
name: extract_symbolic_data
arguments: data_label: D319
type_infered: string
name: extract_symbolic_data
arguments: data_label: D8
type_infered: string
name: extract_symbolic_data
arguments: data_label: D250
type_infered: string
name: extract_symbolic_data
arguments: data_label: D125
type_infered: string
name: extract_symbolic_data
arguments: data_label: D443
type_infered: string
name: extract_symbolic_data
arguments: data_label: D23
type_infered: string
name: extract_symbolic_data
arguments: data_label: D234
type_infered: string
name: extract_symbolic_data
arguments: data_label: D462
type_infered: string
name: extract_symbolic_data
arguments: data_label: D307
type_infered: string
name: extract_symbolic_data
arguments: data_label: D215
type_infered: string
name: extract_symbolic_data
arguments: data_label: D167
type_infered: string
name: extract_symbolic_data
arguments: data_label: D508
type_infered: string
name: extract_symbolic_data
arguments: data_label: D47
type_infered: string
name: extract_symbolic_data
arguments: data_label: D298
type_infered: string
name: extract_symbolic_data
arguments: data_label: D380
type_infered: string
name: extract_symbolic_data
arguments: data_label: D384
type_infered: string
name: extract_symbolic_data
arguments: data_label: D417
type_infered: string
name: extract_symbolic_data
arguments: data_label: D471
type_infered: string
name: extract_symbolic_data
arguments: data_label: D361
type_infered: string
name: extract_symbolic_data
arguments: data_label: D407
type_infered: string
name: extract_symbolic_data
arguments: data_label: D214
type_infered: string
name: extract_symbolic_data
arguments: data_label: D374
type_infered: string
name: extract_symbolic_data
arguments: data_label: D49
type_infered: string
name: extract_symbolic_data
arguments: data_label: D416
type_infered: string
name: extract_symbolic_data
arguments: data_label: D86
type_infered: string

tool: D415: none

tool: D168:  blind

tool: D319:  invisible

tool: D8:  detect_evil

tool: D250:  detect_good

tool: D125:  detect_invis

tool: D443:  detect_magic

tool: D23:  detect_hidden

tool: D234:  sanctuary

tool: D462:  faerie_fire

tool: D307:  infrared

tool: D215:  curse

tool: D167:  poison

tool: D508:  prot_evil

tool: D47:  prot_good

tool: D298:  sleep

tool: D380:  sneak

tool: D384:  hide

tool: D417:  charm

tool: D471:  flying

tool: D361:  pass_door

tool: D407:  berserk

tool: D214:  calm

tool: D374:  haste

tool: D49:  slow

tool: D416:  plague

tool: D86:  dark_vision

assistant: ```c
char *affect_bit_name(int vector) {
  static char buf[512];
  buf[0] = '\0';
  if (vector & (1))
    strcat(buf, " blind");
  if (vector & (2))
    strcat(buf, " invisible");
  if (vector & (4))
    strcat(buf, " detect_evil");
  if (vector & (64))
    strcat(buf, " detect_good");
  if (vector & (8))
    strcat(buf, " detect_invis");
  if (vector & (16))
    strcat(buf, " detect_magic");
  if (vector & (32))
    strcat(buf, " detect_hidden");
  if (vector & (128))
    strcat(buf, " sanctuary");
  if (vector & (256))
    strcat(buf, " faerie_fire");
  if (vector & (512))
    strcat(buf, " infrared");
  if (vector & (1024))
    strcat(buf, " curse");
  if (vector & (4096))
    strcat(buf, " poison");
  if (vector & (8192))
    strcat(buf, " prot_evil");
  if (vector & (16384))
    strcat(buf, " prot_good");
  if (vector & (131072))
    strcat(buf, " sleep");
  if (vector & (32768))
    strcat(buf, " sneak");
  if (vector & (65536))
    strcat(buf, " hide");
  if (vector & (262144))
    strcat(buf, " charm");
  if (vector & (524288))
    strcat(buf, " flying");
  if (vector & (1048576))
    strcat(buf, " pass_door");
  if (vector & (67108864))
    strcat(buf, " berserk");
  if (vector & (4194304))
    strcat(buf, " calm");
  if (vector & (2097152))
    strcat(buf, " haste");
  if (vector & (536870912))
    strcat(buf, " slow");
  if (vector & (8388608))
    strcat(buf, " plague");
  if (vector & (33554432))
    strcat(buf, " dark_vision");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```