user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<sebs_evapfr>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x208,%rsp
  movsd  %xmm0,-0x1c8(%rbp)
  movsd  %xmm1,-0x1d0(%rbp)
  movsd  %xmm2,-0x1d8(%rbp)
  movsd  %xmm3,-0x1e0(%rbp)
  movsd  %xmm4,-0x1e8(%rbp)
  movsd  %xmm5,-0x1f0(%rbp)
  movsd  %xmm6,-0x1f8(%rbp)
  movsd  %xmm7,-0x200(%rbp)
  movsd  D65(%rip),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  D327(%rip),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  D107(%rip),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  D558(%rip),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  D85(%rip),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  D377(%rip),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  D160(%rip),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  D94(%rip),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  0x28(%rbp),%xmm0
  mov    0x30(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <z0_m@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  mov    0x30(%rbp),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <leafai@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  0x28(%rbp),%xmm1
  movsd  0x20(%rbp),%xmm0
  mov    0x30(%rbp),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <f_c@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x110(%rbp),%xmm1
  movsd  D325(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0x110(%rbp),%xmm0
  movsd  D279(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movsd  D619(%rip),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0x110(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0xf0(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0x110(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  D53(%rip),%xmm0
  subsd  0x48(%rbp),%xmm0
  movsd  D53(%rip),%xmm1
  subsd  -0x1f0(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  D226(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0x1d8(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movsd  0x48(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x1c8(%rbp),%xmm1
  movsd  D53(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  D53(%rip),%xmm1
  subsd  -0x1f0(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  D226(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0x1d8(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x1d8(%rbp),%xmm5
  movsd  -0x1d0(%rbp),%xmm4
  movsd  -0x100(%rbp),%xmm3
  movsd  -0x108(%rbp),%xmm2
  movsd  -0x1b0(%rbp),%xmm1
  movsd  -0x1c8(%rbp),%xmm0
  mov    -0xe0(%rbp),%rax
  movapd %xmm5,%xmm6
  movapd %xmm4,%xmm5
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x7,%eax
  call   <kb_1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0xd0(%rbp),%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  movsd  -0x110(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0xc8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0xf0(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0xc8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  D523(%rip),%xmm0
  comisd -0x1d0(%rbp),%xmm0
  jbe    L42
  movsd  -0x1d0(%rbp),%xmm1
  movsd  D222(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d0(%rbp)
L42:
  movsd  D100(%rip),%xmm0
  subsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x1d0(%rbp),%xmm1
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0x208(%rbp)
  movsd  0x48(%rbp),%xmm0
  movsd  D53(%rip),%xmm2
  movapd %xmm0,%xmm6
  divsd  %xmm2,%xmm6
  movapd %xmm6,%xmm1
  movsd  D100(%rip),%xmm0
  movapd %xmm0,%xmm4
  subsd  %xmm1,%xmm4
  movq   %xmm4,%rax
  movsd  D566(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  0x48(%rbp),%xmm0
  movsd  D53(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D100(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  D566(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  movsd  0x40(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0xb8(%rbp),%xmm1
  movsd  D264(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  comisd D523(%rip),%xmm0
  jbe    L45
  movsd  -0xb0(%rbp),%xmm0
  movsd  D222(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  jmp    L199
L45:
  movsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
L199:
  movsd  -0x1a8(%rbp),%xmm1
  movsd  D19(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1a8(%rbp),%xmm2
  movsd  D449(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D162(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x1f8(%rbp),%xmm1
  movsd  D56(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  comisd D523(%rip),%xmm0
  jbe    L17
  movsd  -0xa8(%rbp),%xmm0
  movsd  D222(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
  jmp    L33
L17:
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
L33:
  mov    0x18(%rbp),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <leafai@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  0x28(%rbp),%xmm1
  movsd  0x20(%rbp),%xmm0
  mov    0x18(%rbp),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <f_c@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  0x28(%rbp),%xmm0
  mov    0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <z0_m@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x110(%rbp),%xmm1
  movsd  D325(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0x110(%rbp),%xmm0
  movsd  D279(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movsd  -0xd8(%rbp),%xmm5
  movsd  -0x1a0(%rbp),%xmm4
  movsd  -0x100(%rbp),%xmm3
  movsd  -0x108(%rbp),%xmm2
  movsd  -0x1b0(%rbp),%xmm1
  movsd  -0x1c8(%rbp),%xmm0
  mov    -0xe0(%rbp),%rax
  movapd %xmm5,%xmm6
  movapd %xmm4,%xmm5
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x7,%eax
  call   <kb_1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0xd0(%rbp),%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  movsd  -0x110(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  movsd  -0x98(%rbp),%xmm1
  movsd  D534(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D100(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x98(%rbp),%xmm1
  movsd  -0x148(%rbp),%xmm0
  divsd  -0x140(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x90(%rbp),%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  0x40(%rbp),%xmm2
  movsd  -0x1d8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x1f8(%rbp),%xmm2
  movsd  D9(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  movapd %xmm0,%xmm2
  divsd  -0x1d8(%rbp),%xmm2
  movsd  D100(%rip),%xmm0
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D266(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  D636(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x1c8(%rbp),%xmm0
  movsd  -0x68(%rbp),%xmm1
  mulsd  -0x110(%rbp),%xmm1
  comisd %xmm1,%xmm0
  jb     L191
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x1c8(%rbp),%xmm0
  movsd  %xmm0,-0x198(%rbp)
  jmp    L130
L191:
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x198(%rbp)
L130:
  movsd  -0x118(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm5
  divsd  -0x110(%rbp),%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x190(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x190(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm7
  divsd  -0xc8(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  movsd  D619(%rip),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movl   $0x0,-0x1b4(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  comisd -0x198(%rbp),%xmm0
  jb     L72
  jmp    L75
L78:
  movsd  -0x78(%rbp),%xmm0
  movq   D180(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  -0x118(%rbp),%xmm1
  mulsd  -0x128(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  D677(%rip),%xmm0
  mov    -0x190(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x208(%rbp),%xmm0
  divsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x178(%rbp)
  movsd  -0x118(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm3
  divsd  -0x110(%rbp),%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0x110(%rbp),%xmm1
  movsd  -0x178(%rbp),%xmm0
  mov    -0x1c8(%rbp),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <bw@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm1
  subsd  %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x190(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x190(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm4
  divsd  -0xc8(%rbp),%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0xc8(%rbp),%xmm2
  movsd  -0x110(%rbp),%xmm1
  movsd  -0x178(%rbp),%xmm0
  mov    -0x1c8(%rbp),%rax
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <cw@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm1
  subsd  %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movsd  -0x188(%rbp),%xmm0
  subsd  -0x1b0(%rbp),%xmm0
  movq   D434(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  addl   $0x1,-0x1b4(%rbp)
L75:
  movsd  -0x180(%rbp),%xmm0
  comisd D354(%rip),%xmm0
  jbe    L4
  cmpl   $0x63,-0x1b4(%rbp)
  jle    L78
  jmp    L4
L72:
  jmp    L185
L182:
  movsd  -0x78(%rbp),%xmm0
  movq   D180(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  -0x118(%rbp),%xmm1
  mulsd  -0x128(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  D677(%rip),%xmm0
  mov    -0x190(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x208(%rbp),%xmm0
  divsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x178(%rbp)
  movsd  -0x118(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm7
  divsd  -0x110(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm6
  divsd  -0x178(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psim@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm7
  subsd  %xmm0,%xmm7
  movsd  %xmm7,-0x210(%rbp)
  movsd  -0x110(%rbp),%xmm0
  movapd %xmm0,%xmm5
  divsd  -0x178(%rbp),%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psim@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x210(%rbp),%xmm1
  addsd  %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x190(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x190(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm3
  divsd  -0xc8(%rbp),%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rbx
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm4
  divsd  -0x178(%rbp),%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbx,%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,-0x210(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm7
  divsd  -0x178(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x210(%rbp),%xmm1
  addsd  %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movsd  -0x188(%rbp),%xmm0
  subsd  -0x1b0(%rbp),%xmm0
  movq   D434(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  addl   $0x1,-0x1b4(%rbp)
L185:
  movsd  -0x180(%rbp),%xmm0
  comisd D354(%rip),%xmm0
  jbe    L4
  cmpl   $0x63,-0x1b4(%rbp)
  jle    L182
L4:
  movsd  -0xb8(%rbp),%xmm0
  movsd  D154(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  D438(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D647(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  D100(%rip),%xmm0
  subsd  0x10(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movsd  D52(%rip),%xmm0
  mov    -0xb8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm7
  mulsd  -0x60(%rbp),%xmm7
  movsd  %xmm7,-0x210(%rbp)
  movsd  D52(%rip),%xmm0
  mov    0x40(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  0x38(%rbp),%xmm1
  movsd  -0x210(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  -0x208(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D100(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x100(%rbp),%xmm1
  movsd  D133(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D250(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D677(%rip),%xmm0
  mov    -0x190(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movq   D180(%rip),%xmm0
  movq   %rax,%xmm5
  xorpd  %xmm0,%xmm5
  movapd %xmm5,%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x118(%rbp),%xmm2
  movsd  D534(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x128(%rbp),%xmm2
  movsd  -0x58(%rbp),%xmm1
  subsd  -0x50(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  divsd  -0x130(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  comisd -0x198(%rbp),%xmm0
  jb     L16
  movsd  -0xc8(%rbp),%xmm2
  movsd  -0x110(%rbp),%xmm1
  movsd  -0x40(%rbp),%xmm0
  mov    -0x1c8(%rbp),%rax
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <cw@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x170(%rbp)
  jmp    L128
L16:
  movsd  -0x1c8(%rbp),%xmm0
  movq   D180(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  divsd  -0x40(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x170(%rbp)
L128:
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0xc8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  subsd  -0x170(%rbp),%xmm0
  movsd  -0x118(%rbp),%xmm1
  mulsd  -0x190(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x168(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x168(%rbp),%xmm0
  jb     L61
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0xc8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movsd  -0x118(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x190(%rbp),%xmm1
  movq   %rax,%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x168(%rbp)
L61:
  movsd  -0xa0(%rbp),%xmm1
  movsd  D537(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,-0x208(%rbp)
  movsd  -0x1a0(%rbp),%xmm1
  movsd  D449(%rip),%xmm0
  movapd %xmm1,%xmm3
  addsd  %xmm0,%xmm3
  movq   %xmm3,%rax
  movsd  D438(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  movsd  -0x208(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  mulsd  -0x138(%rbp),%xmm1
  movapd %xmm1,%xmm2
  divsd  -0x168(%rbp),%xmm2
  movsd  -0xa0(%rbp),%xmm1
  subsd  -0x1f8(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  divsd  -0x150(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  movapd %xmm1,%xmm2
  divsd  -0x150(%rbp),%xmm2
  movsd  D100(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  comisd -0x198(%rbp),%xmm0
  jb     L115
  movsd  -0xc8(%rbp),%xmm2
  movsd  -0x110(%rbp),%xmm1
  movsd  -0x178(%rbp),%xmm0
  mov    -0x1c8(%rbp),%rax
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <cw@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x160(%rbp)
  jmp    L54
L115:
  movsd  -0x1c8(%rbp),%xmm0
  movq   D180(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  divsd  -0x178(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <psih@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x160(%rbp)
L54:
  movsd  -0x1c8(%rbp),%xmm0
  subsd  -0xf8(%rbp),%xmm0
  divsd  -0xc8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  subsd  -0x160(%rbp),%xmm0
  movsd  -0x118(%rbp),%xmm1
  mulsd  -0x190(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x138(%rbp),%xmm0
  mulsd  -0x88(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x158(%rbp)
  movsd  -0x158(%rbp),%xmm0
  comisd -0x48(%rbp),%xmm0
  jbe    L149
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x158(%rbp)
L149:
  movsd  -0x158(%rbp),%xmm0
  subsd  -0x30(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0x30(%rbp),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D100(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x48(%rbp),%xmm1
  movsd  D100(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D65
data_type: f64
name: retrieve_data
arguments: data_label: D327
data_type: f64
name: retrieve_data
arguments: data_label: D107
data_type: f64
name: retrieve_data
arguments: data_label: D558
data_type: f64
name: retrieve_data
arguments: data_label: D85
data_type: f32[2]
name: retrieve_data
arguments: data_label: D377
data_type: f64
name: retrieve_data
arguments: data_label: D160
data_type: byte[8]
name: retrieve_data
arguments: data_label: D94
data_type: f64
name: retrieve_data
arguments: data_label: D325
data_type: f64
name: retrieve_data
arguments: data_label: D279
data_type: f64
name: retrieve_data
arguments: data_label: D619
data_type: f64
name: retrieve_data
arguments: data_label: D53
data_type: f64
name: retrieve_data
arguments: data_label: D226
data_type: byte[8]
name: retrieve_data
arguments: data_label: D523
data_type: f32[4]
name: retrieve_data
arguments: data_label: D222
data_type: f64
name: retrieve_data
arguments: data_label: D100
data_type: f64
name: retrieve_data
arguments: data_label: D566
data_type: f64
name: retrieve_data
arguments: data_label: D264
data_type: f64
name: retrieve_data
arguments: data_label: D19
data_type: f64
name: retrieve_data
arguments: data_label: D449
data_type: f64
name: retrieve_data
arguments: data_label: D162
data_type: f64
name: retrieve_data
arguments: data_label: D56
data_type: f32[2]
name: retrieve_data
arguments: data_label: D534
data_type: f64
name: retrieve_data
arguments: data_label: D9
data_type: f64
name: retrieve_data
arguments: data_label: D266
data_type: f64
name: retrieve_data
arguments: data_label: D636
data_type: f64
name: retrieve_data
arguments: data_label: D180
data_type: f32[2]
name: retrieve_data
arguments: data_label: D677
data_type: f64
name: retrieve_data
arguments: data_label: D434
data_type: qword
name: retrieve_data
arguments: data_label: D354
data_type: f64[2]
name: retrieve_data
arguments: data_label: D154
data_type: f64
name: retrieve_data
arguments: data_label: D438
data_type: f64
name: retrieve_data
arguments: data_label: D647
data_type: f64
name: retrieve_data
arguments: data_label: D52
data_type: f64
name: retrieve_data
arguments: data_label: D133
data_type: byte[8]
name: retrieve_data
arguments: data_label: D250
data_type: f64
name: retrieve_data
arguments: data_label: D537
data_type: byte[8]

tool: D65: 67

tool: D327: 461.05

tool: D107: 287.04

tool: D558: 1005

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

tool: D377: 9.81

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

tool: D94: 0.41

tool: D325: 4.9

tool: D279: 0.136

tool: D619: 10

tool: D53: 44331

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

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

tool: D222: 273.15

tool: D100: 1

tool: D566: 1.5029

tool: D264: 0.5

tool: D19: 17.502

tool: D449: 240.97

tool: D162: 611

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

tool: D534: 0.61

tool: D9: 0.378

tool: D266: 0.12

tool: D636: 125

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

tool: D677: 3

tool: D434: 9223372036854775807

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

tool: D154: 1000

tool: D438: 2

tool: D647: 9.2

tool: D52: 4

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

tool: D250: 0.05

tool: {"D537": [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);
}
```