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

```asm
<sebs_evapfr>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xb8,%rsp
  movsd  %xmm0,0x20(%rsp)
  movsd  %xmm1,0x10(%rsp)
  movq   %xmm2,%r15
  movq   %xmm3,%r14
  movq   %xmm5,%r13
  movq   %xmm6,%rbx
  movsd  %xmm7,0xa8(%rsp)
  movsd  0x108(%rsp),%xmm1
  movsd  0x110(%rsp),%xmm0
  mov    $0x2,%eax
  call   <z0_m@plt>
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movsd  %xmm3,0x8(%rsp)
  movsd  0x110(%rsp),%xmm0
  mov    $0x1,%eax
  call   <leafai@plt>
  mov    %eax,%r12d
  movsd  0x108(%rsp),%xmm2
  movsd  0x100(%rsp),%xmm1
  movsd  0x110(%rsp),%xmm0
  mov    $0x3,%eax
  call   <f_c@plt>
  pxor   %xmm5,%xmm5
  cvtsi2sd %eax,%xmm5
  movsd  %xmm5,0x28(%rsp)
  movsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm6
  mulsd  D551(%rip),%xmm6
  movsd  0x20(%rsp),%xmm5
  movsd  %xmm6,0x18(%rsp)
  subsd  %xmm6,%xmm5
  movapd %xmm5,%xmm0
  movsd  %xmm5,0x30(%rsp)
  divsd  %xmm3,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbp
  movsd  D326(%rip),%xmm0
  movapd %xmm0,%xmm8
  subsd  0x18(%rsp),%xmm8
  movsd  %xmm8,0x40(%rsp)
  movapd %xmm8,%xmm6
  divsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm0
  call   <log@plt>
  movq   %rbp,%xmm13
  divsd  %xmm0,%xmm13
  movapd %xmm13,%xmm14
  movq   %r14,%xmm12
  mulsd  %xmm12,%xmm14
  movq   %xmm14,%rbp
  movsd  D486(%rip),%xmm11
  movq   %r13,%xmm10
  subsd  %xmm10,%xmm11
  movsd  D486(%rip),%xmm15
  subsd  0x128(%rsp),%xmm15
  movapd %xmm15,%xmm0
  movsd  %xmm11,0x18(%rsp)
  divsd  %xmm11,%xmm0
  mov    D439(%rip),%rax
  movq   %rax,%xmm1
  call   <pow@plt>
  movapd %xmm0,%xmm9
  movq   %r15,%xmm13
  mulsd  %xmm13,%xmm9
  movsd  %xmm9,0x38(%rsp)
  movsd  0x20(%rsp),%xmm7
  addsd  0x128(%rsp),%xmm7
  movsd  D486(%rip),%xmm13
  subsd  %xmm7,%xmm13
  movapd %xmm13,%xmm0
  divsd  0x18(%rsp),%xmm0
  mov    D439(%rip),%rax
  movq   %rax,%xmm1
  call   <pow@plt>
  movapd %xmm0,%xmm14
  movsd  0x38(%rsp),%xmm9
  mulsd  %xmm9,%xmm14
  movsd  %xmm14,0x18(%rsp)
  movapd %xmm9,%xmm6
  movsd  0x10(%rsp),%xmm5
  movsd  0x28(%rsp),%xmm4
  pxor   %xmm3,%xmm3
  cvtsi2sd %r12d,%xmm3
  movsd  0x8(%rsp),%xmm2
  divsd  D411(%rip),%xmm2
  movsd  0x20(%rsp),%xmm1
  movq   %rbp,%xmm0
  mov    $0x7,%eax
  call   <kb_1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm3
  divsd  %xmm0,%xmm3
  movsd  0x30(%rsp),%xmm0
  movsd  %xmm3,0x8(%rsp)
  divsd  %xmm3,%xmm0
  call   <log@plt>
  movq   %xmm0,%r12
  movsd  0x40(%rsp),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <log@plt>
  movq   %r12,%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x8(%rsp)
  movsd  D33(%rip),%xmm0
  movsd  0x10(%rsp),%xmm2
  comisd %xmm2,%xmm0
  jbe    L5
  addsd  D465(%rip),%xmm2
  movsd  %xmm2,0x10(%rsp)
L5:
  movsd  0x128(%rsp),%xmm0
  divsd  D486(%rip),%xmm0
  movsd  D642(%rip),%xmm2
  subsd  %xmm0,%xmm2
  movq   %xmm2,%r12
  mov    D448(%rip),%rax
  movq   %rax,%xmm1
  movapd %xmm2,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm2
  movsd  D642(%rip),%xmm0
  movsd  0x28(%rsp),%xmm3
  subsd  %xmm3,%xmm0
  mulsd  0x10(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm3
  addsd  %xmm3,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x70(%rsp)
  mov    D448(%rip),%rax
  movq   %rax,%xmm1
  movq   %r12,%xmm0
  call   <pow@plt>
  movsd  0x120(%rsp),%xmm4
  divsd  %xmm0,%xmm4
  movsd  %xmm4,0x8(%rsp)
  movsd  0x70(%rsp),%xmm0
  addsd  %xmm4,%xmm0
  mulsd  D100(%rip),%xmm0
  movq   %xmm0,%r13
  comisd D33(%rip),%xmm4
  jbe    L7
  subsd  D465(%rip),%xmm4
  movapd %xmm4,%xmm1
L77:
  movapd %xmm1,%xmm0
  mulsd  D542(%rip),%xmm0
  addsd  D334(%rip),%xmm1
  divsd  %xmm1,%xmm0
  call   <exp@plt>
  mulsd  D463(%rip),%xmm0
  movsd  %xmm0,0x98(%rsp)
  movq   %rbx,%xmm0
  mulsd  D444(%rip),%xmm0
  divsd  0x18(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  movq   %r13,%xmm5
  comisd D33(%rip),%xmm5
  jbe    L90
  subsd  D465(%rip),%xmm5
  movq   %xmm5,%r13
L90:
  movsd  0xf8(%rsp),%xmm0
  mov    $0x1,%eax
  call   <leafai@plt>
  mov    %eax,%ebx
  movsd  0x108(%rsp),%xmm2
  movsd  0x100(%rsp),%xmm1
  movsd  0xf8(%rsp),%xmm0
  mov    $0x3,%eax
  call   <f_c@plt>
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movsd  %xmm2,0x78(%rsp)
  movsd  0x108(%rsp),%xmm1
  movsd  0xf8(%rsp),%xmm0
  mov    $0x2,%eax
  call   <z0_m@plt>
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movapd %xmm2,%xmm5
  mulsd  D551(%rip),%xmm5
  movsd  %xmm5,0x40(%rsp)
  movsd  0x18(%rsp),%xmm6
  movq   %r13,%xmm5
  movsd  0x78(%rsp),%xmm4
  pxor   %xmm3,%xmm3
  cvtsi2sd %ebx,%xmm3
  movsd  %xmm2,0x28(%rsp)
  movapd %xmm2,%xmm7
  divsd  D411(%rip),%xmm7
  movapd %xmm7,%xmm2
  movsd  0x20(%rsp),%xmm1
  movq   %rbp,%xmm0
  mov    $0x7,%eax
  call   <kb_1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  call   <exp@plt>
  movsd  0x28(%rsp),%xmm5
  movapd %xmm5,%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x30(%rsp)
  movsd  0x10(%rsp),%xmm4
  movapd %xmm4,%xmm0
  mulsd  D396(%rip),%xmm0
  movsd  D642(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm7
  mulsd  0x120(%rsp),%xmm7
  movsd  0x8(%rsp),%xmm0
  subsd  0x70(%rsp),%xmm0
  movsd  %xmm0,0x80(%rsp)
  movsd  0x18(%rsp),%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  D672(%rip),%xmm0
  movapd %xmm0,%xmm10
  movsd  %xmm0,0xa0(%rsp)
  movsd  D283(%rip),%xmm0
  movsd  %xmm7,0x8(%rsp)
  movapd %xmm7,%xmm4
  mulsd  %xmm0,%xmm4
  movapd %xmm4,%xmm2
  movsd  0x38(%rsp),%xmm4
  movapd %xmm4,%xmm7
  divsd  %xmm2,%xmm7
  movsd  %xmm7,0x88(%rsp)
  mulsd  D201(%rip),%xmm10
  movapd %xmm10,%xmm2
  divsd  %xmm4,%xmm2
  subsd  %xmm2,%xmm1
  mulsd  0x120(%rsp),%xmm0
  movapd %xmm0,%xmm2
  movapd %xmm4,%xmm0
  divsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x90(%rsp)
  movsd  0x20(%rsp),%xmm3
  movapd %xmm3,%xmm4
  mulsd  D553(%rip),%xmm4
  movapd %xmm5,%xmm7
  movapd %xmm5,%xmm1
  mulsd  D425(%rip),%xmm1
  movapd %xmm1,%xmm15
  cmplesd %xmm4,%xmm15
  movapd %xmm15,%xmm0
  andpd  %xmm15,%xmm4
  andnpd %xmm1,%xmm0
  movapd %xmm0,%xmm12
  orpd   %xmm4,%xmm12
  movsd  %xmm12,0x68(%rsp)
  movq   %rbp,%xmm1
  mulsd  D421(%rip),%xmm1
  movsd  %xmm1,0x38(%rsp)
  movapd %xmm3,%xmm4
  subsd  0x40(%rsp),%xmm4
  movapd %xmm4,%xmm5
  movsd  %xmm4,0x58(%rsp)
  divsd  %xmm7,%xmm5
  movapd %xmm5,%xmm0
  movq   %xmm5,%r15
  call   <log@plt>
  movsd  0x38(%rsp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x18(%rsp)
  movsd  D421(%rip),%xmm8
  mulsd  0x80(%rsp),%xmm8
  movapd %xmm8,%xmm0
  mulsd  0x88(%rsp),%xmm0
  mulsd  D456(%rip),%xmm0
  movsd  %xmm0,0x40(%rsp)
  movsd  0x58(%rsp),%xmm5
  divsd  0x30(%rsp),%xmm5
  movq   %xmm5,%r14
  movapd %xmm5,%xmm0
  call   <log@plt>
  movsd  0x40(%rsp),%xmm6
  mulsd  0x18(%rsp),%xmm6
  movapd %xmm6,%xmm2
  divsd  %xmm0,%xmm2
  movsd  %xmm2,0x10(%rsp)
  movsd  0x20(%rsp),%xmm3
  comisd 0x68(%rsp),%xmm3
  jae    L60
  movsd  0x90(%rsp),%xmm0
  xorpd  D511(%rip),%xmm0
  mulsd  D456(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D206(%rip),%xmm0
  movsd  %xmm0,0x60(%rsp)
  mov    $0x0,%ebp
L54:
  mov    D122(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  mulsd  0x60(%rsp),%xmm0
  movapd %xmm0,%xmm4
  divsd  0x10(%rsp),%xmm4
  movsd  %xmm4,0x8(%rsp)
  movq   %r15,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  0x58(%rsp),%xmm2
  divsd  0x8(%rsp),%xmm2
  movq   %xmm2,%r12
  movapd %xmm2,%xmm0
  mov    $0x1,%eax
  call   <psim@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm7
  subsd  %xmm0,%xmm7
  movsd  %xmm7,0x18(%rsp)
  movsd  0x28(%rsp),%xmm5
  divsd  0x8(%rsp),%xmm5
  movapd %xmm5,%xmm0
  mov    $0x1,%eax
  call   <psim@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  0x18(%rsp),%xmm0
  movsd  0x38(%rsp),%xmm7
  divsd  %xmm0,%xmm7
  movsd  %xmm7,0x18(%rsp)
  movsd  0x40(%rsp),%xmm5
  mulsd  %xmm7,%xmm5
  movsd  %xmm5,0x48(%rsp)
  movq   %r14,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movq   %r12,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,0x50(%rsp)
  movsd  0x30(%rsp),%xmm2
  divsd  0x8(%rsp),%xmm2
  movapd %xmm2,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  addsd  0x50(%rsp),%xmm1
  movsd  0x48(%rsp),%xmm5
  divsd  %xmm1,%xmm5
  movsd  %xmm5,0x10(%rsp)
  add    $0x1,%ebp
  subsd  %xmm5,%xmm0
  andpd  D276(%rip),%xmm0
  comisd D639(%rip),%xmm0
  jbe    L4
  cmp    $0x63,%ebp
  jle    L54
  jmp    L4
L7:
  movsd  0x8(%rsp),%xmm1
  jmp    L77
L60:
  movsd  0x90(%rsp),%xmm0
  xorpd  D511(%rip),%xmm0
  mulsd  D456(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D206(%rip),%xmm0
  movsd  %xmm0,0x48(%rsp)
  mov    $0x0,%ebp
L51:
  mov    D122(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  mulsd  0x48(%rsp),%xmm0
  movapd %xmm0,%xmm7
  divsd  0x10(%rsp),%xmm7
  movsd  %xmm7,0x8(%rsp)
  movq   %r15,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  0x28(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm1
  movsd  0x20(%rsp),%xmm0
  mov    $0x3,%eax
  call   <bw@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movq   %rbx,%xmm6
  subsd  %xmm1,%xmm6
  movapd %xmm6,%xmm0
  movsd  0x38(%rsp),%xmm6
  divsd  %xmm0,%xmm6
  movsd  %xmm6,0x18(%rsp)
  movsd  0x40(%rsp),%xmm4
  mulsd  %xmm6,%xmm4
  movq   %xmm4,%r12
  movq   %r14,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  0x30(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm1
  movsd  0x20(%rsp),%xmm0
  mov    $0x4,%eax
  call   <cw@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movq   %rbx,%xmm1
  subsd  %xmm2,%xmm1
  movq   %r12,%xmm3
  divsd  %xmm1,%xmm3
  movsd  %xmm3,0x10(%rsp)
  add    $0x1,%ebp
  subsd  %xmm3,%xmm0
  andpd  D276(%rip),%xmm0
  comisd D639(%rip),%xmm0
  jbe    L4
  cmp    $0x63,%ebp
  jle    L51
L4:
  movsd  0x70(%rsp),%xmm0
  movapd %xmm0,%xmm3
  divsd  D345(%rip),%xmm3
  movsd  %xmm3,0x10(%rsp)
  mov    D600(%rip),%rax
  movq   %rax,%xmm1
  call   <pow@plt>
  movq   %xmm0,%rbx
  mov    D600(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x120(%rsp),%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  movsd  0x10(%rsp),%xmm0
  mulsd  %xmm0,%xmm0
  mulsd  D370(%rip),%xmm0
  movq   %rbx,%xmm7
  mulsd  %xmm7,%xmm0
  mulsd  0x118(%rsp),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  D301(%rip),%xmm0
  movsd  D642(%rip),%xmm1
  movapd %xmm1,%xmm2
  subsd  0xf0(%rsp),%xmm2
  mulsd  0xa8(%rsp),%xmm2
  addsd  %xmm2,%xmm0
  subsd  0x78(%rsp),%xmm1
  mulsd  D649(%rip),%xmm1
  addsd  D638(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rsp)
  movsd  D122(%rip),%xmm1
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  xorpd  D511(%rip),%xmm1
  mulsd  0x90(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm0
  mulsd  D510(%rip),%xmm0
  divsd  D599(%rip),%xmm0
  divsd  %xmm0,%xmm1
  movsd  0x20(%rsp),%xmm0
  comisd 0x68(%rsp),%xmm0
  jb     L9
  movsd  0x30(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm2
  mov    $0x4,%eax
  call   <cw@plt>
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movsd  %xmm3,0x38(%rsp)
L43:
  movq   %r14,%xmm0
  call   <log@plt>
  movsd  0x18(%rsp),%xmm7
  mulsd  D421(%rip),%xmm7
  movsd  %xmm7,0x18(%rsp)
  subsd  0x38(%rsp),%xmm0
  divsd  %xmm7,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  jae    L120
L27:
  movq   %r13,%xmm1
  addsd  D334(%rip),%xmm1
  movsd  0x88(%rsp),%xmm3
  mulsd  D456(%rip),%xmm3
  movsd  %xmm3,0x38(%rsp)
  movapd %xmm3,%xmm2
  divsd  %xmm0,%xmm2
  movsd  0x98(%rsp),%xmm5
  movapd %xmm5,%xmm0
  subsd  0xa0(%rsp),%xmm0
  mulsd  %xmm2,%xmm0
  movsd  D7(%rip),%xmm2
  divsd  %xmm2,%xmm0
  movsd  0x10(%rsp),%xmm3
  subsd  %xmm0,%xmm3
  mulsd  D635(%rip),%xmm5
  movapd %xmm5,%xmm0
  mulsd  %xmm1,%xmm1
  divsd  %xmm1,%xmm0
  divsd  %xmm2,%xmm0
  addsd  D642(%rip),%xmm0
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x40(%rsp)
  movsd  0x20(%rsp),%xmm0
  comisd 0x68(%rsp),%xmm0
  jb     L15
  movsd  0x30(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm1
  mov    $0x4,%eax
  call   <cw@plt>
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movsd  %xmm2,0x8(%rsp)
L8:
  movq   %r14,%xmm0
  call   <log@plt>
  movsd  0x38(%rsp),%xmm1
  mulsd  0x80(%rsp),%xmm1
  subsd  0x8(%rsp),%xmm0
  divsd  0x18(%rsp),%xmm0
  divsd  %xmm0,%xmm1
  movsd  0x10(%rsp),%xmm5
  movapd %xmm5,%xmm3
  minsd  %xmm1,%xmm3
  movapd %xmm3,%xmm1
  movsd  0x40(%rsp),%xmm6
  subsd  %xmm6,%xmm1
  movapd %xmm5,%xmm0
  subsd  %xmm6,%xmm0
  divsd  %xmm0,%xmm1
  movsd  D642(%rip),%xmm2
  movapd %xmm2,%xmm0
  subsd  %xmm1,%xmm0
  divsd  %xmm5,%xmm6
  subsd  %xmm6,%xmm2
  mulsd  %xmm2,%xmm0
  add    $0xb8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L9:
  movsd  0x20(%rsp),%xmm0
  xorpd  D511(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm5,%xmm5
  cvtsi2sd %eax,%xmm5
  movsd  %xmm5,0x38(%rsp)
  jmp    L43
L120:
  movq   %r14,%xmm0
  call   <log@plt>
  divsd  0x18(%rsp),%xmm0
  jmp    L27
L15:
  movsd  0x20(%rsp),%xmm0
  xorpd  D511(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm7,%xmm7
  cvtsi2sd %eax,%xmm7
  movsd  %xmm7,0x8(%rsp)
  jmp    L8
```

