user: What is the c source code of the assembly code below?

```asm
<r3>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movss  %xmm0,-0x14(%rbp)
  movss  %xmm1,-0x18(%rbp)
  movss  %xmm2,-0x1c(%rbp)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x14(%rbp),%eax
  mov    $0x3,%edi
  movd   %eax,%xmm0
  call   <pow@plt>
  movss  -0x18(%rbp),%xmm1
  subss  -0x14(%rbp),%xmm1
  movaps %xmm0,%xmm4
  mulss  %xmm1,%xmm4
  movd   %xmm4,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  add    %eax,%eax
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm7
  mulss  -0x18(%rbp),%xmm7
  movss  %xmm7,-0x24(%rbp)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  subss  -0x1c(%rbp),%xmm1
  movaps %xmm0,%xmm5
  divss  %xmm1,%xmm5
  movd   %xmm5,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x20(%rbp),%xmm4
  subss  %xmm0,%xmm4
  movss  %xmm4,-0x20(%rbp)
  movss  -0x18(%rbp),%xmm0
  mulss  -0x1c(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  subss  -0x1c(%rbp),%xmm1
  movaps %xmm0,%xmm7
  divss  %xmm1,%xmm7
  movd   %xmm7,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm6
  addss  %xmm0,%xmm6
  movss  %xmm6,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  subss  -0x1c(%rbp),%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x20(%rbp),%xmm3
  subss  %xmm0,%xmm3
  movss  %xmm3,-0x20(%rbp)
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  subss  -0x1c(%rbp),%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x20(%rbp),%xmm3
  subss  %xmm0,%xmm3
  movss  %xmm3,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D38(%rip),%xmm0
  mulss  %xmm1,%xmm0
  subss  -0x18(%rbp),%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm4
  divss  -0x18(%rbp),%xmm4
  movd   %xmm4,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  mov    %eax,%edi
  call   <asin@plt>
  mulss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D34(%rip),%xmm0
  mulss  %xmm1,%xmm0
  addss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm5
  mulss  -0x18(%rbp),%xmm5
  movss  %xmm5,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm7
  divss  -0x18(%rbp),%xmm7
  movd   %xmm7,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  mov    %eax,%edi
  call   <asin@plt>
  mulss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D31(%rip),%xmm1
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D20(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  %xmm1,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movaps %xmm1,%xmm3
  mulss  %xmm0,%xmm3
  movd   %xmm3,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  subss  -0x1c(%rbp),%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  -0x20(%rbp),%xmm5
  subss  %xmm0,%xmm5
  movss  %xmm5,-0x20(%rbp)
  movss  -0x1c(%rbp),%xmm1
  movss  D88(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  %xmm1,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movaps %xmm1,%xmm6
  mulss  %xmm0,%xmm6
  movd   %xmm6,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm4
  addss  %xmm0,%xmm4
  movss  %xmm4,-0x24(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm2
  addss  %xmm0,%xmm2
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  subss  %xmm2,%xmm1
  movss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm2
  subss  -0x14(%rbp),%xmm2
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm2,%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x24(%rbp),%xmm0
  movaps %xmm0,%xmm7
  addss  -0x20(%rbp),%xmm7
  movss  %xmm7,-0x20(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm2
  addss  %xmm0,%xmm2
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  subss  %xmm2,%xmm1
  movss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm2
  subss  -0x14(%rbp),%xmm2
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm2,%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  mulss  -0x18(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x1c(%rbp),%xmm1
  movss  D38(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movss  %xmm1,-0x24(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm2
  addss  %xmm0,%xmm2
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm3
  subss  %xmm2,%xmm3
  movaps %xmm3,%xmm1
  movss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm2
  subss  -0x14(%rbp),%xmm2
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm2,%xmm0
  movaps %xmm1,%xmm5
  mulss  %xmm0,%xmm5
  movd   %xmm5,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  %xmm0,%xmm1
  movss  -0x20(%rbp),%xmm0
  subss  %xmm1,%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D34(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x18(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm2
  movss  D5(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movaps %xmm0,%xmm3
  mulss  -0x18(%rbp),%xmm3
  movss  %xmm3,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D20(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x18(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm1,%xmm0
  pxor   %xmm4,%xmm4
  cvtss2sd %xmm0,%xmm4
  movsd  %xmm4,-0x30(%rbp)
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm5
  subss  -0x1c(%rbp),%xmm5
  movaps %xmm5,%xmm1
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movaps %xmm1,%xmm7
  mulss  %xmm0,%xmm7
  movd   %xmm7,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  cvttsd2si %xmm1,%eax
  mov    %eax,%edi
  call   <atan@plt>
  mulss  -0x24(%rbp),%xmm0
  movss  -0x20(%rbp),%xmm6
  subss  %xmm0,%xmm6
  movss  %xmm6,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D34(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x18(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm2
  movss  D5(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D20(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movaps %xmm0,%xmm1
  addss  -0x18(%rbp),%xmm1
  movss  -0x1c(%rbp),%xmm2
  movss  D38(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  pxor   %xmm5,%xmm5
  cvtss2sd %xmm0,%xmm5
  movsd  %xmm5,-0x30(%rbp)
  movss  -0x1c(%rbp),%xmm0
  movaps %xmm0,%xmm2
  addss  %xmm0,%xmm2
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm7
  subss  %xmm2,%xmm7
  movaps %xmm7,%xmm1
  movss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm2
  subss  -0x14(%rbp),%xmm2
  movss  -0x1c(%rbp),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm2,%xmm0
  movaps %xmm1,%xmm3
  mulss  %xmm0,%xmm3
  movd   %xmm3,%eax
  movd   %eax,%xmm0
  call   <sqrt@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  cvttsd2si %xmm1,%eax
  mov    %eax,%edi
  call   <atan@plt>
  mulss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D110(%rip),%xmm1
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x8(%rbp),%xmm0
  addss  -0x4(%rbp),%xmm0
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D38
data_type: f32
name: parse_data
arguments: data_tag: D34
data_type: byte[4]
name: parse_data
arguments: data_tag: D31
data_type: byte[8]
name: parse_data
arguments: data_tag: D20
data_type: byte[4]
name: parse_data
arguments: data_tag: D88
data_type: byte[4]
name: parse_data
arguments: data_tag: D5
data_type: f32
name: parse_data
arguments: data_tag: D110
data_type: byte[8]

tool: D38: 4

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

tool: {"D31": [0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x40]}

tool: {"D20": [0x00,0x00,0x00,0xc0]}

tool: {"D88": [0x00,0x00,0xc0,0x40]}

tool: D5: 8

tool: {"D110": [0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40]}

assistant: ```c
float r3(float t, float Tr, float Ts) {
  float p1;
  float p2;
  p1 = (Tr * sqrt(t * (-t + Tr)) + 2 * sqrt(pow(t, 3) * (-t + Tr)) - t * Tr * sqrt((-t + Tr + Ts) / (t - Ts)) + Tr * Ts * sqrt((-t + Tr + Ts) / (t - Ts)) - 2 * t * sqrt((t - Ts) * (-t + Tr + Ts)) - 2 * Ts * sqrt((t - Ts) * (-t + Tr + Ts)) + (4 * t - Tr) * Tr * asin(sqrt(t / Tr)) + Tr * (-4 * t + Tr) * asin(sqrt((t - Ts) / Tr))) / 4.;
  p2 = (2 * (-2 * t * sqrt((t - Ts) * (-t + Tr + Ts)) - Tr * sqrt((t - Ts) * (-t + Tr + Ts)) + 6 * Ts * sqrt((t - Ts) * (-t + Tr + Ts)) + 2 * t * sqrt((t - 2 * Ts) * (-t + Tr + 2 * Ts)) + Tr * sqrt((t - 2 * Ts) * (-t + Tr + 2 * Ts)) - 4 * Ts * sqrt((t - 2 * Ts) * (-t + Tr + 2 * Ts))) - Tr * (-4 * t + Tr + 8 * Ts) * atan((-2 * t + Tr + 2 * Ts) / (2. * sqrt((t - Ts) * (-t + Tr + Ts)))) + Tr * (-4 * t + Tr + 8 * Ts) * atan((-2 * t + Tr + 4 * Ts) / (2. * sqrt((t - 2 * Ts) * (-t + Tr + 2 * Ts))))) / 8.;
  return p1 + p2;
}
```