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

```asm
<float_format>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movss  %xmm0,-0x24(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x24(%rbp),%eax
  movd   %eax,%xmm0
  call   <fabs@plt>
  movd   %xmm0,%eax
  mov    %eax,-0x14(%rbp)
  lea    -0x18(%rbp),%rdx
  mov    -0x24(%rbp),%eax
  mov    %rdx,%rdi
  movd   %eax,%xmm0
  call   <modff@plt>
  movd   %xmm0,%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x10(%rbp),%eax
  movd   %eax,%xmm0
  call   <fabs@plt>
  movd   %xmm0,%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x24(%rbp),%eax
  movd   %eax,%xmm0
  call   <isnanf@plt>
  test   %rax,%rax
  je     L153
  lea    D43(%rip),%rax
  jmp    L128
L153:
  mov    -0x24(%rbp),%eax
  movd   %eax,%xmm0
  call   <isinff@plt>
  test   %rax,%rax
  je     L123
  lea    D67(%rip),%rax
  jmp    L128
L123:
  movss  -0x14(%rbp),%xmm0
  comiss D207(%rip),%xmm0
  jbe    L222
  lea    D17(%rip),%rax
  jmp    L128
L222:
  pxor   %xmm1,%xmm1
  cvtss2sd -0xc(%rbp),%xmm1
  movsd  D12(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L28
  lea    D165(%rip),%rax
  jmp    L128
L28:
  movss  -0x14(%rbp),%xmm0
  comiss D174(%rip),%xmm0
  jb     L102
  lea    D209(%rip),%rax
  jmp    L128
L102:
  movss  -0x14(%rbp),%xmm0
  comiss D61(%rip),%xmm0
  jb     L217
  lea    D29(%rip),%rax
  jmp    L128
L217:
  movss  -0x14(%rbp),%xmm0
  comiss D51(%rip),%xmm0
  jb     L21
  lea    D166(%rip),%rax
  jmp    L128
L21:
  movss  -0x14(%rbp),%xmm0
  comiss D88(%rip),%xmm0
  jb     L151
  lea    D122(%rip),%rax
  jmp    L128
L151:
  movss  -0x14(%rbp),%xmm0
  comiss D153(%rip),%xmm0
  jb     L51
  lea    D164(%rip),%rax
  jmp    L128
L51:
  pxor   %xmm0,%xmm0
  cvtss2sd -0x14(%rbp),%xmm0
  comisd D183(%rip),%xmm0
  jb     L37
  lea    D114(%rip),%rax
  jmp    L128
L37:
  pxor   %xmm1,%xmm1
  cvtss2sd -0x14(%rbp),%xmm1
  movsd  D75(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L97
  lea    D201(%rip),%rax
  jmp    L128
L97:
  lea    D25(%rip),%rax
L128:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L137
  call   <__stack_chk_fail@plt>
L137:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D43
type_infered: string
name: extract_symbolic_data
arguments: tag: D67
type_infered: string
name: extract_symbolic_data
arguments: tag: D207
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D17
type_infered: string
name: extract_symbolic_data
arguments: tag: D12
type_infered: f64
name: extract_symbolic_data
arguments: tag: D165
type_infered: string
name: extract_symbolic_data
arguments: tag: D174
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D209
type_infered: string
name: extract_symbolic_data
arguments: tag: D61
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D29
type_infered: string
name: extract_symbolic_data
arguments: tag: D51
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D166
type_infered: string
name: extract_symbolic_data
arguments: tag: D88
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D122
type_infered: string
name: extract_symbolic_data
arguments: tag: D153
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D164
type_infered: string
name: extract_symbolic_data
arguments: tag: D183
type_infered: f64[2]
name: extract_symbolic_data
arguments: tag: D114
type_infered: string
name: extract_symbolic_data
arguments: tag: D75
type_infered: byte[8]
name: extract_symbolic_data
arguments: tag: D201
type_infered: string
name: extract_symbolic_data
arguments: tag: D25
type_infered: string

tool: D43:     NAN

tool: D67:     INF

tool: {"D207": [0x80,0x96,0x18,0x4b]}

tool: D17: %1.4e

tool: D12: 1e-05

tool: D165: %7.0f

tool: {"D174": [0x00,0x50,0xc3,0x47]}

tool: D209: %.0f

tool: {"D61": [0x00,0x40,0x1c,0x46]}

tool: D29: %.1f

tool: {"D51": [0x00,0x00,0x7a,0x44]}

tool: D166: %.2f

tool: {"D88": [0x00,0x00,0xc8,0x42]}

tool: D122: %.3f

tool: {"D153": [0x00,0x00,0x20,0x41]}

tool: D164: %.4f

tool: {"D183": [0.001,1e-10]}

tool: D114: %.5f

tool: {"D75": [0xbb,0xbd,0xd7,0xd9,0xdf,0x7c,0xdb,0x3d]}

tool: D201: %5.1f

tool: D25: %8.8f

assistant: ```c
char *float_format(float aFloat) {
  float fInt;
  float fAbsFloat = fabs(aFloat);
  float fFrac = modff(aFloat, &fInt);
  float fAbsFrac = fabs(fFrac);
  if (isnanf(aFloat)) {
    return "    NAN";
  } else if (isinff(aFloat)) {
    return "    INF";
  } else if (fAbsFloat > 10000000) {
    return "%1.4e";
  } else if (fAbsFrac < 0.00001) {
    return "%7.0f";
  } else if (fAbsFloat >= 100000) {
    return "%.0f";
  } else if (fAbsFloat >= 10000) {
    return "%.1f";
  } else if (fAbsFloat >= 1000) {
    return "%.2f";
  } else if (fAbsFloat >= 100) {
    return "%.3f";
  } else if (fAbsFloat >= 10) {
    return "%.4f";
  } else if (fAbsFloat >= 0.001) {
    return "%.5f";
  } else if (fAbsFloat < 1.0e-10) {
    return "%5.1f";
  } else {
    return "%8.8f";
  }
}
```