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

```asm
<off_bit_name>:
  endbr64
  push   %rbp
  lea    D279(%rip),%rbp
  push   %rbx
  mov    %edi,%ebx
  sub    $0x8,%rsp
  and    $0x1,%edi
  movb   $0x0,D279(%rip)
  jne    L330
  test   $0x2,%bl
  jne    L135
L7:
  test   $0x4,%bl
  jne    L267
L64:
  test   $0x8,%bl
  jne    L310
L268:
  test   $0x10,%bl
  jne    L445
L417:
  test   $0x20,%bl
  jne    L90
L322:
  test   $0x40,%bl
  jne    L20
L131:
  test   $0x80,%bl
  jne    L455
L371:
  test   $0x200000,%ebx
  jne    L61
L188:
  test   $0x1,%bh
  jne    L329
L159:
  test   $0x2,%bh
  jne    L401
L406:
  test   $0x4,%bh
  jne    L296
L9:
  test   $0x8,%bh
  jne    L408
L224:
  test   $0x10,%bh
  jne    L291
L217:
  test   $0x20,%bh
  jne    L160
L38:
  test   $0x40,%bh
  jne    L113
L17:
  test   $0x400000,%ebx
  jne    L82
L228:
  test   $0x80,%bh
  jne    L433
L85:
  test   $0x10000,%ebx
  jne    L103
L200:
  test   $0x20000,%ebx
  jne    L294
L320:
  test   $0x40000,%ebx
  jne    L424
L249:
  test   $0x80000,%ebx
  jne    L238
L426:
  and    $0x100000,%ebx
  jne    L4
L443:
  cmpb   $0x0,D279(%rip)
  lea    D161(%rip),%rax
  lea    D140(%rip),%rdx
  cmove  %rdx,%rax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
  xchg   %ax,%ax
L330:
  lea    D169(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bl
  je     L7
L135:
  lea    D28(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bl
  je     L64
L267:
  lea    D141(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x8,%bl
  je     L268
L310:
  lea    D266(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bl
  je     L417
L445:
  lea    D176(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bl
  je     L322
L90:
  lea    D36(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bl
  je     L131
L20:
  lea    D77(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bl
  je     L371
L455:
  lea    D9(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x200000,%ebx
  je     L188
L61:
  lea    D145(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x1,%bh
  je     L159
L329:
  lea    D256(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x2,%bh
  je     L406
L401:
  lea    D156(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x4,%bh
  je     L9
L296:
  lea    D122(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x8,%bh
  je     L224
L408:
  lea    D34(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10,%bh
  je     L217
L291:
  lea    D171(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20,%bh
  je     L38
L160:
  lea    D22(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40,%bh
  je     L17
L113:
  lea    D199(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x400000,%ebx
  je     L228
L82:
  lea    D184(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80,%bh
  je     L85
L433:
  lea    D271(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x10000,%ebx
  je     L200
L103:
  lea    D6(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x20000,%ebx
  je     L320
L294:
  lea    D257(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x40000,%ebx
  je     L249
L424:
  lea    D154(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   $0x80000,%ebx
  je     L426
L238:
  lea    D268(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  and    $0x100000,%ebx
  je     L443
L4:
  lea    D21(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L443
```

tool_calls: name: unpack_data
arguments: tag: D140
data_type: string
name: unpack_data
arguments: tag: D169
data_type: string
name: unpack_data
arguments: tag: D28
data_type: string
name: unpack_data
arguments: tag: D141
data_type: string
name: unpack_data
arguments: tag: D266
data_type: string
name: unpack_data
arguments: tag: D176
data_type: string
name: unpack_data
arguments: tag: D36
data_type: string
name: unpack_data
arguments: tag: D77
data_type: string
name: unpack_data
arguments: tag: D9
data_type: string
name: unpack_data
arguments: tag: D145
data_type: string
name: unpack_data
arguments: tag: D256
data_type: string
name: unpack_data
arguments: tag: D156
data_type: string
name: unpack_data
arguments: tag: D122
data_type: string
name: unpack_data
arguments: tag: D34
data_type: string
name: unpack_data
arguments: tag: D171
data_type: string
name: unpack_data
arguments: tag: D22
data_type: string
name: unpack_data
arguments: tag: D199
data_type: string
name: unpack_data
arguments: tag: D184
data_type: string
name: unpack_data
arguments: tag: D271
data_type: string
name: unpack_data
arguments: tag: D6
data_type: string
name: unpack_data
arguments: tag: D257
data_type: string
name: unpack_data
arguments: tag: D154
data_type: string
name: unpack_data
arguments: tag: D268
data_type: string
name: unpack_data
arguments: tag: D21
data_type: string

tool: D140: none

tool: D169:  area attack

tool: D28:  backstab

tool: D141:  bash

tool: D266:  berserk

tool: D176:  disarm

tool: D36:  dodge

tool: D77:  fade

tool: D9:  fast

tool: D145:  feed

tool: D256:  kick

tool: D156:  kick_dirt

tool: D122:  parry

tool: D34:  rescue

tool: D171:  tail

tool: D22:  trip

tool: D199:  crush

tool: D184:  clan_guard

tool: D271:  assist_all

tool: D6:  assist_align

tool: D257:  assist_race

tool: D154:  assist_players

tool: D268:  assist_guard

tool: D21:  assist_vnum

assistant: ```c
char *off_bit_name(int off_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (off_flags & (1))
    strcat(buf, " area attack");
  if (off_flags & (2))
    strcat(buf, " backstab");
  if (off_flags & (4))
    strcat(buf, " bash");
  if (off_flags & (8))
    strcat(buf, " berserk");
  if (off_flags & (16))
    strcat(buf, " disarm");
  if (off_flags & (32))
    strcat(buf, " dodge");
  if (off_flags & (64))
    strcat(buf, " fade");
  if (off_flags & (128))
    strcat(buf, " fast");
  if (off_flags & (2097152))
    strcat(buf, " feed");
  if (off_flags & (256))
    strcat(buf, " kick");
  if (off_flags & (512))
    strcat(buf, " kick_dirt");
  if (off_flags & (1024))
    strcat(buf, " parry");
  if (off_flags & (2048))
    strcat(buf, " rescue");
  if (off_flags & (4096))
    strcat(buf, " tail");
  if (off_flags & (8192))
    strcat(buf, " trip");
  if (off_flags & (16384))
    strcat(buf, " crush");
  if (off_flags & (4194304))
    strcat(buf, " clan_guard");
  if (off_flags & (32768))
    strcat(buf, " assist_all");
  if (off_flags & (65536))
    strcat(buf, " assist_align");
  if (off_flags & (131072))
    strcat(buf, " assist_race");
  if (off_flags & (262144))
    strcat(buf, " assist_players");
  if (off_flags & (524288))
    strcat(buf, " assist_guard");
  if (off_flags & (1048576))
    strcat(buf, " assist_vnum");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```