user: What would the C source look like for the assembly code provided here?

```asm
<f_seal_DirectionOfVector>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  movsd  %xmm0,-0x18(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  jp     L5
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  je     L4
L5:
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  jp     L193
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  jne    L193
L4:
  movsd  -0x18(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L107
  movsd  D82(%rip),%xmm0
  jmp    L190
L107:
  pxor   %xmm0,%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L128
  movsd  D80(%rip),%xmm0
  jmp    L190
L128:
  movsd  -0x20(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L85
  pxor   %xmm0,%xmm0
  jmp    L190
L85:
  pxor   %xmm0,%xmm0
  comisd -0x20(%rbp),%xmm0
  jbe    L49
  movsd  D36(%rip),%xmm0
  jmp    L190
L49:
  pxor   %xmm0,%xmm0
  jmp    L190
L193:
  movsd  -0x20(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <atan@plt>
  mov    %eax,%edi
  call   <f_seal_RadiansToDegrees@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x8(%rbp)
  movsd  -0x18(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L215
  movsd  -0x20(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L215
  movsd  D82(%rip),%xmm0
  subsd  -0x8(%rbp),%xmm0
  jmp    L190
L215:
  movsd  -0x18(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L92
  pxor   %xmm0,%xmm0
  comisd -0x20(%rbp),%xmm0
  jbe    L92
  movsd  -0x8(%rbp),%xmm0
  movq   D64(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D82(%rip),%xmm0
  addsd  %xmm1,%xmm0
  jmp    L190
L92:
  pxor   %xmm0,%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L37
  pxor   %xmm0,%xmm0
  comisd -0x20(%rbp),%xmm0
  jbe    L37
  movsd  D80(%rip),%xmm0
  subsd  -0x8(%rbp),%xmm0
  jmp    L190
L37:
  movsd  -0x8(%rbp),%xmm0
  movq   D64(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D80(%rip),%xmm0
  addsd  %xmm1,%xmm0
L190:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D82
type: byte[8]
name: parse_data
arguments: data_label: D80
type: byte[8]
name: parse_data
arguments: data_label: D36
type: byte[8]
name: parse_data
arguments: data_label: D64
type: qword

tool: {"D82": [0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x40]}

tool: {"D80": [0x00,0x00,0x00,0x00,0x00,0xe0,0x70,0x40]}

tool: {"D36": [0x00,0x00,0x00,0x00,0x00,0x80,0x66,0x40]}

tool: D64: 9223372036854775807

assistant: ```c
double f_seal_DirectionOfVector(const double p_xComponent, const double p_yComponent) {
  if ((p_xComponent == 0) || (p_yComponent == 0)) {
    if (p_xComponent > 0)
      return 90;
    if (p_xComponent < 0)
      return 270;
    if (p_yComponent > 0)
      return 0;
    if (p_yComponent < 0)
      return 180;
    return 0;
  }
  {
    const double d = f_seal_RadiansToDegrees(atan(p_yComponent / p_xComponent));
    if ((p_xComponent > 0) && (p_yComponent > 0))
      return 90 - d;
    if ((p_xComponent > 0) && (p_yComponent < 0))
      return fabs(d) + 90;
    if ((p_xComponent < 0) && (p_yComponent < 0))
      return 270 - d;
    return fabs(d) + 270;
  }
}
```