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

```asm
<affect_bit_name>:
  endbr64
  push   %rbp
  lea    D228(%rip),%rbp
  push   %rbx
  mov    %edi,%ebx
  sub    $0x8,%rsp
  and    $0x1,%edi
  movb   $0x0,D228(%rip)
  jne    L464
  test   $0x2,%bl
  jne    L122
L239:
  test   $0x4,%bl
  jne    L349
L160:
  test   $0x40,%bl
  jne    L49
L179:
  test   $0x8,%bl
  jne    L145
L112:
  test   $0x10,%bl
  jne    L208
L136:
  test   $0x20,%bl
  jne    L457
L188:
  test   $0x80,%bl
  jne    L234
L7:
  test   $0x1,%bh
  jne    L313
L266:
  test   $0x2,%bh
  jne    L355
L354:
  test   $0x4,%bh
  jne    L197
L392:
  test   $0x10,%bh
  jne    L215
L95:
  test   $0x20,%bh
  jne    L47
L377:
  test   $0x40,%bh
  jne    L357
L129:
  test   $0x20000,%ebx
  jne    L207
L139:
  test   $0x80,%bh
  jne    L486
L485:
  test   $0x10000,%ebx
  jne    L463
L128:
  test   $0x40000,%ebx
  jne    L163
L226:
  test   $0x80000,%ebx
  jne    L428
L214:
  test   $0x100000,%ebx
  jne    L98
L217:
  test   $0x4000000,%ebx
  jne    L22
L209:
  test   $0x400000,%ebx
  jne    L23
L460:
  test   $0x200000,%ebx
  jne    L340
L263:
  test   $0x20000000,%ebx
  jne    L82
L389:
  test   $0x800000,%ebx
  jne    L140
L51:
  and    $0x2000000,%ebx
  jne    L319
L121:
  cmpb   $0x0,D228(%rip)
  lea    D88(%rip),%rax
  lea    D189(%rip),%rdx
  cmove  %rdx,%rax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopl   (%rax)
L464:
  lea    D50(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bl
  je     L239
L122:
  lea    D265(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bl
  je     L160
L349:
  lea    D149(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bl
  je     L179
L49:
  lea    D285(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x8,%bl
  je     L112
L145:
  lea    D14(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bl
  je     L136
L208:
  lea    D85(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bl
  je     L188
L457:
  lea    D129(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bl
  je     L7
L234:
  lea    D235(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x1,%bh
  je     L266
L313:
  lea    D170(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bh
  je     L354
L355:
  lea    D112(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bh
  je     L392
L197:
  lea    D206(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bh
  je     L95
L215:
  lea    D161(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bh
  je     L377
L47:
  lea    D54(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bh
  je     L129
L357:
  lea    D266(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20000,%ebx
  je     L139
L207:
  lea    D288(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bh
  je     L485
L486:
  lea    D123(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10000,%ebx
  je     L128
L463:
  lea    D195(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40000,%ebx
  je     L226
L163:
  lea    D267(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80000,%ebx
  je     L214
L428:
  lea    D207(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x100000,%ebx
  je     L217
L98:
  lea    D203(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4000000,%ebx
  je     L209
L22:
  lea    D2(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x400000,%ebx
  je     L460
L23:
  lea    D232(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x200000,%ebx
  je     L263
L340:
  lea    D80(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20000000,%ebx
  je     L389
L82:
  lea    D219(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x800000,%ebx
  je     L51
L140:
  lea    D242(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  and    $0x2000000,%ebx
  je     L121
L319:
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L121
```

tool_calls: name: disassemble_data
arguments: tag: D189
datatype: string
name: disassemble_data
arguments: tag: D50
datatype: string
name: disassemble_data
arguments: tag: D265
datatype: string
name: disassemble_data
arguments: tag: D149
datatype: string
name: disassemble_data
arguments: tag: D285
datatype: string
name: disassemble_data
arguments: tag: D14
datatype: string
name: disassemble_data
arguments: tag: D85
datatype: string
name: disassemble_data
arguments: tag: D129
datatype: string
name: disassemble_data
arguments: tag: D235
datatype: string
name: disassemble_data
arguments: tag: D170
datatype: string
name: disassemble_data
arguments: tag: D112
datatype: string
name: disassemble_data
arguments: tag: D206
datatype: string
name: disassemble_data
arguments: tag: D161
datatype: string
name: disassemble_data
arguments: tag: D54
datatype: string
name: disassemble_data
arguments: tag: D266
datatype: string
name: disassemble_data
arguments: tag: D288
datatype: string
name: disassemble_data
arguments: tag: D123
datatype: string
name: disassemble_data
arguments: tag: D195
datatype: string
name: disassemble_data
arguments: tag: D267
datatype: string
name: disassemble_data
arguments: tag: D207
datatype: string
name: disassemble_data
arguments: tag: D203
datatype: string
name: disassemble_data
arguments: tag: D2
datatype: string
name: disassemble_data
arguments: tag: D232
datatype: string
name: disassemble_data
arguments: tag: D80
datatype: string
name: disassemble_data
arguments: tag: D219
datatype: string
name: disassemble_data
arguments: tag: D242
datatype: string
name: disassemble_data
arguments: tag: D137
datatype: string

tool: D189: none

tool: D50:  blind

tool: D265:  invisible

tool: D149:  detect_evil

tool: D285:  detect_good

tool: D14:  detect_invis

tool: D85:  detect_magic

tool: D129:  detect_hidden

tool: D235:  sanctuary

tool: D170:  faerie_fire

tool: D112:  infrared

tool: D206:  curse

tool: D161:  poison

tool: D54:  prot_evil

tool: D266:  prot_good

tool: D288:  sleep

tool: D123:  sneak

tool: D195:  hide

tool: D267:  charm

tool: D207:  flying

tool: D203:  pass_door

tool: D2:  berserk

tool: D232:  calm

tool: D80:  haste

tool: D219:  slow

tool: D242:  plague

tool: D137:  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";
}
```