user: What is the c source code of the assembly code below:

```asm
<comm_bit_name>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  movb   $0x0,D314(%rip)
  mov    -0x4(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L14
  lea    D302(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L14:
  mov    -0x4(%rbp),%eax
  and    $0x2,%eax
  test   %eax,%eax
  je     L84
  lea    D243(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L84:
  mov    -0x4(%rbp),%eax
  and    $0x4,%eax
  test   %eax,%eax
  je     L66
  lea    D459(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L66:
  mov    -0x4(%rbp),%eax
  and    $0x8,%eax
  test   %eax,%eax
  je     L18
  lea    D416(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L18:
  mov    -0x4(%rbp),%eax
  and    $0x10,%eax
  test   %eax,%eax
  je     L203
  lea    D216(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L203:
  mov    -0x4(%rbp),%eax
  and    $0x800000,%eax
  test   %eax,%eax
  je     L42
  lea    D205(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L42:
  mov    -0x4(%rbp),%eax
  and    $0x10000000,%eax
  test   %eax,%eax
  je     L132
  lea    D65(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L132:
  mov    -0x4(%rbp),%eax
  and    $0x20,%eax
  test   %eax,%eax
  je     L145
  lea    D344(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L145:
  mov    -0x4(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  je     L67
  lea    D381(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L67:
  mov    -0x4(%rbp),%eax
  and    $0x100,%eax
  test   %eax,%eax
  je     L28
  lea    D69(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L28:
  mov    -0x4(%rbp),%eax
  and    $0x800,%eax
  test   %eax,%eax
  je     L4
  lea    D112(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L4:
  mov    -0x4(%rbp),%eax
  and    $0x1000,%eax
  test   %eax,%eax
  je     L1
  lea    D67(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L1:
  mov    -0x4(%rbp),%eax
  and    $0x4000000,%eax
  test   %eax,%eax
  je     L22
  lea    D14(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L22:
  mov    -0x4(%rbp),%eax
  and    $0x8000000,%eax
  test   %eax,%eax
  je     L85
  lea    D36(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L85:
  mov    -0x4(%rbp),%eax
  and    $0x2000,%eax
  test   %eax,%eax
  je     L156
  lea    D188(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L156:
  mov    -0x4(%rbp),%eax
  and    $0x4000,%eax
  test   %eax,%eax
  je     L44
  lea    D207(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L44:
  mov    -0x4(%rbp),%eax
  and    $0x80000,%eax
  test   %eax,%eax
  je     L221
  lea    D374(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L221:
  mov    -0x4(%rbp),%eax
  and    $0x100000,%eax
  test   %eax,%eax
  je     L39
  lea    D390(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L39:
  mov    -0x4(%rbp),%eax
  and    $0x200000,%eax
  test   %eax,%eax
  je     L175
  lea    D237(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L175:
  mov    -0x4(%rbp),%eax
  and    $0x400000,%eax
  test   %eax,%eax
  je     L95
  lea    D345(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L95:
  mov    -0x4(%rbp),%eax
  and    $0x400,%eax
  test   %eax,%eax
  je     L31
  lea    D20(%rip),%rax
  mov    %rax,%rsi
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <strcat@plt>
L31:
  movzbl D314(%rip),%eax
  test   %al,%al
  je     L110
  lea    D151(%rip),%rax
  jmp    L19
L110:
  lea    D62(%rip),%rax
L19:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D302
type: string
name: parse_data
arguments: label: D243
type: string
name: parse_data
arguments: label: D459
type: string
name: parse_data
arguments: label: D416
type: string
name: parse_data
arguments: label: D216
type: string
name: parse_data
arguments: label: D205
type: string
name: parse_data
arguments: label: D65
type: string
name: parse_data
arguments: label: D344
type: string
name: parse_data
arguments: label: D381
type: string
name: parse_data
arguments: label: D69
type: string
name: parse_data
arguments: label: D112
type: string
name: parse_data
arguments: label: D67
type: string
name: parse_data
arguments: label: D14
type: string
name: parse_data
arguments: label: D36
type: string
name: parse_data
arguments: label: D188
type: string
name: parse_data
arguments: label: D207
type: string
name: parse_data
arguments: label: D374
type: string
name: parse_data
arguments: label: D390
type: string
name: parse_data
arguments: label: D237
type: string
name: parse_data
arguments: label: D345
type: string
name: parse_data
arguments: label: D20
type: string
name: parse_data
arguments: label: D62
type: string

tool: D302:  quiet

tool: D243:  deaf

tool: D459:  no_wiz

tool: D416:  no_auction

tool: D216:  no_ooc

tool: D205:  no_cgossip

tool: D65:  no_qgossip

tool: D344:  no_ask

tool: D381:  no_music

tool: D69:  no_quote

tool: D112:  compact

tool: D67:  brief

tool: D14:  long

tool: D36:  autostore

tool: D188:  prompt

tool: D207:  combine

tool: D374:  no_emote

tool: D390:  no_shout

tool: D237:  no_tell

tool: D345:  no_channels

tool: D20:  no_arena

tool: D62: none

assistant: ```c
char *comm_bit_name(int comm_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (comm_flags & (1))
    strcat(buf, " quiet");
  if (comm_flags & (2))
    strcat(buf, " deaf");
  if (comm_flags & (4))
    strcat(buf, " no_wiz");
  if (comm_flags & (8))
    strcat(buf, " no_auction");
  if (comm_flags & (16))
    strcat(buf, " no_ooc");
  if (comm_flags & (8388608))
    strcat(buf, " no_cgossip");
  if (comm_flags & (268435456))
    strcat(buf, " no_qgossip");
  if (comm_flags & (32))
    strcat(buf, " no_ask");
  if (comm_flags & (64))
    strcat(buf, " no_music");
  if (comm_flags & (256))
    strcat(buf, " no_quote");
  if (comm_flags & (2048))
    strcat(buf, " compact");
  if (comm_flags & (4096))
    strcat(buf, " brief");
  if (comm_flags & (67108864))
    strcat(buf, " long");
  if (comm_flags & (134217728))
    strcat(buf, " autostore");
  if (comm_flags & (8192))
    strcat(buf, " prompt");
  if (comm_flags & (16384))
    strcat(buf, " combine");
  if (comm_flags & (524288))
    strcat(buf, " no_emote");
  if (comm_flags & (1048576))
    strcat(buf, " no_shout");
  if (comm_flags & (2097152))
    strcat(buf, " no_tell");
  if (comm_flags & (4194304))
    strcat(buf, " no_channels");
  if (comm_flags & (1024))
    strcat(buf, " no_arena");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```