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

```asm
<test_longlong_integer_to_float>:
  endbr64
  sub    $0x8,%rsp
  xor    %edi,%edi
  call   <ull2f@plt>
  pxor   %xmm2,%xmm2
  ucomiss %xmm2,%xmm0
  jp     L263
  jne    L263
L88:
  mov    $0xffffffffffffffff,%rdi
  call   <ull2f@plt>
  ucomiss D90(%rip),%xmm0
  jp     L338
  jne    L338
L272:
  movabs $0x7fffffffffffffff,%rdi
  call   <ull2f@plt>
  ucomiss D99(%rip),%xmm0
  jp     L121
  jne    L121
L355:
  movabs $0x8000000000000000,%rdi
  call   <ull2f@plt>
  ucomiss D99(%rip),%xmm0
  jp     L0
  jne    L0
L108:
  xor    %edi,%edi
  call   <ull2d@plt>
  pxor   %xmm3,%xmm3
  ucomisd %xmm3,%xmm0
  jp     L126
  jne    L126
L144:
  mov    $0xffffffffffffffff,%rdi
  call   <ull2d@plt>
  ucomisd D23(%rip),%xmm0
  jp     L146
  jne    L146
L425:
  movabs $0x7fffffffffffffff,%rdi
  call   <ull2d@plt>
  ucomisd D109(%rip),%xmm0
  jp     L9
  jne    L9
L409:
  movabs $0x8000000000000000,%rdi
  call   <ull2d@plt>
  ucomisd D109(%rip),%xmm0
  jp     L133
  jne    L133
L21:
  xor    %edi,%edi
  call   <sll2f@plt>
  pxor   %xmm4,%xmm4
  ucomiss %xmm4,%xmm0
  jp     L155
  jne    L155
L384:
  mov    $0xffffffffffffffff,%rdi
  call   <sll2f@plt>
  ucomiss D35(%rip),%xmm0
  jp     L433
  jne    L433
L268:
  movabs $0x7fffffffffffffff,%rdi
  call   <sll2f@plt>
  movss  D99(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L64
L365:
  movabs $0x8000000000000000,%rdi
  call   <sll2f@plt>
  ucomiss D70(%rip),%xmm0
  jp     L397
  jne    L397
L436:
  xor    %edi,%edi
  call   <sll2d@plt>
  pxor   %xmm5,%xmm5
  ucomisd %xmm5,%xmm0
  jp     L148
  jne    L148
L190:
  mov    $0xffffffffffffffff,%rdi
  call   <sll2d@plt>
  ucomisd D63(%rip),%xmm0
  jp     L271
  jne    L271
L77:
  movabs $0x7fffffffffffffff,%rdi
  call   <sll2d@plt>
  mov    D109(%rip),%rax
  movq   %rax,%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L411
L257:
  movabs $0x8000000000000000,%rdi
  call   <sll2d@plt>
  movsd  D66(%rip),%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L123
  add    $0x8,%rsp
  ret
  nopl   0x0(%rax)
L263:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L88
  nopl   0x0(%rax)
L123:
  add    $0x8,%rsp
  jmp    10c0 <abort@plt>
  nopl   0x0(%rax)
L411:
  call   <abort@plt>
  jmp    L257
  nop
L271:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L77
  nopl   0x0(%rax)
L148:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L190
  nopl   0x0(%rax)
L397:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L436
  nopl   0x0(%rax)
L64:
  call   <abort@plt>
  jmp    L365
  nopw   0x0(%rax,%rax,1)
L433:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L268
  nopl   0x0(%rax)
L155:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L384
  nopl   0x0(%rax)
L133:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L21
  nopl   0x0(%rax)
L9:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L409
  nopl   0x0(%rax)
L146:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L425
  nopl   0x0(%rax)
L126:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L144
  nopl   0x0(%rax)
L0:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L108
  nopl   0x0(%rax)
L121:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L355
  nopl   0x0(%rax)
L338:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L272
```

tool_calls: name: retrieve_data
arguments: data_label: D90
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D99
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D23
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D109
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D35
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D70
type_guessed: byte[4]
name: retrieve_data
arguments: data_label: D63
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D66
type_guessed: byte[8]

tool: {"D90": [0x00,0x00,0x80,0x5f]}

tool: {"D99": [0x00,0x00,0x00,0x5f]}

tool: {"D23": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x43]}

tool: {"D109": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x43]}

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

tool: {"D70": [0x00,0x00,0x00,0xdf]}

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

tool: {"D66": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xc3]}

assistant: ```c
test_longlong_integer_to_float() {
  if (ull2f(0ULL) != (float)0ULL)
    abort();
  if (ull2f(~0ULL) != (float)~0ULL)
    abort();
  if (ull2f((~0ULL) >> 1) != (float)((~0ULL) >> 1))
    abort();
  if (ull2f(~((~0ULL) >> 1)) != (float)~((~0ULL) >> 1))
    abort();
  if (ull2d(0ULL) != (double)0ULL)
    abort();
  if (ull2d(~0ULL) != (double)~0ULL)
    abort();
  if (ull2d((~0ULL) >> 1) != (double)((~0ULL) >> 1))
    abort();
  if (ull2d(~((~0ULL) >> 1)) != (double)~((~0ULL) >> 1))
    abort();
  if (sll2f(0LL) != (float)0LL)
    abort();
  if (sll2f(~0LL) != (float)~0LL)
    abort();
  if (!fnear(sll2f((long long int)((~0ULL) >> 1)), (float)(long long int)((~0ULL) >> 1)))
    abort();
  if (sll2f((long long int)(~((~0ULL) >> 1))) != (float)(long long int)~((~0ULL) >> 1))
    abort();
  if (sll2d(0LL) != (double)0LL)
    abort();
  if (sll2d(~0LL) != (double)~0LL)
    abort();
  if (!dnear(sll2d((long long int)((~0ULL) >> 1)), (double)(long long int)((~0ULL) >> 1)))
    abort();
  if (!dnear(sll2d((long long int)~((~0ULL) >> 1)), (double)(long long int)~((~0ULL) >> 1)))
    abort();
}
```