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

```asm
<check_add_double>:
  endbr64
  sub    $0x288,%rsp
  pxor   %xmm2,%xmm2
  mov    $0x1,%eax
  movsd  D65(%rip),%xmm13
  movsd  D100(%rip),%xmm12
  movq   $0x0,(%rsp)
  movsd  %xmm13,0x80(%rsp)
  movsd  %xmm12,0x88(%rsp)
  movsd  0x80(%rsp),%xmm1
  movsd  0x88(%rsp),%xmm0
  ucomisd %xmm2,%xmm1
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm0
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movq   D29(%rip),%xmm1
  movq   D38(%rip),%xmm0
  movsd  0x80(%rsp),%xmm4
  movsd  D38(%rip),%xmm3
  andpd  %xmm1,%xmm4
  orpd   %xmm0,%xmm4
  ucomisd %xmm3,%xmm4
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x88(%rsp),%xmm4
  andpd  %xmm1,%xmm4
  orpd   %xmm0,%xmm4
  ucomisd %xmm3,%xmm4
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x80(%rsp),%xmm4
  movsd  0x88(%rsp),%xmm5
  movsd  (%rsp),%xmm6
  addsd  %xmm6,%xmm4
  movsd  %xmm4,0x90(%rsp)
  movsd  %xmm5,0x98(%rsp)
  movsd  0x90(%rsp),%xmm5
  movsd  0x98(%rsp),%xmm4
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm4
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x90(%rsp),%xmm4
  andpd  %xmm1,%xmm4
  orpd   %xmm0,%xmm4
  ucomisd %xmm3,%xmm4
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x98(%rsp),%xmm4
  andpd  %xmm1,%xmm4
  orpd   %xmm0,%xmm4
  ucomisd %xmm3,%xmm4
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D21(%rip),%xmm11
  mov    $0x1,%eax
  movsd  D72(%rip),%xmm10
  movq   $0x0,0x8(%rsp)
  movsd  %xmm11,0xa0(%rsp)
  movsd  %xmm10,0xa8(%rsp)
  movsd  0xa0(%rsp),%xmm5
  movsd  0xa8(%rsp),%xmm4
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm4
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0xa0(%rsp),%xmm4
  andpd  %xmm1,%xmm4
  orpd   %xmm0,%xmm4
  ucomisd %xmm3,%xmm4
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xa8(%rsp),%xmm5
  movsd  D12(%rip),%xmm4
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xa0(%rsp),%xmm5
  movsd  0xa8(%rsp),%xmm6
  movsd  0x8(%rsp),%xmm7
  addsd  %xmm7,%xmm5
  movsd  %xmm5,0xb0(%rsp)
  movsd  %xmm6,0xb8(%rsp)
  movsd  0xb0(%rsp),%xmm6
  movsd  0xb8(%rsp),%xmm5
  ucomisd %xmm2,%xmm6
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0xb0(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm3,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xb8(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D56(%rip),%xmm9
  mov    $0x1,%edx
  movsd  D36(%rip),%xmm8
  movq   $0x0,0x10(%rsp)
  movsd  %xmm9,0xc0(%rsp)
  movsd  %xmm8,0xc8(%rsp)
  movsd  0xc0(%rsp),%xmm6
  movsd  0xc8(%rsp),%xmm5
  ucomisd %xmm2,%xmm6
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm5
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0xc0(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xc8(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm3,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xc0(%rsp),%xmm5
  mov    $0x1,%eax
  movsd  0xc8(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm7
  addsd  %xmm7,%xmm5
  movsd  %xmm5,0xd0(%rsp)
  movsd  %xmm6,0xd8(%rsp)
  movsd  0xd0(%rsp),%xmm6
  movsd  0xd8(%rsp),%xmm5
  ucomisd %xmm2,%xmm6
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0xd0(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm3,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xd8(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm3,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D118(%rip),%xmm7
  movsd  D46(%rip),%xmm6
  movq   $0x0,0x18(%rsp)
  movsd  %xmm7,0xe0(%rsp)
  movsd  %xmm6,0xe8(%rsp)
  movsd  0xe0(%rsp),%xmm14
  movsd  0xe8(%rsp),%xmm5
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0xe0(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xe8(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xe0(%rsp),%xmm5
  mov    $0x1,%eax
  movsd  0xe8(%rsp),%xmm14
  movsd  0x18(%rsp),%xmm15
  addsd  %xmm15,%xmm5
  movsd  %xmm5,0xf0(%rsp)
  movsd  %xmm14,0xf8(%rsp)
  movsd  0xf0(%rsp),%xmm14
  movsd  0xf8(%rsp),%xmm5
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0xf0(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm3,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0xf8(%rsp),%xmm5
  andpd  %xmm1,%xmm5
  orpd   %xmm0,%xmm5
  ucomisd %xmm4,%xmm5
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D29(%rip),%xmm5
  movsd  %xmm5,0x20(%rsp)
  movsd  %xmm13,0x100(%rsp)
  movsd  %xmm12,0x108(%rsp)
  movsd  0x100(%rsp),%xmm15
  movsd  0x108(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x100(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x108(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x100(%rsp),%xmm14
  mov    $0x1,%edx
  movsd  0x108(%rsp),%xmm15
  movsd  0x20(%rsp),%xmm6
  addsd  %xmm6,%xmm14
  movsd  %xmm14,0x110(%rsp)
  movsd  %xmm15,0x118(%rsp)
  movsd  0x110(%rsp),%xmm15
  movsd  0x118(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x110(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x118(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x28(%rsp)
  mov    $0x1,%eax
  movsd  %xmm11,0x120(%rsp)
  movsd  %xmm10,0x128(%rsp)
  movsd  0x120(%rsp),%xmm15
  movsd  0x128(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x120(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x128(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x120(%rsp),%xmm14
  movsd  0x128(%rsp),%xmm15
  movsd  0x28(%rsp),%xmm6
  addsd  %xmm6,%xmm14
  movsd  %xmm14,0x130(%rsp)
  movsd  %xmm15,0x138(%rsp)
  movsd  0x130(%rsp),%xmm15
  movsd  0x138(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x130(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x138(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x30(%rsp)
  mov    $0x1,%eax
  movsd  %xmm9,0x140(%rsp)
  movsd  %xmm8,0x148(%rsp)
  movsd  0x140(%rsp),%xmm15
  movsd  0x148(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x140(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x148(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x140(%rsp),%xmm14
  movsd  0x148(%rsp),%xmm15
  movsd  0x30(%rsp),%xmm6
  addsd  %xmm6,%xmm14
  movsd  %xmm14,0x150(%rsp)
  movsd  %xmm15,0x158(%rsp)
  movsd  0x150(%rsp),%xmm15
  movsd  0x158(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x150(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x158(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D46(%rip),%xmm6
  movsd  %xmm5,0x38(%rsp)
  mov    $0x1,%edx
  movsd  %xmm7,0x160(%rsp)
  movsd  %xmm6,0x168(%rsp)
  movsd  0x160(%rsp),%xmm15
  movsd  0x168(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x160(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x168(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x160(%rsp),%xmm14
  mov    $0x1,%eax
  movsd  0x168(%rsp),%xmm15
  movsd  0x38(%rsp),%xmm6
  addsd  %xmm6,%xmm14
  movsd  %xmm14,0x170(%rsp)
  movsd  %xmm15,0x178(%rsp)
  movsd  0x170(%rsp),%xmm15
  movsd  0x178(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x170(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x178(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm4,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm13,0x180(%rsp)
  movsd  %xmm12,0x188(%rsp)
  movsd  0x180(%rsp),%xmm15
  movsd  0x188(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x180(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x188(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movq   $0x0,0x40(%rsp)
  mov    $0x1,%eax
  movsd  0x180(%rsp),%xmm14
  movsd  0x188(%rsp),%xmm15
  movsd  0x40(%rsp),%xmm6
  addsd  %xmm6,%xmm14
  movsd  %xmm14,0x190(%rsp)
  movsd  %xmm15,0x198(%rsp)
  movsd  0x190(%rsp),%xmm15
  movsd  0x198(%rsp),%xmm14
  ucomisd %xmm2,%xmm15
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm14
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x190(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x198(%rsp),%xmm14
  andpd  %xmm1,%xmm14
  orpd   %xmm0,%xmm14
  ucomisd %xmm3,%xmm14
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm13,0x1a0(%rsp)
  movsd  %xmm12,0x1a8(%rsp)
  movsd  0x1a0(%rsp),%xmm13
  movsd  0x1a8(%rsp),%xmm12
  ucomisd %xmm2,%xmm13
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm12
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x1a0(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1a8(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x48(%rsp)
  mov    $0x1,%edx
  movsd  0x1a0(%rsp),%xmm12
  movsd  0x1a8(%rsp),%xmm13
  movsd  0x48(%rsp),%xmm14
  addsd  %xmm14,%xmm12
  movsd  %xmm12,0x1b0(%rsp)
  movsd  %xmm13,0x1b8(%rsp)
  movsd  0x1b0(%rsp),%xmm13
  movsd  0x1b8(%rsp),%xmm12
  ucomisd %xmm2,%xmm13
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm12
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x1b0(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1b8(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm11,0x1c0(%rsp)
  mov    $0x1,%eax
  movsd  %xmm10,0x1c8(%rsp)
  movsd  0x1c0(%rsp),%xmm13
  movsd  0x1c8(%rsp),%xmm12
  ucomisd %xmm2,%xmm13
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm12
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x1c0(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1c8(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm4,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movq   $0x0,0x50(%rsp)
  movsd  0x1c0(%rsp),%xmm12
  movsd  0x1c8(%rsp),%xmm13
  movsd  0x50(%rsp),%xmm14
  addsd  %xmm14,%xmm12
  movsd  %xmm12,0x1d0(%rsp)
  movsd  %xmm13,0x1d8(%rsp)
  movsd  0x1d0(%rsp),%xmm13
  movsd  0x1d8(%rsp),%xmm12
  ucomisd %xmm2,%xmm13
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm12
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x1d0(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm3,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1d8(%rsp),%xmm12
  andpd  %xmm1,%xmm12
  orpd   %xmm0,%xmm12
  ucomisd %xmm4,%xmm12
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm11,0x1e0(%rsp)
  mov    $0x1,%eax
  movsd  %xmm10,0x1e8(%rsp)
  movsd  0x1e0(%rsp),%xmm11
  movsd  0x1e8(%rsp),%xmm10
  ucomisd %xmm2,%xmm11
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm10
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x1e0(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm3,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1e8(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm4,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x58(%rsp)
  movsd  0x1e0(%rsp),%xmm10
  movsd  0x1e8(%rsp),%xmm11
  movsd  0x58(%rsp),%xmm12
  addsd  %xmm12,%xmm10
  movsd  %xmm10,0x1f0(%rsp)
  movsd  %xmm11,0x1f8(%rsp)
  movsd  0x1f0(%rsp),%xmm11
  movsd  0x1f8(%rsp),%xmm10
  ucomisd %xmm2,%xmm11
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm10
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x1f0(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm3,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x1f8(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm4,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm9,0x200(%rsp)
  mov    $0x1,%edx
  movsd  %xmm8,0x208(%rsp)
  movsd  0x200(%rsp),%xmm11
  movsd  0x208(%rsp),%xmm10
  ucomisd %xmm2,%xmm11
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm10
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x200(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm4,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x208(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm3,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movq   $0x0,0x60(%rsp)
  mov    $0x1,%eax
  movsd  0x200(%rsp),%xmm10
  movsd  0x208(%rsp),%xmm11
  movsd  0x60(%rsp),%xmm12
  addsd  %xmm12,%xmm10
  movsd  %xmm10,0x210(%rsp)
  movsd  %xmm11,0x218(%rsp)
  movsd  0x210(%rsp),%xmm11
  movsd  0x218(%rsp),%xmm10
  ucomisd %xmm2,%xmm11
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm10
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x210(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm3,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x218(%rsp),%xmm10
  andpd  %xmm1,%xmm10
  orpd   %xmm0,%xmm10
  ucomisd %xmm3,%xmm10
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm9,0x220(%rsp)
  movsd  %xmm8,0x228(%rsp)
  movsd  0x220(%rsp),%xmm9
  movsd  0x228(%rsp),%xmm8
  ucomisd %xmm2,%xmm9
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm8
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x220(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm4,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x228(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm3,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x68(%rsp)
  mov    $0x1,%eax
  movsd  0x220(%rsp),%xmm8
  movsd  0x228(%rsp),%xmm9
  movsd  0x68(%rsp),%xmm10
  addsd  %xmm10,%xmm8
  movsd  %xmm8,0x230(%rsp)
  movsd  %xmm9,0x238(%rsp)
  movsd  0x230(%rsp),%xmm9
  movsd  0x238(%rsp),%xmm8
  ucomisd %xmm2,%xmm9
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm8
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x230(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm4,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x238(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm3,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  D46(%rip),%xmm6
  movsd  %xmm7,0x240(%rsp)
  movsd  %xmm6,0x248(%rsp)
  movsd  0x240(%rsp),%xmm9
  movsd  0x248(%rsp),%xmm8
  ucomisd %xmm2,%xmm9
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm8
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x240(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm4,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x248(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm4,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movq   $0x0,0x70(%rsp)
  mov    $0x1,%edx
  movsd  0x240(%rsp),%xmm8
  movsd  0x248(%rsp),%xmm9
  movsd  0x70(%rsp),%xmm10
  addsd  %xmm10,%xmm8
  movsd  %xmm8,0x250(%rsp)
  movsd  %xmm9,0x258(%rsp)
  movsd  0x250(%rsp),%xmm9
  movsd  0x258(%rsp),%xmm8
  ucomisd %xmm2,%xmm9
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm8
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x250(%rsp),%xmm8
  andpd  %xmm1,%xmm8
  orpd   %xmm0,%xmm8
  ucomisd %xmm3,%xmm8
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x258(%rsp),%xmm3
  andpd  %xmm1,%xmm3
  orpd   %xmm0,%xmm3
  ucomisd %xmm4,%xmm3
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm7,0x260(%rsp)
  mov    $0x1,%eax
  movsd  %xmm6,0x268(%rsp)
  movsd  0x260(%rsp),%xmm6
  movsd  0x268(%rsp),%xmm3
  ucomisd %xmm2,%xmm6
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm3
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  movsd  0x260(%rsp),%xmm3
  andpd  %xmm1,%xmm3
  orpd   %xmm0,%xmm3
  ucomisd %xmm4,%xmm3
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x268(%rsp),%xmm3
  andpd  %xmm1,%xmm3
  orpd   %xmm0,%xmm3
  ucomisd %xmm4,%xmm3
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  %xmm5,0x78(%rsp)
  movsd  0x260(%rsp),%xmm3
  movsd  0x268(%rsp),%xmm5
  movsd  0x78(%rsp),%xmm6
  addsd  %xmm6,%xmm3
  movsd  %xmm3,0x270(%rsp)
  movsd  %xmm5,0x278(%rsp)
  movsd  0x270(%rsp),%xmm5
  movsd  0x278(%rsp),%xmm3
  ucomisd %xmm2,%xmm5
  setp   %dl
  cmovne %eax,%edx
  test   %dl,%dl
  jne    1060 <check_add_double.cold>
  ucomisd %xmm2,%xmm3
  setp   %dl
  cmove  %edx,%eax
  test   %al,%al
  jne    1060 <check_add_double.cold>
  movsd  0x270(%rsp),%xmm2
  andpd  %xmm1,%xmm2
  orpd   %xmm0,%xmm2
  ucomisd %xmm4,%xmm2
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  movsd  0x278(%rsp),%xmm2
  andpd  %xmm1,%xmm2
  orpd   %xmm0,%xmm2
  ucomisd %xmm4,%xmm2
  jp     1060 <check_add_double.cold>
  jne    1060 <check_add_double.cold>
  add    $0x288,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: label: D65
datatype: f64
name: unpack_data
arguments: label: D100
datatype: f64
name: unpack_data
arguments: label: D29
datatype: byte[8]
name: unpack_data
arguments: label: D38
datatype: f64
name: unpack_data
arguments: label: D21
datatype: f64
name: unpack_data
arguments: label: D72
datatype: byte[8]
name: unpack_data
arguments: label: D12
datatype: byte[8]
name: unpack_data
arguments: label: D56
datatype: byte[8]
name: unpack_data
arguments: label: D36
datatype: f64
name: unpack_data
arguments: label: D118
datatype: byte[8]
name: unpack_data
arguments: label: D46
datatype: byte[8]

tool: D65: 0

tool: D100: 0

tool: {"D29": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: D38: 1

tool: D21: 0

tool: {"D72": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

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

tool: {"D56": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: D36: 0

tool: {"D118": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: {"D46": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

assistant: ```c
void check_add_double(void) {
  do {
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = +0.0;
      b1 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != +1.0 || __builtin_copysign(1.0, __imag__(b1)) != +1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = +0.0;
      b2 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != +1.0 || __builtin_copysign(1.0, __imag__(b2)) != +1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = +0.0;
      b1 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != +1.0 || __builtin_copysign(1.0, __imag__(b1)) != -1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = +0.0;
      b2 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != +1.0 || __builtin_copysign(1.0, __imag__(b2)) != -1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = +0.0;
      b1 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != -1.0 || __builtin_copysign(1.0, __imag__(b1)) != +1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = +0.0;
      b2 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != -1.0 || __builtin_copysign(1.0, __imag__(b2)) != +1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = +0.0;
      b1 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != -1.0 || __builtin_copysign(1.0, __imag__(b1)) != -1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = +0.0;
      b2 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != -1.0 || __builtin_copysign(1.0, __imag__(b2)) != -1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = -0.0;
      b1 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != +1.0 || __builtin_copysign(1.0, __imag__(b1)) != +1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = -0.0;
      b2 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != +1.0 || __builtin_copysign(1.0, __imag__(b2)) != +1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = -0.0;
      b1 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != +1.0 || __builtin_copysign(1.0, __imag__(b1)) != -1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = -0.0;
      b2 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != +1.0 || __builtin_copysign(1.0, __imag__(b2)) != -1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = -0.0;
      b1 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != -1.0 || __builtin_copysign(1.0, __imag__(b1)) != +1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != -1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = -0.0;
      b2 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != -1.0 || __builtin_copysign(1.0, __imag__(b2)) != +1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != -1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      double a1;
      _Complex double b1, c1;
      volatile double a2;
      volatile _Complex double b2, c2;
      a1 = -0.0;
      b1 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b1) != 0 || __builtin_copysign(1.0, __real__(b1)) != -1.0 || __builtin_copysign(1.0, __imag__(b1)) != -1.0)
          abort();
      } while (0);
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != -1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = -0.0;
      b2 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((b2) != 0 || __builtin_copysign(1.0, __real__(b2)) != -1.0 || __builtin_copysign(1.0, __imag__(b2)) != -1.0)
          abort();
      } while (0);
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != -1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != +1.0 || __builtin_copysign(1.0, __imag__(a1)) != +1.0)
          abort();
      } while (0);
      b1 = +0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != +1.0 || __builtin_copysign(1.0, __imag__(a2)) != +1.0)
          abort();
      } while (0);
      b2 = +0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != +1.0 || __builtin_copysign(1.0, __imag__(a1)) != +1.0)
          abort();
      } while (0);
      b1 = -0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = (+1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != +1.0 || __builtin_copysign(1.0, __imag__(a2)) != +1.0)
          abort();
      } while (0);
      b2 = -0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != +1.0 || __builtin_copysign(1.0, __imag__(a1)) != -1.0)
          abort();
      } while (0);
      b1 = +0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != +1.0 || __builtin_copysign(1.0, __imag__(a2)) != -1.0)
          abort();
      } while (0);
      b2 = +0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != +1.0 || __builtin_copysign(1.0, __imag__(a1)) != -1.0)
          abort();
      } while (0);
      b1 = -0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = (+1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != +1.0 || __builtin_copysign(1.0, __imag__(a2)) != -1.0)
          abort();
      } while (0);
      b2 = -0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != -1.0 || __builtin_copysign(1.0, __imag__(a1)) != +1.0)
          abort();
      } while (0);
      b1 = +0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != -1.0 || __builtin_copysign(1.0, __imag__(a2)) != +1.0)
          abort();
      } while (0);
      b2 = +0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != -1.0 || __builtin_copysign(1.0, __imag__(a1)) != +1.0)
          abort();
      } while (0);
      b1 = -0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != -1.0 || __builtin_copysign(1.0, __imag__(c1)) != +1.0)
          abort();
      } while (0);
      a2 = (-1 == 1 ? +1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : +1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != -1.0 || __builtin_copysign(1.0, __imag__(a2)) != +1.0)
          abort();
      } while (0);
      b2 = -0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != -1.0 || __builtin_copysign(1.0, __imag__(c2)) != +1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != -1.0 || __builtin_copysign(1.0, __imag__(a1)) != -1.0)
          abort();
      } while (0);
      b1 = +0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != +1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != -1.0 || __builtin_copysign(1.0, __imag__(a2)) != -1.0)
          abort();
      } while (0);
      b2 = +0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != +1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
    do {
      _Complex double a1, c1;
      double b1;
      volatile _Complex double a2, c2;
      volatile double b2;
      a1 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a1) != 0 || __builtin_copysign(1.0, __real__(a1)) != -1.0 || __builtin_copysign(1.0, __imag__(a1)) != -1.0)
          abort();
      } while (0);
      b1 = -0.0;
      c1 = a1 + b1;
      do {
        if ((c1) != 0 || __builtin_copysign(1.0, __real__(c1)) != -1.0 || __builtin_copysign(1.0, __imag__(c1)) != -1.0)
          abort();
      } while (0);
      a2 = (-1 == 1 ? -1 == 1 ? 0.0 + 0.0i : 0.0 - 0.0i : -1 == 1 ? -(0.0 - 0.0i) : -(0.0 + 0.0i));
      do {
        if ((a2) != 0 || __builtin_copysign(1.0, __real__(a2)) != -1.0 || __builtin_copysign(1.0, __imag__(a2)) != -1.0)
          abort();
      } while (0);
      b2 = -0.0;
      c2 = a2 + b2;
      do {
        if ((c2) != 0 || __builtin_copysign(1.0, __real__(c2)) != -1.0 || __builtin_copysign(1.0, __imag__(c2)) != -1.0)
          abort();
      } while (0);
    } while (0);
  } while (0);
}
```