user: 请从给定的汇编指令推导出C源代码：

```asm
<get_overlap>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movss  %xmm0,-0x14(%rbp)
  movss  %xmm1,-0x18(%rbp)
  movss  %xmm2,-0x1c(%rbp)
  movss  %xmm3,-0x20(%rbp)
  movss  %xmm4,-0x24(%rbp)
  movss  %xmm5,-0x28(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x14(%rbp),%xmm1
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm2
  divss  %xmm2,%xmm0
  addss  -0x20(%rbp),%xmm0
  comiss %xmm1,%xmm0
  jbe    L104
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x14(%rbp),%xmm0
  jmp    L136
L104:
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x20(%rbp),%xmm0
L136:
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x14(%rbp),%xmm1
  subss  %xmm2,%xmm1
  movss  -0x28(%rbp),%xmm2
  movss  D260(%rip),%xmm4
  movaps %xmm2,%xmm3
  divss  %xmm4,%xmm3
  movss  -0x20(%rbp),%xmm2
  subss  %xmm3,%xmm2
  comiss %xmm2,%xmm1
  jbe    L23
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x14(%rbp),%xmm1
  subss  %xmm2,%xmm1
  jmp    L6
L23:
  movss  -0x28(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x20(%rbp),%xmm1
  subss  %xmm2,%xmm1
L6:
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  pxor   %xmm0,%xmm0
  comiss %xmm2,%xmm0
  jbe    L109
  pxor   %xmm0,%xmm0
  jmp    L176
L109:
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x14(%rbp),%xmm1
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm2
  divss  %xmm2,%xmm0
  addss  -0x20(%rbp),%xmm0
  comiss %xmm1,%xmm0
  jbe    L142
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x14(%rbp),%xmm0
  jmp    L4
L142:
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x20(%rbp),%xmm0
L4:
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x14(%rbp),%xmm1
  subss  %xmm2,%xmm1
  movss  -0x28(%rbp),%xmm2
  movss  D260(%rip),%xmm4
  movaps %xmm2,%xmm3
  divss  %xmm4,%xmm3
  movss  -0x20(%rbp),%xmm2
  subss  %xmm3,%xmm2
  comiss %xmm2,%xmm1
  jbe    L12
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x14(%rbp),%xmm1
  subss  %xmm2,%xmm1
  jmp    L186
L12:
  movss  -0x28(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x20(%rbp),%xmm1
  subss  %xmm2,%xmm1
L186:
  subss  %xmm1,%xmm0
L176:
  movss  %xmm0,-0x8(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x18(%rbp),%xmm1
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm2
  divss  %xmm2,%xmm0
  addss  -0x24(%rbp),%xmm0
  comiss %xmm1,%xmm0
  jbe    L193
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x18(%rbp),%xmm0
  jmp    L138
L193:
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x24(%rbp),%xmm0
L138:
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x18(%rbp),%xmm1
  subss  %xmm2,%xmm1
  movss  -0x28(%rbp),%xmm2
  movss  D260(%rip),%xmm4
  movaps %xmm2,%xmm3
  divss  %xmm4,%xmm3
  movss  -0x24(%rbp),%xmm2
  subss  %xmm3,%xmm2
  comiss %xmm2,%xmm1
  jbe    L148
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x18(%rbp),%xmm1
  subss  %xmm2,%xmm1
  jmp    L110
L148:
  movss  -0x28(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x24(%rbp),%xmm1
  subss  %xmm2,%xmm1
L110:
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  pxor   %xmm0,%xmm0
  comiss %xmm2,%xmm0
  jbe    L155
  pxor   %xmm0,%xmm0
  jmp    L65
L155:
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm1
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm2
  divss  %xmm2,%xmm0
  addss  -0x24(%rbp),%xmm0
  comiss %xmm1,%xmm0
  jbe    L102
  movss  -0x1c(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x18(%rbp),%xmm0
  jmp    L124
L102:
  movss  -0x28(%rbp),%xmm0
  movss  D260(%rip),%xmm1
  divss  %xmm1,%xmm0
  addss  -0x24(%rbp),%xmm0
L124:
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x18(%rbp),%xmm1
  subss  %xmm2,%xmm1
  movss  -0x28(%rbp),%xmm2
  movss  D260(%rip),%xmm4
  movaps %xmm2,%xmm3
  divss  %xmm4,%xmm3
  movss  -0x24(%rbp),%xmm2
  subss  %xmm3,%xmm2
  comiss %xmm2,%xmm1
  jbe    L181
  movss  -0x1c(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x18(%rbp),%xmm1
  subss  %xmm2,%xmm1
  jmp    L70
L181:
  movss  -0x28(%rbp),%xmm1
  movss  D260(%rip),%xmm3
  movaps %xmm1,%xmm2
  divss  %xmm3,%xmm2
  movss  -0x24(%rbp),%xmm1
  subss  %xmm2,%xmm1
L70:
  subss  %xmm1,%xmm0
L65:
  movss  %xmm0,-0x4(%rbp)
  movss  -0x8(%rbp),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm2
  mulss  %xmm0,%xmm2
  movss  -0x28(%rbp),%xmm0
  mulss  %xmm0,%xmm0
  addss  %xmm2,%xmm0
  movss  -0x8(%rbp),%xmm2
  mulss  -0x4(%rbp),%xmm2
  subss  %xmm2,%xmm0
  divss  %xmm0,%xmm1
  movaps %xmm1,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D260
data_type: byte[4]

tool: {"D260": [0x00,0x00,0x00,0x40]}

assistant: ```c
float get_overlap(float r1, float c1, float s1, float r2, float c2, float s2) {
  float overr, overc;
  overr = ((0) > (((r1 + s1 / 2) < (r2 + s2 / 2) ? (r1 + s1 / 2) : (r2 + s2 / 2)) - ((r1 - s1 / 2) > (r2 - s2 / 2) ? (r1 - s1 / 2) : (r2 - s2 / 2))) ? (0) : (((r1 + s1 / 2) < (r2 + s2 / 2) ? (r1 + s1 / 2) : (r2 + s2 / 2)) - ((r1 - s1 / 2) > (r2 - s2 / 2) ? (r1 - s1 / 2) : (r2 - s2 / 2))));
  overc = ((0) > (((c1 + s1 / 2) < (c2 + s2 / 2) ? (c1 + s1 / 2) : (c2 + s2 / 2)) - ((c1 - s1 / 2) > (c2 - s2 / 2) ? (c1 - s1 / 2) : (c2 - s2 / 2))) ? (0) : (((c1 + s1 / 2) < (c2 + s2 / 2) ? (c1 + s1 / 2) : (c2 + s2 / 2)) - ((c1 - s1 / 2) > (c2 - s2 / 2) ? (c1 - s1 / 2) : (c2 - s2 / 2))));
  return overr * overc / (s1 * s1 + s2 * s2 - overr * overc);
}
```