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

```asm
<hybrid1_ks>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  mov    %edi,%ebp
  push   %rbx
  sub    $0x38,%rsp
  cmp    $0x1c,%edi
  jle    L58
L46:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movq   %xmm0,%r13
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  mov    %ebp,%edi
  movq   %r13,%xmm1
  movq   %r12,%xmm0
  call   <make_hdl@plt>
  movq   %r12,%xmm3
  cvttsd2si %xmm3,%ebp
  cmp    $0x1c,%ebp
  jle    L51
L25:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movsd  %xmm0,0x8(%rsp)
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  movsd  0x8(%rsp),%xmm1
  mov    %ebp,%edi
  movq   %r12,%xmm0
  call   <make_hdl@plt>
  movq   %r12,%xmm4
  cvttsd2si %xmm4,%ebp
  cmp    $0x1c,%ebp
  jle    L40
L12:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movsd  %xmm0,0x10(%rsp)
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  movsd  0x10(%rsp),%xmm1
  mov    %ebp,%edi
  movq   %r12,%xmm0
  call   <make_hdl@plt>
  movq   %r12,%xmm5
  cvttsd2si %xmm5,%ebp
  cmp    $0x1c,%ebp
  jle    L121
L179:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movsd  %xmm0,0x18(%rsp)
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  movsd  0x18(%rsp),%xmm1
  movq   %r12,%xmm0
  mov    %ebp,%edi
  call   <make_hdl@plt>
  movq   %r12,%xmm6
  cvttsd2si %xmm6,%r12d
  cmp    $0x1c,%r12d
  jle    L21
L147:
  pxor   %xmm0,%xmm0
  cvtsi2sd %r12d,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%ebp
  mov    %ebp,%edi
  call   <floor@plt>
  mov    %ebp,%edi
  movq   %xmm0,%rbx
  call   <ceil@plt>
  mov    %r12d,%edi
  movq   %xmm0,%rbp
  call   <add_to_array@plt>
  movq   %rbp,%xmm0
  movq   %rbx,%xmm1
  mov    %r12d,%edi
  call   <make_hdl@plt>
  movq   %rbp,%xmm2
  cvttsd2si %xmm2,%ebp
  cmp    $0x1c,%ebp
  jle    L156
L158:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movq   %xmm0,%r15
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r14
  call   <add_to_array@plt>
  mov    %ebp,%edi
  movq   %r15,%xmm1
  movq   %r14,%xmm0
  call   <make_hdl@plt>
  movq   %r14,%xmm6
  cvttsd2si %xmm6,%ebp
  cmp    $0x1c,%ebp
  jle    L2
L144:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movsd  %xmm0,0x20(%rsp)
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r14
  call   <add_to_array@plt>
  movsd  0x20(%rsp),%xmm1
  mov    %ebp,%edi
  movq   %r14,%xmm0
  call   <make_hdl@plt>
  movq   %r14,%xmm6
  cvttsd2si %xmm6,%ebp
  cmp    $0x1c,%ebp
  jle    L129
L71:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movq   %xmm0,%r14
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  mov    %ebp,%edi
  movq   %r14,%xmm1
  movq   %r12,%xmm0
  call   <make_hdl@plt>
  movq   %r12,%xmm3
  cvttsd2si %xmm3,%ebp
  cmp    $0x1c,%ebp
  jle    L128
L10:
  pxor   %xmm0,%xmm0
  cvtsi2sd %ebp,%xmm0
  mulsd  D54(%rip),%xmm0
  cvttsd2si %xmm0,%r12d
  mov    %r12d,%edi
  call   <floor@plt>
  mov    %r12d,%edi
  movsd  %xmm0,0x28(%rsp)
  call   <ceil@plt>
  mov    %ebp,%edi
  movq   %xmm0,%r12
  call   <add_to_array@plt>
  movsd  0x28(%rsp),%xmm1
  mov    %ebp,%edi
  movq   %r12,%xmm0
  call   <make_hdl@plt>
  movq   %r12,%xmm5
  cvttsd2si %xmm5,%edi
  call   <hybrid1_ks>
  movsd  0x28(%rsp),%xmm1
  cvttsd2si %xmm1,%ebp
  cmp    $0x1c,%ebp
  jg     L10
L128:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  movq   %r14,%xmm7
  cvttsd2si %xmm7,%ebp
  cmp    $0x1c,%ebp
  jg     L71
L129:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  cvttsd2si 0x20(%rsp),%ebp
  cmp    $0x1c,%ebp
  jg     L144
L2:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  movq   %r15,%xmm5
  cvttsd2si %xmm5,%ebp
  cmp    $0x1c,%ebp
  jg     L158
L156:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  movq   %rbx,%xmm4
  cvttsd2si %xmm4,%r12d
  cmp    $0x1c,%r12d
  jg     L147
L21:
  mov    %r12d,%edi
  call   <add_to_array@plt>
  mov    %r12d,%edi
  call   <make_general_hdl@plt>
  cvttsd2si 0x18(%rsp),%ebp
  cmp    $0x1c,%ebp
  jg     L179
L121:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  cvttsd2si 0x10(%rsp),%ebp
  cmp    $0x1c,%ebp
  jg     L12
L40:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  cvttsd2si 0x8(%rsp),%ebp
  cmp    $0x1c,%ebp
  jg     L25
L51:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  mov    %ebp,%edi
  call   <make_general_hdl@plt>
  movq   %r13,%xmm2
  cvttsd2si %xmm2,%ebp
  cmp    $0x1c,%ebp
  jg     L46
L58:
  mov    %ebp,%edi
  call   <add_to_array@plt>
  add    $0x38,%rsp
  mov    %ebp,%edi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1090 <make_general_hdl@plt>
```

tool_calls: name: retrieve_data
arguments: data_label: D54
type_infered: byte[8]

tool: {"D54": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

assistant: ```c
void hybrid1_ks(int n) {
  double l, h;
  if (n < 29) {
    add_to_array(n);
    make_general_hdl(n);
    return;
  }
  h = floor(n / 2.0);
  l = ceil(n / 2.0);
  add_to_array(n);
  make_hdl(n, l, h);
  hybrid1_ks(l);
  hybrid1_ks(h);
}
```