tool_calls: name: retrieve_data
arguments: data_label: D551
datatype: f64
name: retrieve_data
arguments: data_label: D326
datatype: f64
name: retrieve_data
arguments: data_label: D486
datatype: f64
name: retrieve_data
arguments: data_label: D439
datatype: byte[8]
name: retrieve_data
arguments: data_label: D411
datatype: f64
name: retrieve_data
arguments: data_label: D33
datatype: f32[4]
name: retrieve_data
arguments: data_label: D465
datatype: f64
name: retrieve_data
arguments: data_label: D642
datatype: f64
name: retrieve_data
arguments: data_label: D448
datatype: f64
name: retrieve_data
arguments: data_label: D100
datatype: f64
name: retrieve_data
arguments: data_label: D542
datatype: f64
name: retrieve_data
arguments: data_label: D334
datatype: f64
name: retrieve_data
arguments: data_label: D463
datatype: f64
name: retrieve_data
arguments: data_label: D444
datatype: f32[2]
name: retrieve_data
arguments: data_label: D396
datatype: f64
name: retrieve_data
arguments: data_label: D672
datatype: byte[8]
name: retrieve_data
arguments: data_label: D283
datatype: f64
name: retrieve_data
arguments: data_label: D201
datatype: f64
name: retrieve_data
arguments: data_label: D553
datatype: f64
name: retrieve_data
arguments: data_label: D425
datatype: f64
name: retrieve_data
arguments: data_label: D421
datatype: f64
name: retrieve_data
arguments: data_label: D456
datatype: f64
name: retrieve_data
arguments: data_label: D511
datatype: f32[4]
name: retrieve_data
arguments: data_label: D206
datatype: byte[8]
name: retrieve_data
arguments: data_label: D122
datatype: f64
name: retrieve_data
arguments: data_label: D276
datatype: qword[2]
name: retrieve_data
arguments: data_label: D639
datatype: f64[2]
name: retrieve_data
arguments: data_label: D345
datatype: f64
name: retrieve_data
arguments: data_label: D600
datatype: f64
name: retrieve_data
arguments: data_label: D370
datatype: f64
name: retrieve_data
arguments: data_label: D301
datatype: byte[8]
name: retrieve_data
arguments: data_label: D649
datatype: byte[8]
name: retrieve_data
arguments: data_label: D638
datatype: f64
name: retrieve_data
arguments: data_label: D510
datatype: byte[8]
name: retrieve_data
arguments: data_label: D599
datatype: f32[2]
name: retrieve_data
arguments: data_label: D7
datatype: f64
name: retrieve_data
arguments: data_label: D635
datatype: byte[8]

