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

```asm
<do_test>:
  endbr64
  push   %r13
  lea    D44(%rip),%r13
  push   %r12
  push   %rbp
  lea    D31(%rip),%rbp
  push   %rbx
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <test_strtof@plt>
  mov    %rbp,%rdi
  mov    %eax,%ebx
  call   <test_strtod@plt>
  mov    %rbp,%rdi
  or     %eax,%ebx
  call   <test_strtold@plt>
  mov    %r13,%rdi
  or     %ebx,%eax
  mov    %eax,%ebp
  call   <test_strtof@plt>
  mov    %r13,%rdi
  mov    %eax,%ebx
  call   <test_strtod@plt>
  or     %ebx,%ebp
  mov    %r13,%rdi
  lea    D48(%rip),%r13
  mov    %eax,%r12d
  call   <test_strtold@plt>
  or     %r12d,%ebp
  mov    %r13,%rdi
  or     %eax,%ebp
  call   <test_strtof@plt>
  mov    %r13,%rdi
  mov    %eax,%ebx
  call   <test_strtod@plt>
  or     %ebp,%ebx
  mov    %r13,%rdi
  lea    D11(%rip),%r13
  mov    %eax,%r12d
  call   <test_strtold@plt>
  or     %r12d,%ebx
  mov    %r13,%rdi
  or     %eax,%ebx
  call   <test_strtof@plt>
  mov    %r13,%rdi
  mov    %eax,%ebp
  call   <test_strtod@plt>
  or     %ebx,%ebp
  mov    %r13,%rdi
  lea    D18(%rip),%r13
  mov    %eax,%r12d
  call   <test_strtold@plt>
  or     %r12d,%ebp
  mov    %r13,%rdi
  or     %eax,%ebp
  call   <test_strtof@plt>
  mov    %r13,%rdi
  mov    %eax,%ebx
  call   <test_strtod@plt>
  or     %ebp,%ebx
  mov    %r13,%rdi
  mov    %eax,%r12d
  call   <test_strtold@plt>
  or     %r12d,%ebx
  add    $0x8,%rsp
  or     %ebx,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D44
type_infered: string
name: retrieve_data
arguments: data_tag: D31
type_infered: string
name: retrieve_data
arguments: data_tag: D48
type_infered: string
name: retrieve_data
arguments: data_tag: D11
type_infered: string
name: retrieve_data
arguments: data_tag: D18
type_infered: string

tool: D44: NaN(1234)something

tool: D31: NaN(blabla)something

tool: D48: NaN(4294967295)something

tool: D11: NaN(18446744073709551615)something

tool: D18: NaN(0)something

assistant: ```c
int do_test(void) {
  int result = 0;
  result |= ({
    int result = 0;
    result |= test_strtof("NaN(blabla)something");
    result |= test_strtod("NaN(blabla)something");
    result |= test_strtold("NaN(blabla)something");
    result;
  });
  result |= ({
    int result = 0;
    result |= test_strtof("NaN(1234)something");
    result |= test_strtod("NaN(1234)something");
    result |= test_strtold("NaN(1234)something");
    result;
  });
  result |= ({
    int result = 0;
    result |= test_strtof("NaN(4294967295)something");
    result |= test_strtod("NaN(4294967295)something");
    result |= test_strtold("NaN(4294967295)something");
    result;
  });
  result |= ({
    int result = 0;
    result |= test_strtof("NaN(18446744073709551615)something");
    result |= test_strtod("NaN(18446744073709551615)something");
    result |= test_strtold("NaN(18446744073709551615)something");
    result;
  });
  result |= ({
    int result = 0;
    result |= test_strtof("NaN(0)something");
    result |= test_strtod("NaN(0)something");
    result |= test_strtold("NaN(0)something");
    result;
  });
  return result;
}
```