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

```asm
<NoDivTriTriIsect>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x120,%rsp
  mov    %rdi,-0xf8(%rbp)
  mov    %rsi,-0x100(%rbp)
  mov    %rdx,-0x108(%rbp)
  mov    %rcx,-0x110(%rbp)
  mov    %r8,-0x118(%rbp)
  mov    %r9,-0x120(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x100(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x44(%rbp)
  mov    -0x100(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x40(%rbp)
  mov    -0x100(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x3c(%rbp)
  mov    -0x108(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x38(%rbp)
  mov    -0x108(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x34(%rbp)
  mov    -0x108(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0xf8(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x30(%rbp)
  movss  -0x40(%rbp),%xmm1
  movss  -0x30(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x3c(%rbp),%xmm2
  movss  -0x34(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x2c(%rbp)
  movss  -0x3c(%rbp),%xmm1
  movss  -0x38(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x44(%rbp),%xmm2
  movss  -0x30(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  -0x44(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x40(%rbp),%xmm2
  movss  -0x38(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x2c(%rbp),%xmm1
  mov    -0xf8(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x28(%rbp),%xmm2
  mov    -0xf8(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x24(%rbp),%xmm2
  mov    -0xf8(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  D115(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0xa4(%rbp)
  movss  -0x2c(%rbp),%xmm1
  mov    -0x110(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x28(%rbp),%xmm2
  mov    -0x110(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x24(%rbp),%xmm2
  mov    -0x110(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0xa4(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xe8(%rbp)
  movss  -0x2c(%rbp),%xmm1
  mov    -0x118(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x28(%rbp),%xmm2
  mov    -0x118(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x24(%rbp),%xmm2
  mov    -0x118(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0xa4(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xe4(%rbp)
  movss  -0x2c(%rbp),%xmm1
  mov    -0x120(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x28(%rbp),%xmm2
  mov    -0x120(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x24(%rbp),%xmm2
  mov    -0x120(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0xa4(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xe0(%rbp)
  movss  -0xe8(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L391
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xe8(%rbp)
L391:
  movss  -0xe4(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L2
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xe4(%rbp)
L2:
  movss  -0xe0(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L99
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xe0(%rbp)
L99:
  movss  -0xe8(%rbp),%xmm0
  mulss  -0xe4(%rbp),%xmm0
  movss  %xmm0,-0xa0(%rbp)
  movss  -0xe8(%rbp),%xmm0
  mulss  -0xe0(%rbp),%xmm0
  movss  %xmm0,-0x9c(%rbp)
  movss  -0xa0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L471
  movss  -0x9c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L471
  mov    $0x0,%eax
  jmp    L250
L471:
  mov    -0x118(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x44(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x40(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x3c(%rbp)
  mov    -0x120(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x38(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x34(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x110(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x30(%rbp)
  movss  -0x40(%rbp),%xmm1
  movss  -0x30(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x3c(%rbp),%xmm2
  movss  -0x34(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x3c(%rbp),%xmm1
  movss  -0x38(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x44(%rbp),%xmm2
  movss  -0x30(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x44(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x40(%rbp),%xmm2
  movss  -0x38(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x20(%rbp),%xmm1
  mov    -0x110(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x1c(%rbp),%xmm2
  mov    -0x110(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm2
  mov    -0x110(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  D115(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  -0x20(%rbp),%xmm1
  mov    -0xf8(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x1c(%rbp),%xmm2
  mov    -0xf8(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm2
  mov    -0xf8(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x98(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xdc(%rbp)
  movss  -0x20(%rbp),%xmm1
  mov    -0x100(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x1c(%rbp),%xmm2
  mov    -0x100(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm2
  mov    -0x100(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x98(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xd8(%rbp)
  movss  -0x20(%rbp),%xmm1
  mov    -0x108(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  movss  -0x1c(%rbp),%xmm2
  mov    -0x108(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm2
  mov    -0x108(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  -0x98(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xd4(%rbp)
  movss  -0xdc(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L54
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xdc(%rbp)
L54:
  movss  -0xd8(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L392
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xd8(%rbp)
L392:
  movss  -0xd4(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D101(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L456
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xd4(%rbp)
L456:
  movss  -0xdc(%rbp),%xmm0
  mulss  -0xd8(%rbp),%xmm0
  movss  %xmm0,-0x94(%rbp)
  movss  -0xdc(%rbp),%xmm0
  mulss  -0xd4(%rbp),%xmm0
  movss  %xmm0,-0x90(%rbp)
  movss  -0x94(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L390
  movss  -0x90(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L390
  mov    $0x0,%eax
  jmp    L250
L390:
  movss  -0x28(%rbp),%xmm1
  movss  -0x18(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x24(%rbp),%xmm2
  movss  -0x1c(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x24(%rbp),%xmm1
  movss  -0x20(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x2c(%rbp),%xmm2
  movss  -0x18(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x2c(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  movss  -0x28(%rbp),%xmm2
  movss  -0x20(%rbp),%xmm1
  mulss  %xmm2,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x14(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  movss  %xmm0,-0xd0(%rbp)
  movw   $0x0,-0xea(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  movss  %xmm0,-0x8c(%rbp)
  movss  -0xc(%rbp),%xmm0
  movss  D86(%rip),%xmm1
  andps  %xmm1,%xmm0
  movss  %xmm0,-0x88(%rbp)
  movss  -0x8c(%rbp),%xmm0
  comiss -0xd0(%rbp),%xmm0
  jbe    L353
  movss  -0x8c(%rbp),%xmm0
  movss  %xmm0,-0xd0(%rbp)
  movw   $0x1,-0xea(%rbp)
L353:
  movss  -0x88(%rbp),%xmm0
  comiss -0xd0(%rbp),%xmm0
  jbe    L484
  movss  -0x88(%rbp),%xmm0
  movss  %xmm0,-0xd0(%rbp)
  movw   $0x2,-0xea(%rbp)
L484:
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x84(%rbp)
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x100(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x80(%rbp)
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x108(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x7c(%rbp)
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x110(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x78(%rbp)
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x118(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x74(%rbp)
  movswq -0xea(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x120(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x70(%rbp)
  movss  -0x94(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L293
  movss  -0x7c(%rbp),%xmm0
  movss  %xmm0,-0xcc(%rbp)
  movss  -0x84(%rbp),%xmm0
  subss  -0x7c(%rbp),%xmm0
  movss  -0xd4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc8(%rbp)
  movss  -0x80(%rbp),%xmm0
  subss  -0x7c(%rbp),%xmm0
  movss  -0xd4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc4(%rbp)
  movss  -0xd4(%rbp),%xmm0
  subss  -0xdc(%rbp),%xmm0
  movss  %xmm0,-0xc0(%rbp)
  movss  -0xd4(%rbp),%xmm0
  subss  -0xd8(%rbp),%xmm0
  movss  %xmm0,-0xbc(%rbp)
  jmp    L108
L293:
  movss  -0x90(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L382
  movss  -0x80(%rbp),%xmm0
  movss  %xmm0,-0xcc(%rbp)
  movss  -0x84(%rbp),%xmm0
  subss  -0x80(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc8(%rbp)
  movss  -0x7c(%rbp),%xmm0
  subss  -0x80(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc4(%rbp)
  movss  -0xd8(%rbp),%xmm0
  subss  -0xdc(%rbp),%xmm0
  movss  %xmm0,-0xc0(%rbp)
  movss  -0xd8(%rbp),%xmm0
  subss  -0xd4(%rbp),%xmm0
  movss  %xmm0,-0xbc(%rbp)
  jmp    L108
L382:
  movss  -0xd8(%rbp),%xmm0
  mulss  -0xd4(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  ja     L62
  pxor   %xmm0,%xmm0
  ucomiss -0xdc(%rbp),%xmm0
  jp     L62
  pxor   %xmm0,%xmm0
  ucomiss -0xdc(%rbp),%xmm0
  je     L342
L62:
  movss  -0x84(%rbp),%xmm0
  movss  %xmm0,-0xcc(%rbp)
  movss  -0x80(%rbp),%xmm0
  subss  -0x84(%rbp),%xmm0
  movss  -0xdc(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc8(%rbp)
  movss  -0x7c(%rbp),%xmm0
  subss  -0x84(%rbp),%xmm0
  movss  -0xdc(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc4(%rbp)
  movss  -0xdc(%rbp),%xmm0
  subss  -0xd8(%rbp),%xmm0
  movss  %xmm0,-0xc0(%rbp)
  movss  -0xdc(%rbp),%xmm0
  subss  -0xd4(%rbp),%xmm0
  movss  %xmm0,-0xbc(%rbp)
  jmp    L108
L342:
  pxor   %xmm0,%xmm0
  ucomiss -0xd8(%rbp),%xmm0
  jp     L123
  pxor   %xmm0,%xmm0
  ucomiss -0xd8(%rbp),%xmm0
  je     L3
L123:
  movss  -0x80(%rbp),%xmm0
  movss  %xmm0,-0xcc(%rbp)
  movss  -0x84(%rbp),%xmm0
  subss  -0x80(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc8(%rbp)
  movss  -0x7c(%rbp),%xmm0
  subss  -0x80(%rbp),%xmm0
  movss  -0xd8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc4(%rbp)
  movss  -0xd8(%rbp),%xmm0
  subss  -0xdc(%rbp),%xmm0
  movss  %xmm0,-0xc0(%rbp)
  movss  -0xd8(%rbp),%xmm0
  subss  -0xd4(%rbp),%xmm0
  movss  %xmm0,-0xbc(%rbp)
  jmp    L108
L3:
  pxor   %xmm0,%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  jp     L41
  pxor   %xmm0,%xmm0
  ucomiss -0xd4(%rbp),%xmm0
  je     L285
L41:
  movss  -0x7c(%rbp),%xmm0
  movss  %xmm0,-0xcc(%rbp)
  movss  -0x84(%rbp),%xmm0
  subss  -0x7c(%rbp),%xmm0
  movss  -0xd4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc8(%rbp)
  movss  -0x80(%rbp),%xmm0
  subss  -0x7c(%rbp),%xmm0
  movss  -0xd4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc4(%rbp)
  movss  -0xd4(%rbp),%xmm0
  subss  -0xdc(%rbp),%xmm0
  movss  %xmm0,-0xc0(%rbp)
  movss  -0xd4(%rbp),%xmm0
  subss  -0xd8(%rbp),%xmm0
  movss  %xmm0,-0xbc(%rbp)
  jmp    L108
L285:
  mov    -0x118(%rbp),%r8
  mov    -0x110(%rbp),%rdi
  mov    -0x108(%rbp),%rcx
  mov    -0x100(%rbp),%rdx
  mov    -0xf8(%rbp),%rsi
  lea    -0x2c(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x120(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <coplanar_tri_tri@plt>
  add    $0x10,%rsp
  jmp    L250
L108:
  movss  -0xa0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L477
  movss  -0x70(%rbp),%xmm0
  movss  %xmm0,-0xb8(%rbp)
  movss  -0x78(%rbp),%xmm0
  subss  -0x70(%rbp),%xmm0
  movss  -0xe0(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb4(%rbp)
  movss  -0x74(%rbp),%xmm0
  subss  -0x70(%rbp),%xmm0
  movss  -0xe0(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  -0xe0(%rbp),%xmm0
  subss  -0xe8(%rbp),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  -0xe0(%rbp),%xmm0
  subss  -0xe4(%rbp),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  jmp    L126
L477:
  movss  -0x9c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L25
  movss  -0x74(%rbp),%xmm0
  movss  %xmm0,-0xb8(%rbp)
  movss  -0x78(%rbp),%xmm0
  subss  -0x74(%rbp),%xmm0
  movss  -0xe4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb4(%rbp)
  movss  -0x70(%rbp),%xmm0
  subss  -0x74(%rbp),%xmm0
  movss  -0xe4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  -0xe4(%rbp),%xmm0
  subss  -0xe8(%rbp),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  -0xe4(%rbp),%xmm0
  subss  -0xe0(%rbp),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  jmp    L126
L25:
  movss  -0xe4(%rbp),%xmm0
  mulss  -0xe0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  ja     L373
  pxor   %xmm0,%xmm0
  ucomiss -0xe8(%rbp),%xmm0
  jp     L373
  pxor   %xmm0,%xmm0
  ucomiss -0xe8(%rbp),%xmm0
  je     L142
L373:
  movss  -0x78(%rbp),%xmm0
  movss  %xmm0,-0xb8(%rbp)
  movss  -0x74(%rbp),%xmm0
  subss  -0x78(%rbp),%xmm0
  movss  -0xe8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb4(%rbp)
  movss  -0x70(%rbp),%xmm0
  subss  -0x78(%rbp),%xmm0
  movss  -0xe8(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  -0xe8(%rbp),%xmm0
  subss  -0xe4(%rbp),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  -0xe8(%rbp),%xmm0
  subss  -0xe0(%rbp),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  jmp    L126
L142:
  pxor   %xmm0,%xmm0
  ucomiss -0xe4(%rbp),%xmm0
  jp     L358
  pxor   %xmm0,%xmm0
  ucomiss -0xe4(%rbp),%xmm0
  je     L239
L358:
  movss  -0x74(%rbp),%xmm0
  movss  %xmm0,-0xb8(%rbp)
  movss  -0x78(%rbp),%xmm0
  subss  -0x74(%rbp),%xmm0
  movss  -0xe4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb4(%rbp)
  movss  -0x70(%rbp),%xmm0
  subss  -0x74(%rbp),%xmm0
  movss  -0xe4(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  -0xe4(%rbp),%xmm0
  subss  -0xe8(%rbp),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  -0xe4(%rbp),%xmm0
  subss  -0xe0(%rbp),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  jmp    L126
L239:
  pxor   %xmm0,%xmm0
  ucomiss -0xe0(%rbp),%xmm0
  jp     L208
  pxor   %xmm0,%xmm0
  ucomiss -0xe0(%rbp),%xmm0
  je     L6
L208:
  movss  -0x70(%rbp),%xmm0
  movss  %xmm0,-0xb8(%rbp)
  movss  -0x78(%rbp),%xmm0
  subss  -0x70(%rbp),%xmm0
  movss  -0xe0(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb4(%rbp)
  movss  -0x74(%rbp),%xmm0
  subss  -0x70(%rbp),%xmm0
  movss  -0xe0(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  -0xe0(%rbp),%xmm0
  subss  -0xe8(%rbp),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  -0xe0(%rbp),%xmm0
  subss  -0xe4(%rbp),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  jmp    L126
L6:
  mov    -0x118(%rbp),%r8
  mov    -0x110(%rbp),%rdi
  mov    -0x108(%rbp),%rcx
  mov    -0x100(%rbp),%rdx
  mov    -0xf8(%rbp),%rsi
  lea    -0x2c(%rbp),%rax
  sub    $0x8,%rsp
  push   -0x120(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <coplanar_tri_tri@plt>
  add    $0x10,%rsp
  jmp    L250
L126:
  movss  -0xc0(%rbp),%xmm0
  mulss  -0xbc(%rbp),%xmm0
  movss  %xmm0,-0x6c(%rbp)
  movss  -0xac(%rbp),%xmm0
  mulss  -0xa8(%rbp),%xmm0
  movss  %xmm0,-0x68(%rbp)
  movss  -0x6c(%rbp),%xmm0
  mulss  -0x68(%rbp),%xmm0
  movss  %xmm0,-0x64(%rbp)
  movss  -0xcc(%rbp),%xmm0
  mulss  -0x64(%rbp),%xmm0
  movss  %xmm0,-0x60(%rbp)
  movss  -0xc8(%rbp),%xmm0
  mulss  -0xbc(%rbp),%xmm0
  mulss  -0x68(%rbp),%xmm0
  addss  -0x60(%rbp),%xmm0
  movss  %xmm0,-0x54(%rbp)
  movss  -0xc4(%rbp),%xmm0
  mulss  -0xc0(%rbp),%xmm0
  mulss  -0x68(%rbp),%xmm0
  addss  -0x60(%rbp),%xmm0
  movss  %xmm0,-0x50(%rbp)
  movss  -0xb8(%rbp),%xmm0
  mulss  -0x64(%rbp),%xmm0
  movss  %xmm0,-0x60(%rbp)
  movss  -0xb4(%rbp),%xmm0
  mulss  -0x6c(%rbp),%xmm0
  mulss  -0xa8(%rbp),%xmm0
  addss  -0x60(%rbp),%xmm0
  movss  %xmm0,-0x4c(%rbp)
  movss  -0xb0(%rbp),%xmm0
  mulss  -0x6c(%rbp),%xmm0
  mulss  -0xac(%rbp),%xmm0
  addss  -0x60(%rbp),%xmm0
  movss  %xmm0,-0x48(%rbp)
  movss  -0x54(%rbp),%xmm0
  movss  -0x50(%rbp),%xmm1
  comiss %xmm1,%xmm0
  jbe    L198
  movss  -0x54(%rbp),%xmm0
  movss  %xmm0,-0x5c(%rbp)
  movss  -0x50(%rbp),%xmm0
  movss  %xmm0,-0x54(%rbp)
  movss  -0x5c(%rbp),%xmm0
  movss  %xmm0,-0x50(%rbp)
L198:
  movss  -0x4c(%rbp),%xmm0
  movss  -0x48(%rbp),%xmm1
  comiss %xmm1,%xmm0
  jbe    L22
  movss  -0x4c(%rbp),%xmm0
  movss  %xmm0,-0x58(%rbp)
  movss  -0x48(%rbp),%xmm0
  movss  %xmm0,-0x4c(%rbp)
  movss  -0x58(%rbp),%xmm0
  movss  %xmm0,-0x48(%rbp)
L22:
  movss  -0x50(%rbp),%xmm1
  movss  -0x4c(%rbp),%xmm0
  comiss %xmm1,%xmm0
  ja     L357
  movss  -0x48(%rbp),%xmm1
  movss  -0x54(%rbp),%xmm0
  comiss %xmm1,%xmm0
  jbe    L384
L357:
  mov    $0x0,%eax
  jmp    L250
L384:
  mov    $0x1,%eax
L250:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L31
  call   <__stack_chk_fail@plt>
L31:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D115
data_type: byte[4]
name: read_data
arguments: data_tag: D86
data_type: dword
name: read_data
arguments: data_tag: D101
data_type: f64

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

tool: D86: 2147483647

tool: D101: 0.005

assistant: ```c
int NoDivTriTriIsect(float V0[3], float V1[3], float V2[3], float U0[3], float U1[3], float U2[3]) {
  float E1[3], E2[3];
  float N1[3], N2[3], d1, d2;
  float du0, du1, du2, dv0, dv1, dv2;
  float D[3];
  float isect1[2], isect2[2];
  float du0du1, du0du2, dv0dv1, dv0dv2;
  short index;
  float vp0, vp1, vp2;
  float up0, up1, up2;
  float bb, cc, max;
  float a, b, c, x0, x1;
  float d, e, f, y0, y1;
  float xx, yy, xxyy, tmp;
  E1[0] = V1[0] - V0[0];
  E1[1] = V1[1] - V0[1];
  E1[2] = V1[2] - V0[2];
  ;
  E2[0] = V2[0] - V0[0];
  E2[1] = V2[1] - V0[1];
  E2[2] = V2[2] - V0[2];
  ;
  N1[0] = E1[1] * E2[2] - E1[2] * E2[1];
  N1[1] = E1[2] * E2[0] - E1[0] * E2[2];
  N1[2] = E1[0] * E2[1] - E1[1] * E2[0];
  ;
  d1 = -(N1[0] * V0[0] + N1[1] * V0[1] + N1[2] * V0[2]);
  du0 = (N1[0] * U0[0] + N1[1] * U0[1] + N1[2] * U0[2]) + d1;
  du1 = (N1[0] * U1[0] + N1[1] * U1[1] + N1[2] * U1[2]) + d1;
  du2 = (N1[0] * U2[0] + N1[1] * U2[1] + N1[2] * U2[2]) + d1;
  if (((float)fabs(du0)) < 0.005)
    du0 = 0.0;
  if (((float)fabs(du1)) < 0.005)
    du1 = 0.0;
  if (((float)fabs(du2)) < 0.005)
    du2 = 0.0;
  du0du1 = du0 * du1;
  du0du2 = du0 * du2;
  if (du0du1 > 0.0f && du0du2 > 0.0f)
    return 0;
  E1[0] = U1[0] - U0[0];
  E1[1] = U1[1] - U0[1];
  E1[2] = U1[2] - U0[2];
  ;
  E2[0] = U2[0] - U0[0];
  E2[1] = U2[1] - U0[1];
  E2[2] = U2[2] - U0[2];
  ;
  N2[0] = E1[1] * E2[2] - E1[2] * E2[1];
  N2[1] = E1[2] * E2[0] - E1[0] * E2[2];
  N2[2] = E1[0] * E2[1] - E1[1] * E2[0];
  ;
  d2 = -(N2[0] * U0[0] + N2[1] * U0[1] + N2[2] * U0[2]);
  dv0 = (N2[0] * V0[0] + N2[1] * V0[1] + N2[2] * V0[2]) + d2;
  dv1 = (N2[0] * V1[0] + N2[1] * V1[1] + N2[2] * V1[2]) + d2;
  dv2 = (N2[0] * V2[0] + N2[1] * V2[1] + N2[2] * V2[2]) + d2;
  if (((float)fabs(dv0)) < 0.005)
    dv0 = 0.0;
  if (((float)fabs(dv1)) < 0.005)
    dv1 = 0.0;
  if (((float)fabs(dv2)) < 0.005)
    dv2 = 0.0;
  dv0dv1 = dv0 * dv1;
  dv0dv2 = dv0 * dv2;
  if (dv0dv1 > 0.0f && dv0dv2 > 0.0f)
    return 0;
  D[0] = N1[1] * N2[2] - N1[2] * N2[1];
  D[1] = N1[2] * N2[0] - N1[0] * N2[2];
  D[2] = N1[0] * N2[1] - N1[1] * N2[0];
  ;
  max = (float)((float)fabs(D[0]));
  index = 0;
  bb = (float)((float)fabs(D[1]));
  cc = (float)((float)fabs(D[2]));
  if (bb > max)
    max = bb, index = 1;
  if (cc > max)
    max = cc, index = 2;
  vp0 = V0[index];
  vp1 = V1[index];
  vp2 = V2[index];
  up0 = U0[index];
  up1 = U1[index];
  up2 = U2[index];
  {
    if (dv0dv1 > 0.0f) {
      a = vp2;
      b = (vp0 - vp2) * dv2;
      c = (vp1 - vp2) * dv2;
      x0 = dv2 - dv0;
      x1 = dv2 - dv1;
    } else if (dv0dv2 > 0.0f) {
      a = vp1;
      b = (vp0 - vp1) * dv1;
      c = (vp2 - vp1) * dv1;
      x0 = dv1 - dv0;
      x1 = dv1 - dv2;
    } else if (dv1 * dv2 > 0.0f || dv0 != 0.0f) {
      a = vp0;
      b = (vp1 - vp0) * dv0;
      c = (vp2 - vp0) * dv0;
      x0 = dv0 - dv1;
      x1 = dv0 - dv2;
    } else if (dv1 != 0.0f) {
      a = vp1;
      b = (vp0 - vp1) * dv1;
      c = (vp2 - vp1) * dv1;
      x0 = dv1 - dv0;
      x1 = dv1 - dv2;
    } else if (dv2 != 0.0f) {
      a = vp2;
      b = (vp0 - vp2) * dv2;
      c = (vp1 - vp2) * dv2;
      x0 = dv2 - dv0;
      x1 = dv2 - dv1;
    } else {
      return coplanar_tri_tri(N1, V0, V1, V2, U0, U1, U2);
    }
  };
  {
    if (du0du1 > 0.0f) {
      d = up2;
      e = (up0 - up2) * du2;
      f = (up1 - up2) * du2;
      y0 = du2 - du0;
      y1 = du2 - du1;
    } else if (du0du2 > 0.0f) {
      d = up1;
      e = (up0 - up1) * du1;
      f = (up2 - up1) * du1;
      y0 = du1 - du0;
      y1 = du1 - du2;
    } else if (du1 * du2 > 0.0f || du0 != 0.0f) {
      d = up0;
      e = (up1 - up0) * du0;
      f = (up2 - up0) * du0;
      y0 = du0 - du1;
      y1 = du0 - du2;
    } else if (du1 != 0.0f) {
      d = up1;
      e = (up0 - up1) * du1;
      f = (up2 - up1) * du1;
      y0 = du1 - du0;
      y1 = du1 - du2;
    } else if (du2 != 0.0f) {
      d = up2;
      e = (up0 - up2) * du2;
      f = (up1 - up2) * du2;
      y0 = du2 - du0;
      y1 = du2 - du1;
    } else {
      return coplanar_tri_tri(N1, V0, V1, V2, U0, U1, U2);
    }
  };
  xx = x0 * x1;
  yy = y0 * y1;
  xxyy = xx * yy;
  tmp = a * xxyy;
  isect1[0] = tmp + b * x1 * yy;
  isect1[1] = tmp + c * x0 * yy;
  tmp = d * xxyy;
  isect2[0] = tmp + e * xx * y1;
  isect2[1] = tmp + f * xx * y0;
  if (isect1[0] > isect1[1]) {
    float c;
    c = isect1[0];
    isect1[0] = isect1[1];
    isect1[1] = c;
  };
  if (isect2[0] > isect2[1]) {
    float c;
    c = isect2[0];
    isect2[0] = isect2[1];
    isect2[1] = c;
  };
  if (isect1[1] < isect2[0] || isect2[1] < isect1[0])
    return 0;
  return 1;
}
```