user: What would the C source look like for the assembly code provided here:

```asm
<test_integer_to_float>:
  endbr64
  sub    $0x8,%rsp
  xor    %edi,%edi
  call   <u2f@plt>
  pxor   %xmm2,%xmm2
  ucomiss %xmm2,%xmm0
  jp     L215
  jne    L215
L110:
  mov    $0xffffffff,%edi
  call   <u2f@plt>
  movss  D75(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L172
L328:
  mov    $0x7fffffff,%edi
  call   <u2f@plt>
  movss  D98(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L248
L301:
  mov    $0x80000000,%edi
  call   <u2f@plt>
  ucomiss D98(%rip),%xmm0
  jp     L377
  jne    L377
L227:
  xor    %edi,%edi
  call   <u2d@plt>
  pxor   %xmm3,%xmm3
  ucomisd %xmm3,%xmm0
  jp     L178
  jne    L178
L200:
  mov    $0xffffffff,%edi
  call   <u2d@plt>
  movsd  D13(%rip),%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L61
L74:
  mov    $0x7fffffff,%edi
  call   <u2d@plt>
  mov    D41(%rip),%rax
  movq   %rax,%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L143
L164:
  mov    $0x80000000,%edi
  call   <u2d@plt>
  ucomisd D20(%rip),%xmm0
  jp     L342
  jne    L342
L211:
  xor    %edi,%edi
  call   <s2f@plt>
  pxor   %xmm4,%xmm4
  ucomiss %xmm4,%xmm0
  jp     L216
  jne    L216
L118:
  mov    $0xffffffff,%edi
  call   <s2f@plt>
  movss  D1(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L304
L316:
  mov    $0x7fffffff,%edi
  call   <s2f@plt>
  movss  D98(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L2
L171:
  mov    $0x80000000,%edi
  call   <s2f@plt>
  ucomiss D93(%rip),%xmm0
  jp     L179
  jne    L179
L136:
  xor    %edi,%edi
  call   <s2d@plt>
  pxor   %xmm5,%xmm5
  ucomisd %xmm5,%xmm0
  jp     L162
  jne    L162
L347:
  mov    $0xffffffff,%edi
  call   <s2d@plt>
  movsd  D37(%rip),%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L335
L214:
  mov    $0x7fffffff,%edi
  call   <s2d@plt>
  mov    D41(%rip),%rax
  movq   %rax,%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L323
L263:
  mov    $0x80000000,%edi
  call   <s2d@plt>
  ucomisd D4(%rip),%xmm0
  jp     L153
  jne    L153
  add    $0x8,%rsp
  ret
  nopl   (%rax)
L215:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L110
  nopl   0x0(%rax)
L153:
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    10c0 <abort@plt>
  nopl   0x0(%rax,%rax,1)
L323:
  call   <abort@plt>
  jmp    L263
  nopw   0x0(%rax,%rax,1)
L335:
  call   <abort@plt>
  jmp    L214
  nopw   0x0(%rax,%rax,1)
L162:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L347
  nopl   0x0(%rax)
L179:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L136
  nopl   0x0(%rax)
L2:
  call   <abort@plt>
  jmp    L171
  nopw   0x0(%rax,%rax,1)
L304:
  call   <abort@plt>
  jmp    L316
  nopw   0x0(%rax,%rax,1)
L216:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L118
  nopl   0x0(%rax)
L342:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L211
  nopl   0x0(%rax)
L143:
  call   <abort@plt>
  jmp    L164
  nopw   0x0(%rax,%rax,1)
L61:
  call   <abort@plt>
  jmp    L74
  nopw   0x0(%rax,%rax,1)
L178:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L200
  nopl   0x0(%rax)
L377:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L227
  nopl   0x0(%rax)
L248:
  call   <abort@plt>
  jmp    L301
  nopw   0x0(%rax,%rax,1)
L172:
  call   <abort@plt>
  jmp    L328
```

tool_calls: name: retrieve_data
arguments: data_label: D75
type_infered: byte[4]
name: retrieve_data
arguments: data_label: D98
type_infered: byte[4]
name: retrieve_data
arguments: data_label: D13
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D41
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D20
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D1
type_infered: byte[4]
name: retrieve_data
arguments: data_label: D93
type_infered: byte[4]
name: retrieve_data
arguments: data_label: D37
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D4
type_infered: byte[8]

tool: {"D75": [0x00,0x00,0x80,0x4f]}

tool: {"D98": [0x00,0x00,0x00,0x4f]}

tool: {"D13": [0x00,0x00,0xe0,0xff,0xff,0xff,0xef,0x41]}

tool: {"D41": [0x00,0x00,0xc0,0xff,0xff,0xff,0xdf,0x41]}

tool: {"D20": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x41]}

tool: {"D1": [0x00,0x00,0x80,0xbf]}

tool: {"D93": [0x00,0x00,0x00,0xcf]}

tool: {"D37": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

tool: {"D4": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xc1]}

assistant: ```c
test_integer_to_float() {
  if (u2f(0U) != (float)0U)
    abort();
  if (!fnear(u2f(~0U), (float)~0U))
    abort();
  if (!fnear(u2f((~0U) >> 1), (float)((~0U) >> 1)))
    abort();
  if (u2f(~((~0U) >> 1)) != (float)~((~0U) >> 1))
    abort();
  if (u2d(0U) != (double)0U)
    abort();
  if (!dnear(u2d(~0U), (double)~0U))
    abort();
  if (!dnear(u2d((~0U) >> 1), (double)((~0U) >> 1)))
    abort();
  if (u2d(~((~0U) >> 1)) != (double)~((~0U) >> 1))
    abort();
  if (s2f(0) != (float)0)
    abort();
  if (!fnear(s2f(~0), (float)~0))
    abort();
  if (!fnear(s2f((int)((~0U) >> 1)), (float)(int)((~0U) >> 1)))
    abort();
  if (s2f((int)(~((~0U) >> 1))) != (float)(int)~((~0U) >> 1))
    abort();
  if (s2d(0) != (double)0)
    abort();
  if (!dnear(s2d(~0), (double)~0))
    abort();
  if (!dnear(s2d((int)((~0U) >> 1)), (double)(int)((~0U) >> 1)))
    abort();
  if (s2d((int)~((~0U) >> 1)) != (double)(int)~((~0U) >> 1))
    abort();
}
```