user: 这段汇编代码用C语言表示是什么样的：

```asm
<krocllvm_typestr>:
  endbr64
  push   %rbx
  test   %edi,%edi
  je     L116
  test   $0x1000,%edi
  jne    L3
  test   $0x2000,%edi
  je     L70
  mov    %edi,%eax
  and    $0xfff,%eax
  cmp    $0x20,%eax
  je     L88
  cmp    $0x40,%eax
  je     L55
  cmp    $0x80,%eax
  je     L72
  mov    %edi,%ecx
  mov    $0x1c2,%edx
  lea    D177(%rip),%rsi
  lea    D97(%rip),%rdi
  lea    D101(%rip),%rbx
  call   <nocc_pinternal@plt>
  movslq D10(%rip),%rax
  jmp    L117
  nop
L3:
  mov    %edi,%edx
  movslq D10(%rip),%rdi
  lea    D101(%rip),%rbx
  xor    %eax,%eax
  and    $0xfff,%edx
  lea    D83(%rip),%rsi
  add    %rbx,%rdi
  call   <sprintf@plt>
  movslq D10(%rip),%rax
L117:
  mov    $0x8,%edx
  sub    %eax,%edx
  add    %rbx,%rax
  pop    %rbx
  mov    %edx,D93(%rip)
  ret
L116:
  movslq D93(%rip),%rdx
  lea    D101(%rip),%rbx
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x64696f76,(%rdx)
  movb   $0x0,0x4(%rdx)
  jmp    L117
L70:
  mov    %edi,%ecx
  mov    $0x1c5,%edx
  lea    D177(%rip),%rsi
  lea    D93(%rip),%rdi
  lea    D101(%rip),%rbx
  call   <nocc_pinternal@plt>
  movslq D93(%rip),%rax
  jmp    L117
  nopw   0x0(%rax,%rax,1)
L72:
  movslq D93(%rip),%rdx
  lea    D101(%rip),%rbx
  mov    $0x38,%ecx
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x32317066,(%rdx)
  mov    %cx,0x4(%rdx)
  jmp    L117
  nopl   0x0(%rax,%rax,1)
L88:
  movslq D93(%rip),%rdx
  lea    D101(%rip),%rbx
  mov    $0x74,%edi
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x616f6c66,(%rdx)
  mov    %di,0x4(%rdx)
  jmp    L117
  nopl   0x0(%rax,%rax,1)
L55:
  movslq D93(%rip),%rdx
  lea    D101(%rip),%rbx
  mov    $0x656c,%esi
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x62756f64,(%rdx)
  mov    %si,0x4(%rdx)
  movb   $0x0,0x6(%rdx)
  jmp    L117
```

tool_calls: name: unpack_data
arguments: data_label: D177
type_infered: string
name: unpack_data
arguments: data_label: D97
type_infered: string
name: unpack_data
arguments: data_label: D83
type_infered: string
name: unpack_data
arguments: data_label: D93
type_infered: string

tool: D177: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/concurrency/nocc/refs/heads/master/backend/krocllvm.c

tool: D97: krocllvm_typestr(): invalid FP type 0x%8.8x


tool: D83: i%d

tool: D93: krocllvm_typestr(): invalid type 0x%8.8x


assistant: ```c
char *krocllvm_typestr(const int type) {
  static char buf[16];
  static int boffs = 0;
  int thisoff;
  if (type == 0x00000000) {
    sprintf(&buf[boffs], "void");
  } else if (type & 0x00001000) {
    sprintf(&buf[boffs], "i%d", type & 0xfff);
  } else if (type & 0x00002000) {
    if ((type & 0xfff) == 32) {
      sprintf(&buf[boffs], "float");
    } else if ((type & 0xfff) == 64) {
      sprintf(&buf[boffs], "double");
    } else if ((type & 0xfff) == 128) {
      sprintf(&buf[boffs], "fp128");
    } else {
      nocc_pinternal(("krocllvm_typestr(): invalid FP type 0x%8.8x\n"), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/concurrency/nocc/refs/heads/master/backend/krocllvm.c", 450, (unsigned int)type);
    }
  } else {
    nocc_pinternal(("krocllvm_typestr(): invalid type 0x%8.8x\n"), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/concurrency/nocc/refs/heads/master/backend/krocllvm.c", 453, (unsigned int)type);
  }
  thisoff = boffs;
  boffs = 8 - boffs;
  return &buf[thisoff];
}
```