tool: D551: 4.9

tool: D326: 10

tool: D486: 44331

tool: {"D439": [0x49,0xaf,0x27,0x37,0xfa,0x04,0x15,0x40]}

tool: D411: 0.136

tool: {"D33": [0.0,3.390625,2.7200830220753216e23,3.7667479515075684]}

tool: D465: 273.15

tool: D642: 1

tool: D448: 1.5029

tool: D100: 0.5

tool: D542: 17.502

tool: D334: 240.97

tool: D463: 611

tool: {"D444": [0.0,1.78125]}

tool: D396: 0.61

tool: {"D672": [0xab,0xa6,0xb8,0xf9,0x15,0xb3,0xf9,0x3f]}

tool: D283: 287.04

tool: D201: 0.378

tool: D553: 0.12

tool: D425: 125

tool: D421: 0.41

tool: D456: 1005

tool: {"D511": [0.0,-0.0,0.0,0.0]}

tool: {"D206": [0x66,0xf7,0xe4,0x61,0xa1,0x16,0x10,0x40]}

tool: D122: 3

tool: {"D276": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D639": [0.01,1000.0]}

tool: D345: 1000

tool: D600: 4

tool: D370: 9.2

tool: {"D301": [0x4f,0x27,0xaf,0xa5,0xc8,0x7b,0x6e,0x3e]}

tool: {"D649": [0xf6,0x28,0x5c,0x8f,0xc2,0xf5,0xd0,0x3f]}

tool: D638: 0.05

tool: {"D510": [0xe8,0xdb,0x82,0xa5,0xba,0xa0,0x03,0x40]}

tool: {"D599": [0.0,12.158714294433594]}

tool: D7: 67

tool: {"D635": [0x3c,0x14,0x05,0xfa,0x74,0x79,0xb0,0x40]}

assistant: ```c
double sebs_evapfr(double z_pbl, double t_s, double p_s, double u_s, double hr_s, double alt_ms, double eact, double kin, double albedo, double ndvi, double ndvi_min, double ndvi_max, double ndvi_median, double e0, double lst, double dem) {
  double gamma = 67;
  double rv = 461.05;
  double rd = 287.04;
  double cp = 1005;
  double l_e = 2.430 * pow(10, 6);
  double g = 9.81;
  double sigma = 5.678 * pow(10, -8);
  double k = 0.41;
  double z0m = z0_m(ndvi_median, ndvi_max);
  double lai = leafai(ndvi_median);
  double fc = f_c(ndvi_median, ndvi_min, ndvi_max);
  double d = z0m * 4.9;
  double h = z0m / 0.136;
  double z_ms = 10.0;
  double u_c = log((z_pbl - d) / z0m) / log((z_ms - d) / z0m);
  double u_pbl = u_s * u_c;
  p_s = p_s * pow(((44331.0 - dem) / (44331.0 - alt_ms)), (1 / 0.1903));
  double p_pbl = p_s * pow(((44331.0 - (dem + z_pbl)) / (44331.0 - alt_ms)), (1 / 0.1903));
  double kb1 = kb_1(u_pbl, z_pbl, h, lai, fc, t_s, p_s);
  double z0h = z0m / exp(kb1);
  double t_c = log((z_pbl - d) / z0h) / log((z_ms - d) / z0h);
  if (t_s < 100)
    t_s = t_s + 273.15;
  double t_pbl = (t_s * (1.0 - fc) + t_c * fc) / pow((1.0 - dem / 44331.0), 1.5029);
  double t0 = lst / pow((1.0 - dem / 44331.0), 1.5029);
  double t0_pbl = 0.5 * (t0 + t_pbl);
  double tcn;
  if (t0 > 100)
    tcn = t0 - 273.15;
  else
    tcn = t0;
  double esat = 611.0 * exp(17.502 * tcn / (tcn + 240.97));
  double q_pbl = 5.0 / 8.0 * eact / p_pbl;
  double ta;
  if (t0_pbl > 100)
    ta = t0_pbl - 273.15;
  else
    ta = t0_pbl;
  lai = leafai(ndvi);
  fc = f_c(ndvi, ndvi_min, ndvi_max);
  z0m = z0_m(ndvi, ndvi_max);
  d = z0m * 4.9;
  h = z0m / 0.136;
  kb1 = kb_1(u_pbl, z_pbl, h, lai, fc, ta, p_pbl);
  z0h = z0m / exp(kb1);
  double theta_v = lst * (1 + 0.61 * q_pbl);
  double dtair = t0 - t_pbl;
  eact = p_pbl * q_pbl * (rv / rd);
  double rohair = p_s / (rd * theta_v);
  double rohairm = (p_s / (rd * lst)) * (1 - 0.378 * eact / p_s);
  double alpha = 0.12;
  double beta = 125.0;
  double hst;
  if (alpha * z_pbl >= beta * z0m)
    hst = alpha * z_pbl;
  else
    hst = beta * z0m;
  double ustar = k * u_pbl / (log((z_pbl - d) / z0m));
  h = (dtair * k * rohair * cp) * ustar / (log((z_pbl - d) / z0h));
  double h0 = h;
  double reps = 10.0;
  int lsteps = 0;
  double molength;
  if (z_pbl >= hst) {
    while (reps > 0.01 && lsteps < 100) {
      molength = (-rohairm * cp * theta_v / (k * g)) * pow(ustar, 3) / h;
      ustar = k * u_pbl / ((log((z_pbl - d) / z0m)) - bw(z_pbl, molength, z0m));
      h = (dtair * k * rohair * cp) * ustar / ((log((z_pbl - d) / z0h)) - cw(z_pbl, molength, z0m, z0h));
      reps = fabs(h0 - h);
      h0 = h;
      lsteps = lsteps + 1;
    }
  } else {
    while (reps > 0.01 && lsteps < 100) {
      molength = (-rohairm * cp * theta_v / (k * g)) * pow(ustar, 3) / h;
      ustar = k * u_pbl / ((log((z_pbl - d) / z0m)) - psim((z_pbl - d) / molength) + psim(z0m / molength));
      h = (dtair * k * rohair * cp) * ustar / ((log((z_pbl - d) / z0h)) - psih((z_pbl - d) / molength) + psih(z0h / molength));
      reps = fabs(h0 - h);
      h0 = h;
      lsteps = lsteps + 1;
    }
  }
  double e_atm = 9.2 * pow((t_pbl / 1000.0), 2);
  double rn = (1.0 - albedo) * kin + sigma * (e_atm * pow(t_pbl, 4) - e0 * pow(lst, 4));
  double g0 = rn * (0.05 + (1 - fc) * (0.315 - 0.05));
  double h_dry = rn - g0;
  double l_w = -pow(ustar, 3) * rohairm / (0.61 * k * g * (rn - g0) / l_e);
  double cwet;
  if (z_pbl >= hst)
    cwet = cw(z_pbl, l_w, z0m, z0h);
  else
    cwet = psih(-z_pbl / l_w);
  double rew = ((log((z_pbl - d) / z0h)) - cwet) / (k * ustar);
  if (rew <= 0.0)
    rew = (log((z_pbl - d) / z0h)) / (k * ustar);
  double slope = 17.502 * 240.97 * esat / pow((ta + 240.97), 2);
  double h_wet = ((rn - g0) - (rohair * cp / rew) * (esat - eact) / gamma) / (1.0 + slope / gamma);
  double ci;
  if (z_pbl >= hst)
    ci = cw(z_pbl, molength, z0m, z0h);
  else
    ci = psih(-z_pbl / molength);
  double rah = ((log((z_pbl - d) / z0h)) - ci) / (k * ustar);
  double h_pixel = rohair * cp * dtair / rah;
  if (h_pixel > h_dry)
    h_pixel = h_dry;
  double ev_r = 1 - (h_pixel - h_wet) / (h_dry - h_wet);
  double evapfr = ev_r * (1 - h_wet / h_dry);
  return (evapfr);
}
```