user: 请将以下的汇编代码转换成C语言代码：

```asm
<imm_bit_name>:
  endbr64
  push   %rbp
  lea    D105(%rip),%rbp
  push   %rbx
  mov    %edi,%ebx
  sub    $0x8,%rsp
  and    $0x1,%edi
  movb   $0x0,D105(%rip)
  jne    L283
  test   $0x2,%bl
  jne    L277
L340:
  test   $0x4,%bl
  jne    L300
L174:
  test   $0x8,%bl
  jne    L296
L25:
  test   $0x10,%bl
  jne    L369
L286:
  test   $0x20,%bl
  jne    L26
L13:
  test   $0x40,%bl
  jne    L130
L113:
  test   $0x80,%bl
  jne    L69
L427:
  test   $0x1,%bh
  jne    L46
L68:
  test   $0x2,%bh
  jne    L7
L198:
  test   $0x4,%bh
  jne    L30
L34:
  test   $0x8,%bh
  jne    L437
L31:
  test   $0x10,%bh
  jne    L387
L390:
  test   $0x20,%bh
  jne    L330
L109:
  test   $0x40,%bh
  jne    L292
L181:
  test   $0x80,%bh
  jne    L138
L208:
  test   $0x10000,%ebx
  jne    L354
L123:
  test   $0x20000,%ebx
  jne    L82
L1:
  test   $0x40000,%ebx
  jne    L66
L311:
  test   $0x2000000,%ebx
  jne    L18
L267:
  test   $0x800000,%ebx
  jne    L193
L232:
  and    $0x1000000,%ebx
  jne    L411
L146:
  cmpb   $0x0,D105(%rip)
  lea    D198(%rip),%rax
  lea    D36(%rip),%rdx
  cmove  %rdx,%rax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L283:
  lea    D21(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bl
  je     L340
L277:
  lea    D156(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bl
  je     L174
L300:
  lea    D110(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x8,%bl
  je     L25
L296:
  lea    D126(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bl
  je     L286
L369:
  lea    D75(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bl
  je     L13
L26:
  lea    D193(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bl
  je     L113
L130:
  lea    D261(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bl
  je     L427
L69:
  lea    D217(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x1,%bh
  je     L68
L46:
  lea    D3(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bh
  je     L198
L7:
  lea    D190(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bh
  je     L34
L30:
  lea    D207(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x8,%bh
  je     L31
L437:
  lea    D119(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bh
  je     L390
L387:
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bh
  je     L109
L330:
  lea    D151(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bh
  je     L181
L292:
  lea    D112(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bh
  je     L208
L138:
  lea    D16(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10000,%ebx
  je     L123
L354:
  lea    D153(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20000,%ebx
  je     L1
L82:
  lea    D51(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40000,%ebx
  je     L311
L66:
  lea    D50(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2000000,%ebx
  je     L267
L18:
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x800000,%ebx
  je     L232
L193:
  lea    D152(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  and    $0x1000000,%ebx
  je     L146
L411:
  lea    D118(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L146
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D36
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D21
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D156
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D110
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D126
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D75
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D193
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D261
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D217
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D3
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D190
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D207
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D119
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D86
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D151
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D112
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D16
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D153
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D51
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D50
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D67
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D152
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D118
type_guessed: string

tool: D36: none

tool: D21:  summon

tool: D156:  charm

tool: D110:  magic

tool: D126:  weapon

tool: D75:  blunt

tool: D193:  piercing

tool: D261:  slashing

tool: D217:  fire

tool: D3:  cold

tool: D190:  lightning

tool: D207:  acid

tool: D119:  poison

tool: D86:  negative

tool: D151:  holy

tool: D112:  energy

tool: D16:  mental

tool: D153:  disease

tool: D51:  drowning

tool: D50:  light

tool: D67:  iron

tool: D152:  wood

tool: D118:  silver

assistant: ```c
char *imm_bit_name(int imm_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (imm_flags & (1))
    strcat(buf, " summon");
  if (imm_flags & (2))
    strcat(buf, " charm");
  if (imm_flags & (4))
    strcat(buf, " magic");
  if (imm_flags & (8))
    strcat(buf, " weapon");
  if (imm_flags & (16))
    strcat(buf, " blunt");
  if (imm_flags & (32))
    strcat(buf, " piercing");
  if (imm_flags & (64))
    strcat(buf, " slashing");
  if (imm_flags & (128))
    strcat(buf, " fire");
  if (imm_flags & (256))
    strcat(buf, " cold");
  if (imm_flags & (512))
    strcat(buf, " lightning");
  if (imm_flags & (1024))
    strcat(buf, " acid");
  if (imm_flags & (2048))
    strcat(buf, " poison");
  if (imm_flags & (4096))
    strcat(buf, " negative");
  if (imm_flags & (8192))
    strcat(buf, " holy");
  if (imm_flags & (16384))
    strcat(buf, " energy");
  if (imm_flags & (32768))
    strcat(buf, " mental");
  if (imm_flags & (65536))
    strcat(buf, " disease");
  if (imm_flags & (131072))
    strcat(buf, " drowning");
  if (imm_flags & (262144))
    strcat(buf, " light");
  if (imm_flags & (33554432))
    strcat(buf, " iron");
  if (imm_flags & (8388608))
    strcat(buf, " wood");
  if (imm_flags & (16777216))
    strcat(buf, " silver");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```