user: Converte this assembly snippet into its equivalent C code:

```asm
<chaz_Floats_run>:
  endbr64
  sub    $0x8,%rsp
  lea    D20(%rip),%rdi
  call   <chaz_ConfWriter_start_module@plt>
  lea    D30(%rip),%rdi
  call   <chaz_ConfWriter_append_conf@plt>
  lea    D33(%rip),%rsi
  lea    D57(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  lea    D14(%rip),%rsi
  lea    D41(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  lea    D136(%rip),%rsi
  lea    D60(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  lea    D70(%rip),%rsi
  lea    D124(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  lea    D82(%rip),%rsi
  lea    D7(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  lea    D56(%rip),%rsi
  lea    D92(%rip),%rdi
  call   <chaz_ConfWriter_add_def@plt>
  mov    $0x0,%eax
  call   <chaz_ConfWriter_end_module@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D20
type_guessed: string
name: retrieve_data
arguments: data_tag: D30
type_guessed: string
name: retrieve_data
arguments: data_tag: D33
type_guessed: string
name: retrieve_data
arguments: data_tag: D57
type_guessed: string
name: retrieve_data
arguments: data_tag: D14
type_guessed: string
name: retrieve_data
arguments: data_tag: D41
type_guessed: string
name: retrieve_data
arguments: data_tag: D136
type_guessed: string
name: retrieve_data
arguments: data_tag: D60
type_guessed: string
name: retrieve_data
arguments: data_tag: D70
type_guessed: string
name: retrieve_data
arguments: data_tag: D124
type_guessed: string
name: retrieve_data
arguments: data_tag: D82
type_guessed: string
name: retrieve_data
arguments: data_tag: D7
type_guessed: string
name: retrieve_data
arguments: data_tag: D56
type_guessed: string
name: retrieve_data
arguments: data_tag: D92
type_guessed: string

tool: D20: Floats

tool: D30: typedef union { unsigned char c[4]; float f; } chy_floatu32;
typedef union { unsigned char c[8]; double d; } chy_floatu64;
#ifdef CHY_BIG_END
static const chy_floatu32 chy_f32inf
    = { { 0x7F, 0x80, 0, 0 } };
static const chy_floatu32 chy_f32neginf
    = { { 0xFF, 0x80, 0, 0 } };
static const chy_floatu32 chy_f32nan
    = { { 0x7F, 0xC0, 0, 0 } };
static const chy_floatu64 chy_f64inf
    = { { 0x7F, 0xF0, 0, 0, 0, 0, 0, 0 } };
static const chy_floatu64 chy_f64neginf
    = { { 0xFF, 0xF0, 0, 0, 0, 0, 0, 0 } };
static const chy_floatu64 chy_f64nan
    = { { 0x7F, 0xF8, 0, 0, 0, 0, 0, 0 } };
#else /* BIG_END */
static const chy_floatu32 chy_f32inf
    = { { 0, 0, 0x80, 0x7F } };
static const chy_floatu32 chy_f32neginf
    = { { 0, 0, 0x80, 0xFF } };
static const chy_floatu32 chy_f32nan
    = { { 0, 0, 0xC0, 0x7F } };
static const chy_floatu64 chy_f64inf
    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0x7F } };
static const chy_floatu64 chy_f64neginf
    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0xFF } };
static const chy_floatu64 chy_f64nan
    = { { 0, 0, 0, 0, 0, 0, 0xF8, 0x7F } };
#endif /* BIG_END */


tool: D33: (chy_f32inf.f)

tool: D57: F32_INF

tool: D14: (chy_f32neginf.f)

tool: D41: F32_NEGINF

tool: D136: (chy_f32nan.f)

tool: D60: F32_NAN

tool: D70: (chy_f64inf.d)

tool: D124: F64_INF

tool: D82: (chy_f64neginf.d)

tool: D7: F64_NEGINF

tool: D56: (chy_f64nan.d)

tool: D92: F64_NAN

assistant: ```c
void chaz_Floats_run(void) {
  chaz_ConfWriter_start_module("Floats");
  chaz_ConfWriter_append_conf("typedef union { unsigned char c[4]; float f; } chy_floatu32;\n"
                              "typedef union { unsigned char c[8]; double d; } chy_floatu64;\n"
                              "#ifdef CHY_BIG_END\n"
                              "static const chy_floatu32 chy_f32inf\n"
                              "    = { { 0x7F, 0x80, 0, 0 } };\n"
                              "static const chy_floatu32 chy_f32neginf\n"
                              "    = { { 0xFF, 0x80, 0, 0 } };\n"
                              "static const chy_floatu32 chy_f32nan\n"
                              "    = { { 0x7F, 0xC0, 0, 0 } };\n"
                              "static const chy_floatu64 chy_f64inf\n"
                              "    = { { 0x7F, 0xF0, 0, 0, 0, 0, 0, 0 } };\n"
                              "static const chy_floatu64 chy_f64neginf\n"
                              "    = { { 0xFF, 0xF0, 0, 0, 0, 0, 0, 0 } };\n"
                              "static const chy_floatu64 chy_f64nan\n"
                              "    = { { 0x7F, 0xF8, 0, 0, 0, 0, 0, 0 } };\n"
                              "#else /* BIG_END */\n"
                              "static const chy_floatu32 chy_f32inf\n"
                              "    = { { 0, 0, 0x80, 0x7F } };\n"
                              "static const chy_floatu32 chy_f32neginf\n"
                              "    = { { 0, 0, 0x80, 0xFF } };\n"
                              "static const chy_floatu32 chy_f32nan\n"
                              "    = { { 0, 0, 0xC0, 0x7F } };\n"
                              "static const chy_floatu64 chy_f64inf\n"
                              "    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0x7F } };\n"
                              "static const chy_floatu64 chy_f64neginf\n"
                              "    = { { 0, 0, 0, 0, 0, 0, 0xF0, 0xFF } };\n"
                              "static const chy_floatu64 chy_f64nan\n"
                              "    = { { 0, 0, 0, 0, 0, 0, 0xF8, 0x7F } };\n"
                              "#endif /* BIG_END */\n");
  chaz_ConfWriter_add_def("F32_INF", "(chy_f32inf.f)");
  chaz_ConfWriter_add_def("F32_NEGINF", "(chy_f32neginf.f)");
  chaz_ConfWriter_add_def("F32_NAN", "(chy_f32nan.f)");
  chaz_ConfWriter_add_def("F64_INF", "(chy_f64inf.d)");
  chaz_ConfWriter_add_def("F64_NEGINF", "(chy_f64neginf.d)");
  chaz_ConfWriter_add_def("F64_NAN", "(chy_f64nan.d)");
  chaz_ConfWriter_end_module();
}
```