user: 下面的汇编指令对应的C源代码是什么：

```asm
<material_flags_name>:
  endbr64
  push   %rbx
  mov    %edi,%ebx
  movb   $0x0,D202(%rip)
  test   $0x1,%dil
  jne    L200
L47:
  test   $0x2,%bl
  jne    L231
L224:
  test   $0x4,%bl
  jne    L57
L23:
  test   $0x8,%bl
  jne    L80
L16:
  test   $0x10,%bl
  jne    L195
L38:
  test   $0x20,%bl
  jne    L261
L82:
  test   $0x40,%bl
  jne    L204
L242:
  test   $0x80,%bl
  jne    L31
L214:
  test   $0x1,%bh
  jne    L76
L265:
  test   $0x2,%bh
  jne    L108
L68:
  test   $0x4,%bh
  jne    L106
L129:
  test   $0x8,%bh
  jne    L259
L161:
  test   $0x10,%bh
  jne    L0
L13:
  test   $0x20,%bh
  jne    L162
L255:
  cmpb   $0x0,D202(%rip)
  lea    D284(%rip),%rax
  lea    D159(%rip),%rdx
  cmove  %rdx,%rax
  pop    %rbx
  ret
L200:
  lea    D1(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L47
L231:
  lea    D21(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L224
L57:
  lea    D171(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L23
L80:
  lea    D305(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L16
L195:
  lea    D165(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L38
L261:
  lea    D275(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L82
L204:
  lea    D82(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L242
L31:
  lea    D211(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L214
L76:
  lea    D10(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L265
L108:
  lea    D157(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L68
L106:
  lea    D306(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L129
L259:
  lea    D289(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L161
L0:
  lea    D176(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L13
L162:
  lea    D188(%rip),%rsi
  lea    D202(%rip),%rdi
  call   <strcat@plt>
  jmp    L255
```

tool_calls: name: parse_data
arguments: label: D159
data_type: string
name: parse_data
arguments: label: D1
data_type: string
name: parse_data
arguments: label: D21
data_type: string
name: parse_data
arguments: label: D171
data_type: string
name: parse_data
arguments: label: D305
data_type: string
name: parse_data
arguments: label: D165
data_type: string
name: parse_data
arguments: label: D275
data_type: string
name: parse_data
arguments: label: D82
data_type: string
name: parse_data
arguments: label: D211
data_type: string
name: parse_data
arguments: label: D10
data_type: string
name: parse_data
arguments: label: D157
data_type: string
name: parse_data
arguments: label: D306
data_type: string
name: parse_data
arguments: label: D289
data_type: string
name: parse_data
arguments: label: D176
data_type: string
name: parse_data
arguments: label: D188
data_type: string

tool: D159: none

tool: D1:  legend

tool: D21:  metal

tool: D171:  mineral

tool: D305:  organic

tool: D165:  gemstone

tool: D275:  wood

tool: D82:  precious

tool: D211:  semi_prec

tool: D10:  brittle

tool: D157:  flammable

tool: D306:  element

tool: D289:  spark

tool: D176:  powder

tool: D188:  liquid

assistant: ```c
char *material_flags_name(int matl_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (matl_flags & 1)
    strcat(buf, " legend");
  if (matl_flags & 2)
    strcat(buf, " metal");
  if (matl_flags & 4)
    strcat(buf, " mineral");
  if (matl_flags & 8)
    strcat(buf, " organic");
  if (matl_flags & 16)
    strcat(buf, " gemstone");
  if (matl_flags & 32)
    strcat(buf, " wood");
  if (matl_flags & 64)
    strcat(buf, " precious");
  if (matl_flags & 128)
    strcat(buf, " semi_prec");
  if (matl_flags & 256)
    strcat(buf, " brittle");
  if (matl_flags & 512)
    strcat(buf, " flammable");
  if (matl_flags & 1024)
    strcat(buf, " element");
  if (matl_flags & 2048)
    strcat(buf, " spark");
  if (matl_flags & 4096)
    strcat(buf, " powder");
  if (matl_flags & 8192)
    strcat(buf, " liquid");
  return (buf[0] != '\0') ? buf + 1 : "none";
}
```