user: Demonstrate the C code that generates the assembly output below:

```asm
<wear_bit_name>:
  endbr64
  push   %rbx
  mov    %edi,%ebx
  movb   $0x0,D113(%rip)
  test   $0x1,%dil
  jne    L325
L179:
  test   $0x2,%bl
  jne    L296
L308:
  test   $0x4,%bl
  jne    L2
L197:
  test   $0x8,%bl
  jne    L41
L350:
  test   $0x10,%bl
  jne    L208
L221:
  test   $0x20,%bl
  jne    L159
L235:
  test   $0x40,%bl
  jne    L123
L105:
  test   $0x80,%bl
  jne    L42
L213:
  test   $0x1,%bh
  jne    L27
L288:
  test   $0x2,%bh
  jne    L216
L185:
  test   $0x4,%bh
  jne    L108
L156:
  test   $0x8,%bh
  jne    L209
L245:
  test   $0x10,%bh
  jne    L10
L356:
  test   $0x20,%bh
  jne    L72
L34:
  test   $0x40,%bh
  jne    L138
L316:
  test   $0x10000,%ebx
  jne    L92
L164:
  test   $0x20000,%ebx
  jne    L351
L77:
  test   $0x80,%bh
  jne    L32
L190:
  cmpb   $0x0,D113(%rip)
  lea    D98(%rip),%rax
  lea    D51(%rip),%rdx
  cmove  %rdx,%rax
  pop    %rbx
  ret
L325:
  lea    D255(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L179
L296:
  lea    D293(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L308
L2:
  lea    D151(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L197
L41:
  lea    D42(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L350
L208:
  lea    D294(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L221
L159:
  lea    D307(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L235
L123:
  lea    D184(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L105
L42:
  lea    D284(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L213
L27:
  lea    D12(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L288
L216:
  lea    D371(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L185
L108:
  lea    D167(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L156
L209:
  lea    D142(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L245
L10:
  lea    D212(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L356
L72:
  lea    D247(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L34
L138:
  lea    D306(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L316
L92:
  lea    D273(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L164
L351:
  lea    D149(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L77
L32:
  lea    D146(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <strcat@plt>
  jmp    L190
```

tool_calls: name: retrieve_data
arguments: tag: D51
data_type: string
name: retrieve_data
arguments: tag: D255
data_type: string
name: retrieve_data
arguments: tag: D293
data_type: string
name: retrieve_data
arguments: tag: D151
data_type: string
name: retrieve_data
arguments: tag: D42
data_type: string
name: retrieve_data
arguments: tag: D294
data_type: string
name: retrieve_data
arguments: tag: D307
data_type: string
name: retrieve_data
arguments: tag: D184
data_type: string
name: retrieve_data
arguments: tag: D284
data_type: string
name: retrieve_data
arguments: tag: D12
data_type: string
name: retrieve_data
arguments: tag: D371
data_type: string
name: retrieve_data
arguments: tag: D167
data_type: string
name: retrieve_data
arguments: tag: D142
data_type: string
name: retrieve_data
arguments: tag: D212
data_type: string
name: retrieve_data
arguments: tag: D247
data_type: string
name: retrieve_data
arguments: tag: D306
data_type: string
name: retrieve_data
arguments: tag: D273
data_type: string
name: retrieve_data
arguments: tag: D149
data_type: string
name: retrieve_data
arguments: tag: D146
data_type: string

tool: D51: none

tool: D255:  take

tool: D293:  finger

tool: D151:  neck

tool: D42:  torso

tool: D294:  head

tool: D307:  legs

tool: D184:  feet

tool: D284:  hands

tool: D12:  arms

tool: D371:  shield

tool: D167:  body

tool: D142:  waist

tool: D212:  wrist

tool: D247:  wield

tool: D306:  hold

tool: D273:  float

tool: D149:  face

tool: D146:  no_sac

assistant: ```c
char *wear_bit_name(int wear_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (wear_flags & (1))
    strcat(buf, " take");
  if (wear_flags & (2))
    strcat(buf, " finger");
  if (wear_flags & (4))
    strcat(buf, " neck");
  if (wear_flags & (8))
    strcat(buf, " torso");
  if (wear_flags & (16))
    strcat(buf, " head");
  if (wear_flags & (32))
    strcat(buf, " legs");
  if (wear_flags & (64))
    strcat(buf, " feet");
  if (wear_flags & (128))
    strcat(buf, " hands");
  if (wear_flags & (256))
    strcat(buf, " arms");
  if (wear_flags & (512))
    strcat(buf, " shield");
  if (wear_flags & (1024))
    strcat(buf, " body");
  if (wear_flags & (2048))
    strcat(buf, " waist");
  if (wear_flags & (4096))
    strcat(buf, " wrist");
  if (wear_flags & (8192))
    strcat(buf, " wield");
  if (wear_flags & (16384))
    strcat(buf, " hold");
  if (wear_flags & (65536))
    strcat(buf, " float");
  if (wear_flags & (131072))
    strcat(buf, " face");
  if (wear_flags & (32768))
    strcat(buf, " no_sac");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```