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

```asm
<krocllvm_typestr>:
  endbr64
  push   %rbx
  test   %edi,%edi
  je     L85
  test   $0x1000,%edi
  jne    L12
  test   $0x2000,%edi
  je     L2
  mov    %edi,%eax
  and    $0xfff,%eax
  cmp    $0x20,%eax
  je     L96
  cmp    $0x40,%eax
  je     L89
  cmp    $0x80,%eax
  je     L94
  mov    %edi,%ecx
  mov    $0x1c2,%edx
  lea    D24(%rip),%rsi
  lea    D122(%rip),%rdi
  lea    D34(%rip),%rbx
  call   <nocc_pinternal@plt>
  movslq D88(%rip),%rax
  jmp    L114
  nop
L12:
  mov    %edi,%edx
  movslq D88(%rip),%rdi
  lea    D34(%rip),%rbx
  xor    %eax,%eax
  and    $0xfff,%edx
  lea    D208(%rip),%rsi
  add    %rbx,%rdi
  call   <sprintf@plt>
  movslq D88(%rip),%rax
L114:
  mov    $0x8,%edx
  sub    %eax,%edx
  add    %rbx,%rax
  pop    %rbx
  mov    %edx,D36(%rip)
  ret
L85:
  movslq D36(%rip),%rdx
  lea    D34(%rip),%rbx
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x64696f76,(%rdx)
  movb   $0x0,0x4(%rdx)
  jmp    L114
L2:
  mov    %edi,%ecx
  mov    $0x1c5,%edx
  lea    D24(%rip),%rsi
  lea    D36(%rip),%rdi
  lea    D34(%rip),%rbx
  call   <nocc_pinternal@plt>
  movslq D36(%rip),%rax
  jmp    L114
  nopw   0x0(%rax,%rax,1)
L94:
  movslq D36(%rip),%rdx
  lea    D34(%rip),%rbx
  mov    $0x38,%ecx
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x32317066,(%rdx)
  mov    %cx,0x4(%rdx)
  jmp    L114
  nopl   0x0(%rax,%rax,1)
L96:
  movslq D36(%rip),%rdx
  lea    D34(%rip),%rbx
  mov    $0x74,%edi
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x616f6c66,(%rdx)
  mov    %di,0x4(%rdx)
  jmp    L114
  nopl   0x0(%rax,%rax,1)
L89:
  movslq D36(%rip),%rdx
  lea    D34(%rip),%rbx
  mov    $0x656c,%esi
  mov    %rdx,%rax
  add    %rbx,%rdx
  movl   $0x62756f64,(%rdx)
  mov    %si,0x4(%rdx)
  movb   $0x0,0x6(%rdx)
  jmp    L114
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D24
type_infered: string
name: extract_symbolic_data
arguments: data_label: D122
type_infered: string
name: extract_symbolic_data
arguments: data_label: D208
type_infered: string
name: extract_symbolic_data
arguments: data_label: D36
type_infered: string

tool: D24: /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: D122: krocllvm_typestr(): invalid FP type 0x%8.8x


tool: D208: i%d

tool: D36: 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];
}
```