user: Demonstrate the C code that generates the assembly output below:

```asm
<HSFC2d>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  mov    %rdx,-0x48(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    D15(%rip),%rax
  mov    (%rax),%eax
  cltq
  shl    $0x2,%rax
  cmp    $0x20,%rax
  jbe    L74
  mov    D15(%rip),%rax
  mov    (%rax),%eax
  cltq
  add    $0x3ffffff8,%eax
  shl    $0x2,%eax
  mov    $0xffffffff,%edx
  mov    %eax,%ecx
  shl    %cl,%edx
  mov    %edx,%eax
  jmp    L175
L74:
  mov    $0xffffffff,%eax
L175:
  mov    %eax,-0x24(%rbp)
  mov    -0x38(%rbp),%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jb     L163
  pxor   %xmm0,%xmm0
  jmp    L27
L163:
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L72
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L104
L72:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L104:
  mov    -0x38(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm1,%xmm0
L27:
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jb     L52
  pxor   %xmm0,%xmm0
  jmp    L41
L52:
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L207
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L224
L207:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L224:
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm1,%xmm0
L41:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L39
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L22
L39:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L22:
  movsd  -0x20(%rbp),%xmm1
  comisd %xmm0,%xmm1
  jbe    L98
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L64
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L223
L64:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L223:
  cvttsd2si %xmm0,%rax
  jmp    L208
L98:
  movsd  -0x20(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
L208:
  mov    %eax,-0x10(%rbp)
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L161
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L153
L161:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L153:
  movsd  -0x18(%rbp),%xmm1
  comisd %xmm0,%xmm1
  jbe    L77
  mov    -0x24(%rbp),%eax
  test   %rax,%rax
  js     L68
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
  jmp    L88
L68:
  mov    %rax,%rdx
  shr    %rdx
  and    $0x1,%eax
  or     %rax,%rdx
  pxor   %xmm0,%xmm0
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
L88:
  cvttsd2si %xmm0,%rax
  jmp    L216
L77:
  movsd  -0x18(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
L216:
  mov    %eax,-0xc(%rbp)
  mov    -0x48(%rbp),%rdx
  mov    -0x40(%rbp),%rcx
  lea    -0x10(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <hsfc2d@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L6
  call   <__stack_chk_fail@plt>
L6:
  leave
  ret
```

assistant: ```c
void HSFC2d(double coord[], unsigned *nkey, unsigned key[]) {
  const unsigned imax = ((unsigned)(((sizeof(unsigned) * CHAR_BIT) <= 32) ? ~(0u) : (0xffffffff << ((sizeof(unsigned) * CHAR_BIT) - 32))));
  const double c0 = (coord[0] <= 0) ? 0 : imax * coord[0];
  const double c1 = (coord[1] <= 0) ? 0 : imax * coord[1];
  unsigned c[2];
  c[0] = (unsigned)((imax < c0) ? imax : c0);
  c[1] = (unsigned)((imax < c1) ? imax : c1);
  hsfc2d(c, nkey, key);
}
```