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

```asm
<test_longlong_integer_to_float>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x0,%edi
  call   <ull2f@plt>
  ucomiss D47(%rip),%xmm0
  jp     L68
  jne    L68
L256:
  mov    $0xffffffffffffffff,%rdi
  call   <ull2f@plt>
  ucomiss D34(%rip),%xmm0
  jp     L425
  jne    L425
L124:
  movabs $0x7fffffffffffffff,%rdi
  call   <ull2f@plt>
  ucomiss D147(%rip),%xmm0
  jp     L40
  jne    L40
L166:
  movabs $0x8000000000000000,%rdi
  call   <ull2f@plt>
  ucomiss D147(%rip),%xmm0
  jp     L290
  jne    L290
L334:
  mov    $0x0,%edi
  call   <ull2d@plt>
  ucomisd D47(%rip),%xmm0
  jp     L30
  jne    L30
L250:
  mov    $0xffffffffffffffff,%rdi
  call   <ull2d@plt>
  ucomisd D97(%rip),%xmm0
  jp     L65
  jne    L65
L93:
  movabs $0x7fffffffffffffff,%rdi
  call   <ull2d@plt>
  ucomisd D39(%rip),%xmm0
  jp     L19
  jne    L19
L304:
  movabs $0x8000000000000000,%rdi
  call   <ull2d@plt>
  ucomisd D39(%rip),%xmm0
  jp     L340
  jne    L340
L78:
  mov    $0x0,%edi
  call   <sll2f@plt>
  ucomiss D47(%rip),%xmm0
  jp     L106
  jne    L106
L163:
  mov    $0xffffffffffffffff,%rdi
  call   <sll2f@plt>
  ucomiss D113(%rip),%xmm0
  jp     L276
  jne    L276
L215:
  movabs $0x7fffffffffffffff,%rdi
  call   <sll2f@plt>
  movss  D147(%rip),%xmm1
  call   <fnear@plt>
  test   %eax,%eax
  je     L225
L300:
  movabs $0x8000000000000000,%rdi
  call   <sll2f@plt>
  ucomiss D157(%rip),%xmm0
  jp     L392
  jne    L392
L184:
  mov    $0x0,%edi
  call   <sll2d@plt>
  ucomisd D47(%rip),%xmm0
  jp     L446
  jne    L446
L190:
  mov    $0xffffffffffffffff,%rdi
  call   <sll2d@plt>
  ucomisd D108(%rip),%xmm0
  jp     L130
  jne    L130
L202:
  movabs $0x7fffffffffffffff,%rdi
  call   <sll2d@plt>
  movsd  D39(%rip),%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L7
L371:
  movabs $0x8000000000000000,%rdi
  call   <sll2d@plt>
  movsd  D112(%rip),%xmm1
  call   <dnear@plt>
  test   %eax,%eax
  je     L332
L114:
  add    $0x8,%rsp
  ret
L68:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L256
L425:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L124
L40:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L166
L290:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L334
L30:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L250
L65:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L93
L19:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L304
L340:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L78
L106:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L163
L276:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L215
L225:
  call   <abort@plt>
  jmp    L300
L392:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L184
L446:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L190
L130:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L202
L7:
  call   <abort@plt>
  jmp    L371
L332:
  call   <abort@plt>
  jmp    L114
```

tool_calls: name: unpack_data
arguments: tag: D47
datatype: byte[8]
name: unpack_data
arguments: tag: D34
datatype: byte[4]
name: unpack_data
arguments: tag: D147
datatype: byte[4]
name: unpack_data
arguments: tag: D97
datatype: byte[8]
name: unpack_data
arguments: tag: D39
datatype: byte[8]
name: unpack_data
arguments: tag: D113
datatype: byte[4]
name: unpack_data
arguments: tag: D157
datatype: byte[4]
name: unpack_data
arguments: tag: D108
datatype: byte[8]
name: unpack_data
arguments: tag: D112
datatype: byte[8]

tool: {"D47": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

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

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

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

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

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

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

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

tool: {"D112": [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();
}
```