#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double exp(double);
double f_c(double, double, double);
double fabs(double);
double kb_1(double, double, double, double, double, double, double);
double leafai(double);
double log(double);
double pow(int, int);
double z0_m(double, double);
double sebs_eta(double doy, double ndvi, double ndvi_max, double ndvi_min,
                double ndvi_median, double u_s, double z_pbl, double t_s,
                double p_s, double alt_ms, double e_act, double latitude,
                double kin24, double albedo, double dem, double lst, double e0,
                double evapfr) {
  double d, h, kb1, z0h, t_c, t_pbl, t0, t0_pbl, ta;
  double z_ms = 10.0;
  if (t_s < 100)
    t_s = t_s + 273.15;
  double sigma = 5.678 * pow(10, -8);
  double lai = leafai(ndvi_median);
  double fc = f_c(ndvi_median, ndvi_min, ndvi_max);
  double z0m = z0_m(ndvi_median, ndvi_max);
  d = z0m * 4.9;
  double u_c = log((z_pbl - d) / z0m) / log((z_ms - d) / z0m);
  double u_pbl = u_s * u_c;
  double p_pbl =
      p_s * pow(((44331.0 - dem + z_pbl) / (44331.0 - alt_ms)), (1 / 0.1903));
  int i;
  for (i = 0; i < 2; i++) {
    d = z0m * 4.9;
    h = z0m / 0.136;
    if (i == 0)
      kb1 = kb_1(u_pbl, z_pbl, h, lai, fc, t_s, p_s);
    else
      kb1 = kb_1(u_pbl, z_pbl, h, lai, fc, ta, p_pbl);
    z0h = z0m / exp(kb1);
    t_c = log((z_pbl - d) / z0h) / log((z_ms - d) / z0h);
    t_pbl = (t_s * (1.0 - fc) + t_c * fc) / pow((1.0 - dem / 44331.0), 1.5029);
    if (i == 0) {
      t0 = lst / pow((1.0 - dem / 44331.0), 1.5029);
      t0_pbl = 0.5 * (t0 + t_pbl);
      if (t0_pbl > 100)
        ta = t0_pbl - 273.15;
      lai = leafai(ndvi);
      fc = f_c(ndvi, ndvi_min, ndvi_max);
      z0m = z0_m(ndvi, ndvi_max);
    }
  }
  double em_air = 0.34 - 0.14 * pow((0.001 * e_act), 0.5);
  double tae = pow(em_air, 0.5) * pow(t_pbl, 2);
  double lambda = 2.501 - 0.02361 * t_pbl;
  double t0e = pow(e0, 0.5) * pow(lst, 2);
  double l24 = sigma * (tae + t0e) * (tae - t0e);
  double rnetd = (1 - albedo) * kin24 + l24;
  if (fabs(lambda) < pow(10, -5))
    lambda = pow(10, -5);
  double eta24 = 0.0864 * evapfr * rnetd / lambda;
  return (eta24);
}


x86 assembly (clang, -O0):
<sebs_eta>:
push   %rbp
mov    %rsp,%rbp
sub    $0x150,%rsp
movsd  0x58(%rbp),%xmm8
movsd  0x50(%rbp),%xmm8
movsd  0x48(%rbp),%xmm8
movsd  0x40(%rbp),%xmm8
movsd  0x38(%rbp),%xmm8
movsd  0x30(%rbp),%xmm8
movsd  0x28(%rbp),%xmm8
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  %xmm3,-0x20(%rbp)
movsd  %xmm4,-0x28(%rbp)
movsd  %xmm5,-0x30(%rbp)
movsd  %xmm6,-0x38(%rbp)
movsd  %xmm7,-0x40(%rbp)
movsd  0xe21(%rip),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0xe09(%rip),%xmm0
ucomisd -0x40(%rbp),%xmm0
jbe    1214 <sebs_eta+0xa4>
movsd  0xe06(%rip),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    $0xa,%edi
mov    $0xfffffff8,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xdfa(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1030 <leafai@plt>
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
call   1070 <f_c@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
call   1040 <z0_m@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0xd99(%rip),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x48(%rbp)
movsd  -0x38(%rbp),%xmm0
subsd  -0x48(%rbp),%xmm0
divsd  -0xb0(%rbp),%xmm0
ff
call   1080 <log@plt>
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0x48(%rbp),%xmm0
divsd  -0xb0(%rbp),%xmm0
ff
call   1080 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x10(%rbp),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0xd0a(%rip),%xmm0
subsd  0x40(%rbp),%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  0xcf8(%rip),%xmm1
subsd  0x18(%rbp),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
mov    $0x5,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movl   $0x0,-0xcc(%rbp)
cmpl   $0x2,-0xcc(%rbp)
jge    15ff <sebs_eta+0x48f>
movsd  0xcb3(%rip),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x48(%rbp)
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0xcde(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
cmpl   $0x0,-0xcc(%rbp)
jne    13db <sebs_eta+0x26b>
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x38(%rbp),%xmm1
movsd  -0x50(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm3
ff
movsd  -0xa8(%rbp),%xmm4
ff
movsd  -0x40(%rbp),%xmm5
movsd  0x10(%rbp),%xmm6
call   1050 <kb_1@plt>
movsd  %xmm0,-0x58(%rbp)
jmp    1417 <sebs_eta+0x2a7>
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x38(%rbp),%xmm1
movsd  -0x50(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm3
ff
movsd  -0xa8(%rbp),%xmm4
ff
movsd  -0x88(%rbp),%xmm5
ff
movsd  -0xc8(%rbp),%xmm6
ff
call   1050 <kb_1@plt>
movsd  %xmm0,-0x58(%rbp)
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
call   1060 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x130(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x38(%rbp),%xmm0
subsd  -0x48(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
call   1080 <log@plt>
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0x48(%rbp),%xmm0
divsd  -0x60(%rbp),%xmm0
call   1080 <log@plt>
movaps %xmm0,%xmm1
movsd  -0x128(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  0xb97(%rip),%xmm2
subsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x68(%rbp),%xmm1
mulsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0x40(%rbp),%xmm1
movsd  0xb4d(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xb59(%rip),%xmm0
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
mov    $0x1,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x120(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
cmpl   $0x0,-0xcc(%rbp)
jne    15e6 <sebs_eta+0x476>
movsd  0x48(%rbp),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  0x40(%rbp),%xmm1
movsd  0xaf4(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xb00(%rip),%xmm0
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
mov    $0x1,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x138(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm1
addsd  -0x70(%rbp),%xmm1
movsd  0xb08(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  0xa82(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    15a1 <sebs_eta+0x431>
movsd  -0x80(%rbp),%xmm0
movsd  0xa7b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1030 <leafai@plt>
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
call   1070 <f_c@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
call   1040 <z0_m@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
jmp    15eb <sebs_eta+0x47b>
mov    -0xcc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xcc(%rbp)
jmp    1358 <sebs_eta+0x1e8>
movsd  0xa51(%rip),%xmm0
mulsd  0x20(%rbp),%xmm0
cvttsd2si %xmm0,%edi
xor    %esi,%esi
call   1090 <pow@plt>
movsd  0xa29(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa25(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
cvttsd2si -0xd8(%rbp),%edi
ff
xor    %esi,%esi
call   1090 <pow@plt>
movsd  %xmm0,-0x150(%rbp)
ff
cvttsd2si -0x70(%rbp),%edi
mov    $0x2,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  0x9b7(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9b3(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
cvttsd2si 0x50(%rbp),%edi
xor    %esi,%esi
call   1090 <pow@plt>
movsd  %xmm0,-0x148(%rbp)
ff
cvttsd2si 0x48(%rbp),%edi
mov    $0x2,%esi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x148(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xe0(%rbp),%xmm1
ff
addsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0xe0(%rbp),%xmm1
ff
subsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0x91d(%rip),%xmm0
subsd  0x38(%rbp),%xmm0
movsd  0x30(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
movaps 0x93c(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
mov    $0xa,%edi
mov    $0xfffffffb,%esi
call   1090 <pow@plt>
movsd  -0x140(%rbp),%xmm1
ff
ucomisd %xmm1,%xmm0
jbe    1788 <sebs_eta+0x618>
mov    $0xa,%edi
mov    $0xfffffffb,%esi
call   1090 <pow@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0x8d0(%rip),%xmm0
mulsd  0x58(%rbp),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
divsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
add    $0x150,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<sebs_eta>:
push   %rbp
push   %rbx
sub    $0x98,%rsp
movsd  %xmm6,0x28(%rsp)
movsd  %xmm5,0x10(%rsp)
movsd  %xmm4,(%rsp)
movsd  %xmm3,0x58(%rsp)
movsd  %xmm2,0x38(%rsp)
movsd  %xmm1,0x40(%rsp)
movsd  0xe5c(%rip),%xmm0
addsd  %xmm7,%xmm0
movapd %xmm7,%xmm1
cmpltsd 0xe53(%rip),%xmm1
andpd  %xmm1,%xmm0
andnpd %xmm7,%xmm1
orpd   %xmm0,%xmm1
movapd %xmm1,0x80(%rsp)
mov    $0xa,%edi
mov    $0xfffffff8,%esi
call   1090 <pow@plt>
movsd  %xmm0,0x70(%rsp)
movsd  (%rsp),%xmm0
call   1030 <leafai@plt>
movsd  %xmm0,0x20(%rsp)
movsd  (%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x38(%rsp),%xmm2
call   1070 <f_c@plt>
movsd  %xmm0,0x18(%rsp)
movsd  (%rsp),%xmm0
movsd  0x38(%rsp),%xmm1
call   1040 <z0_m@plt>
movapd %xmm0,%xmm1
movsd  %xmm0,(%rsp)
movsd  0xde4(%rip),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x60(%rsp)
movsd  0x28(%rsp),%xmm0
subsd  %xmm2,%xmm0
divsd  %xmm1,%xmm0
call   1080 <log@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xdc1(%rip),%xmm0
subsd  0x60(%rsp),%xmm0
divsd  (%rsp),%xmm0
call   1080 <log@plt>
movsd  0x30(%rsp),%xmm1
divsd  %xmm0,%xmm1
mulsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x30(%rsp)
movsd  0xd9b(%rip),%xmm1
movapd %xmm1,%xmm0
subsd  0xe0(%rsp),%xmm0
subsd  0xb8(%rsp),%xmm1
addsd  0x28(%rsp),%xmm0
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
mov    $0x5,%esi
call   1090 <pow@plt>
mulsd  0xb0(%rsp),%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0xe0(%rsp),%xmm1
divsd  0xd4d(%rip),%xmm1
movsd  0xd4d(%rip),%xmm0
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%ebx
movsd  (%rsp),%xmm0
mov    $0x1,%bpl
nopl   0x0(%rax,%rax,1)
movapd %xmm0,%xmm1
mulsd  0xd14(%rip),%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  %xmm0,(%rsp)
movapd %xmm0,%xmm2
divsd  0xd1d(%rip),%xmm2
test   $0x1,%bpl
movaps %xmm5,0x60(%rsp)
je     1350 <sebs_eta+0x1e0>
movsd  0x30(%rsp),%xmm0
movsd  0x28(%rsp),%xmm1
movsd  0x20(%rsp),%xmm3
movsd  0x18(%rsp),%xmm4
movaps 0x80(%rsp),%xmm5
movsd  0xb0(%rsp),%xmm6
jmp    136e <sebs_eta+0x1fe>
nopl   0x0(%rax)
movsd  0x30(%rsp),%xmm0
movsd  0x28(%rsp),%xmm1
movsd  0x20(%rsp),%xmm3
movsd  0x18(%rsp),%xmm4
movsd  0x78(%rsp),%xmm6
call   1050 <kb_1@plt>
call   1060 <exp@plt>
movsd  (%rsp),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rsp)
movsd  0x28(%rsp),%xmm0
subsd  0x10(%rsp),%xmm0
divsd  %xmm1,%xmm0
call   1080 <log@plt>
movsd  %xmm0,0x20(%rsp)
movsd  0xc6f(%rip),%xmm0
subsd  0x10(%rsp),%xmm0
divsd  (%rsp),%xmm0
call   1080 <log@plt>
movsd  0x20(%rsp),%xmm1
divsd  %xmm0,%xmm1
movsd  0xc5d(%rip),%xmm2
movsd  0x18(%rsp),%xmm0
subsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm1
mulsd  0x80(%rsp),%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,(%rsp)
mov    %ebx,%edi
mov    $0x1,%esi
call   1090 <pow@plt>
movapd (%rsp),%xmm1
divsd  %xmm0,%xmm1
movapd %xmm1,(%rsp)
test   $0x1,%bpl
je     14ab <sebs_eta+0x33b>
mov    %ebx,%edi
mov    $0x1,%esi
call   1090 <pow@plt>
movsd  0xe8(%rsp),%xmm1
divsd  %xmm0,%xmm1
movapd (%rsp),%xmm2
addsd  %xmm1,%xmm2
mulsd  0xc37(%rip),%xmm2
movsd  0xbc7(%rip),%xmm0
cmpltsd %xmm2,%xmm0
addsd  0xc2a(%rip),%xmm2
andpd  %xmm0,%xmm2
andnpd 0x60(%rsp),%xmm0
orpd   %xmm2,%xmm0
movapd %xmm0,(%rsp)
movsd  0x40(%rsp),%xmm0
call   1030 <leafai@plt>
movsd  %xmm0,0x20(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0x58(%rsp),%xmm1
movsd  0x38(%rsp),%xmm2
call   1070 <f_c@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0x38(%rsp),%xmm1
call   1040 <z0_m@plt>
xor    %ebp,%ebp
movaps (%rsp),%xmm5
jmp    12f0 <sebs_eta+0x180>
movsd  0xc0(%rsp),%xmm0
mulsd  0xb7c(%rip),%xmm0
cvttsd2si %xmm0,%edi
xor    %esi,%esi
call   1090 <pow@plt>
mulsd  0xb71(%rip),%xmm0
addsd  0xb71(%rip),%xmm0
cvttsd2si %xmm0,%edi
xor    %esi,%esi
call   1090 <pow@plt>
movsd  %xmm0,0x18(%rsp)
cvttsd2si (%rsp),%edi
mov    $0x2,%esi
call   1090 <pow@plt>
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movapd (%rsp),%xmm0
mulsd  0xb40(%rip),%xmm0
addsd  0xb40(%rip),%xmm0
movapd %xmm0,(%rsp)
cvttsd2si 0xf0(%rsp),%edi
xor    %esi,%esi
call   1090 <pow@plt>
movsd  %xmm0,0x10(%rsp)
cvttsd2si 0xe8(%rsp),%edi
mov    $0x2,%esi
call   1090 <pow@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0xb26(%rip),%xmm0
andpd  (%rsp),%xmm0
movapd %xmm0,0x40(%rsp)
mov    $0xa,%edi
mov    $0xfffffffb,%esi
call   1090 <pow@plt>
ucomisd 0x40(%rsp),%xmm0
jbe    1590 <sebs_eta+0x420>
mov    $0xa,%edi
mov    $0xfffffffb,%esi
call   1090 <pow@plt>
movapd %xmm0,(%rsp)
movsd  0xa90(%rip),%xmm2
subsd  0xd8(%rsp),%xmm2
mulsd  0xd0(%rsp),%xmm2
movsd  0x70(%rsp),%xmm1
mulsd  0xaa8(%rip),%xmm1
movsd  0x18(%rsp),%xmm3
movapd %xmm3,%xmm0
movsd  0x10(%rsp),%xmm4
addsd  %xmm4,%xmm0
mulsd  %xmm1,%xmm0
subsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movsd  0xf8(%rsp),%xmm0
mulsd  0xa7b(%rip),%xmm0
mulsd  %xmm3,%xmm0
divsd  (%rsp),%xmm0
add    $0x98,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define double @sebs_eta(double %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13, double %14, double %15, double %16, double %17) {
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca i32
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
store double %0, double* %19
store double %1, double* %20
store double %2, double* %21
store double %3, double* %22
store double %4, double* %23
store double %5, double* %24
store double %6, double* %25
store double %7, double* %26
store double %8, double* %27
store double %9, double* %28
store double %10, double* %29
store double %11, double* %30
store double %12, double* %31
store double %13, double* %32
store double %14, double* %33
store double %15, double* %34
store double %16, double* %35
store double %17, double* %36
store double 1.000000e+01, double* %46
%62 = load double, double* %26
%63 = fcmp olt double %62, 1.000000e+02
br i1 %63, label %64, label %67
64: ; preds = %18
%65 = load double, double* %26
%66 = fadd double %65, 2.731500e+02
store double %66, double* %26
br label %67
67: ; preds = %64, %18
%68 = call double @pow(i32 10, i32 -8)
%69 = fmul double 5.678000e+00, %68
store double %69, double* %47
%70 = load double, double* %23
%71 = call double @leafai(double %70)
store double %71, double* %48
%72 = load double, double* %23
%73 = load double, double* %22
%74 = load double, double* %21
%75 = call double @f_c(double %72, double %73, double %74)
store double %75, double* %49
%76 = load double, double* %23
%77 = load double, double* %21
%78 = call double @z0_m(double %76, double %77)
store double %78, double* %50
%79 = load double, double* %50
%80 = fmul double %79, 4.900000e+00
store double %80, double* %37
%81 = load double, double* %25
%82 = load double, double* %37
%83 = fsub double %81, %82
%84 = load double, double* %50
%85 = fdiv double %83, %84
%86 = call double @log(double %85)
%87 = load double, double* %46
%88 = load double, double* %37
%89 = fsub double %87, %88
%90 = load double, double* %50
%91 = fdiv double %89, %90
%92 = call double @log(double %91)
%93 = fdiv double %86, %92
store double %93, double* %51
%94 = load double, double* %24
%95 = load double, double* %51
%96 = fmul double %94, %95
store double %96, double* %52
%97 = load double, double* %27
%98 = load double, double* %33
%99 = fsub double 4.433100e+04, %98
%100 = load double, double* %25
%101 = fadd double %99, %100
%102 = load double, double* %28
%103 = fsub double 4.433100e+04, %102
%104 = fdiv double %101, %103
%105 = fptosi double %104 to i32
%106 = call double @pow(i32 %105, i32 5)
%107 = fmul double %97, %106
store double %107, double* %53
store i32 0, i32* %54
br label %108
108: ; preds = %197, %67
%109 = load i32, i32* %54
%110 = icmp slt i32 %109, 2
br i1 %110, label %111, label %200
111: ; preds = %108
%112 = load double, double* %50
%113 = fmul double %112, 4.900000e+00
store double %113, double* %37
%114 = load double, double* %50
%115 = fdiv double %114, 1.360000e-01
store double %115, double* %38
%116 = load i32, i32* %54
%117 = icmp eq i32 %116, 0
br i1 %117, label %118, label %127
118: ; preds = %111
%119 = load double, double* %52
%120 = load double, double* %25
%121 = load double, double* %38
%122 = load double, double* %48
%123 = load double, double* %49
%124 = load double, double* %26
%125 = load double, double* %27
%126 = call double @kb_1(double %119, double %120, double %121, double %122, double %123, double %124, double %125)
store double %126, double* %39
br label %136
127: ; preds = %111
%128 = load double, double* %52
%129 = load double, double* %25
%130 = load double, double* %38
%131 = load double, double* %48
%132 = load double, double* %49
%133 = load double, double* %45
%134 = load double, double* %53
%135 = call double @kb_1(double %128, double %129, double %130, double %131, double %132, double %133, double %134)
store double %135, double* %39
br label %136
136: ; preds = %127, %118
%137 = load double, double* %50
%138 = load double, double* %39
%139 = call double @exp(double %138)
%140 = fdiv double %137, %139
store double %140, double* %40
%141 = load double, double* %25
%142 = load double, double* %37
%143 = fsub double %141, %142
%144 = load double, double* %40
%145 = fdiv double %143, %144
%146 = call double @log(double %145)
%147 = load double, double* %46
%148 = load double, double* %37
%149 = fsub double %147, %148
%150 = load double, double* %40
%151 = fdiv double %149, %150
%152 = call double @log(double %151)
%153 = fdiv double %146, %152
store double %153, double* %41
%154 = load double, double* %26
%155 = load double, double* %49
%156 = fsub double 1.000000e+00, %155
%157 = load double, double* %41
%158 = load double, double* %49
%159 = fmul double %157, %158
%160 = call double @llvm.fmuladd.f64(double %154, double %156, double %159)
%161 = load double, double* %33
%162 = fdiv double %161, 4.433100e+04
%163 = fsub double 1.000000e+00, %162
%164 = fptosi double %163 to i32
%165 = call double @pow(i32 %164, i32 1)
%166 = fdiv double %160, %165
store double %166, double* %42
%167 = load i32, i32* %54
%168 = icmp eq i32 %167, 0
br i1 %168, label %169, label %196
169: ; preds = %136
%170 = load double, double* %34
%171 = load double, double* %33
%172 = fdiv double %171, 4.433100e+04
%173 = fsub double 1.000000e+00, %172
%174 = fptosi double %173 to i32
%175 = call double @pow(i32 %174, i32 1)
%176 = fdiv double %170, %175
store double %176, double* %43
%177 = load double, double* %43
%178 = load double, double* %42
%179 = fadd double %177, %178
%180 = fmul double 5.000000e-01, %179
store double %180, double* %44
%181 = load double, double* %44
%182 = fcmp ogt double %181, 1.000000e+02
br i1 %182, label %183, label %186
183: ; preds = %169
%184 = load double, double* %44
%185 = fsub double %184, 2.731500e+02
store double %185, double* %45
br label %186
186: ; preds = %183, %169
%187 = load double, double* %20
%188 = call double @leafai(double %187)
store double %188, double* %48
%189 = load double, double* %20
%190 = load double, double* %22
%191 = load double, double* %21
%192 = call double @f_c(double %189, double %190, double %191)
store double %192, double* %49
%193 = load double, double* %20
%194 = load double, double* %21
%195 = call double @z0_m(double %193, double %194)
store double %195, double* %50
br label %196
196: ; preds = %186, %136
br label %197
197: ; preds = %196
%198 = load i32, i32* %54
%199 = add nsw i32 %198, 1
store i32 %199, i32* %54
br label %108
200: ; preds = %108
%201 = load double, double* %29
%202 = fmul double 1.000000e-03, %201
%203 = fptosi double %202 to i32
%204 = call double @pow(i32 %203, i32 0)
%205 = call double @llvm.fmuladd.f64(double -1.400000e-01, double %204, double 3.400000e-01)
store double %205, double* %55
%206 = load double, double* %55
%207 = fptosi double %206 to i32
%208 = call double @pow(i32 %207, i32 0)
%209 = load double, double* %42
%210 = fptosi double %209 to i32
%211 = call double @pow(i32 %210, i32 2)
%212 = fmul double %208, %211
store double %212, double* %56
%213 = load double, double* %42
%214 = call double @llvm.fmuladd.f64(double -2.361000e-02, double %213, double 2.501000e+00)
store double %214, double* %57
%215 = load double, double* %35
%216 = fptosi double %215 to i32
%217 = call double @pow(i32 %216, i32 0)
%218 = load double, double* %34
%219 = fptosi double %218 to i32
%220 = call double @pow(i32 %219, i32 2)
%221 = fmul double %217, %220
store double %221, double* %58
%222 = load double, double* %47
%223 = load double, double* %56
%224 = load double, double* %58
%225 = fadd double %223, %224
%226 = fmul double %222, %225
%227 = load double, double* %56
%228 = load double, double* %58
%229 = fsub double %227, %228
%230 = fmul double %226, %229
store double %230, double* %59
%231 = load double, double* %32
%232 = fsub double 1.000000e+00, %231
%233 = load double, double* %31
%234 = load double, double* %59
%235 = call double @llvm.fmuladd.f64(double %232, double %233, double %234)
store double %235, double* %60
%236 = load double, double* %57
%237 = call double @llvm.fabs.f64(double %236)
%238 = call double @pow(i32 10, i32 -5)
%239 = fcmp olt double %237, %238
br i1 %239, label %240, label %242
240: ; preds = %200
%241 = call double @pow(i32 10, i32 -5)
store double %241, double* %57
br label %242
242: ; preds = %240, %200
%243 = load double, double* %36
%244 = fmul double 8.640000e-02, %243
%245 = load double, double* %60
%246 = fmul double %244, %245
%247 = load double, double* %57
%248 = fdiv double %246, %247
store double %248, double* %61
%249 = load double, double* %61
ret double %249
}

LLVM IR (-O2):
define double @sebs_eta(double %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13, double %14, double %15, double %16, double %17) {
%19 = fcmp olt double %7, 1.000000e+02
%20 = fadd double %7, 2.731500e+02
%21 = select i1 %19, double %20, double %7
%22 = tail call double @pow(i32 10, i32 -8)
%23 = tail call double @leafai(double %4)
%24 = tail call double @f_c(double %4, double %3, double %2)
%25 = tail call double @z0_m(double %4, double %2)
%26 = fmul double %25, 4.900000e+00
%27 = fsub double %6, %26
%28 = fdiv double %27, %25
%29 = tail call double @log(double %28)
%30 = fsub double 1.000000e+01, %26
%31 = fdiv double %30, %25
%32 = tail call double @log(double %31)
%33 = fdiv double %29, %32
%34 = fmul double %33, %5
%35 = fsub double 4.433100e+04, %14
%36 = fadd double %35, %6
%37 = fsub double 4.433100e+04, %9
%38 = fdiv double %36, %37
%39 = fptosi double %38 to i32
%40 = tail call double @pow(i32 %39, i32 5)
%41 = fmul double %40, %8
%42 = fdiv double %14, 4.433100e+04
%43 = fsub double 1.000000e+00, %42
%44 = fptosi double %43 to i32
br label %45
45: ; preds = %73, %18
%46 = phi double [ undef, %18 ], [ %80, %73 ]
%47 = phi double [ %23, %18 ], [ %81, %73 ]
%48 = phi i1 [ true, %18 ], [ false, %73 ]
%49 = phi double [ %24, %18 ], [ %82, %73 ]
%50 = phi double [ %25, %18 ], [ %83, %73 ]
%51 = fmul double %50, 4.900000e+00
%52 = fdiv double %50, 1.360000e-01
br i1 %48, label %53, label %55
53: ; preds = %45
%54 = tail call double @kb_1(double %34, double %6, double %52, double %47, double %49, double %21, double %8)
br label %57
55: ; preds = %45
%56 = tail call double @kb_1(double %34, double %6, double %52, double %47, double %49, double %46, double %41)
br label %57
57: ; preds = %55, %53
%58 = phi double [ %54, %53 ], [ %56, %55 ]
%59 = tail call double @exp(double %58)
%60 = fdiv double %50, %59
%61 = fsub double %6, %51
%62 = fdiv double %61, %60
%63 = tail call double @log(double %62)
%64 = fsub double 1.000000e+01, %51
%65 = fdiv double %64, %60
%66 = tail call double @log(double %65)
%67 = fdiv double %63, %66
%68 = fsub double 1.000000e+00, %49
%69 = fmul double %49, %67
%70 = tail call double @llvm.fmuladd.f64(double %21, double %68, double %69)
%71 = tail call double @pow(i32 %44, i32 1)
%72 = fdiv double %70, %71
br i1 %48, label %73, label %84
73: ; preds = %57
%74 = tail call double @pow(i32 %44, i32 1)
%75 = fdiv double %15, %74
%76 = fadd double %72, %75
%77 = fmul double %76, 5.000000e-01
%78 = fcmp ogt double %77, 1.000000e+02
%79 = fadd double %77, -2.731500e+02
%80 = select i1 %78, double %79, double %46
%81 = tail call double @leafai(double %1)
%82 = tail call double @f_c(double %1, double %3, double %2)
%83 = tail call double @z0_m(double %1, double %2)
br label %45
84: ; preds = %57
%85 = fmul double %10, 1.000000e-03
%86 = fptosi double %85 to i32
%87 = tail call double @pow(i32 %86, i32 0)
%88 = tail call double @llvm.fmuladd.f64(double %87, double -1.400000e-01, double 3.400000e-01)
%89 = fptosi double %88 to i32
%90 = tail call double @pow(i32 %89, i32 0)
%91 = fptosi double %72 to i32
%92 = tail call double @pow(i32 %91, i32 2)
%93 = fmul double %90, %92
%94 = tail call double @llvm.fmuladd.f64(double %72, double -2.361000e-02, double 2.501000e+00)
%95 = fptosi double %16 to i32
%96 = tail call double @pow(i32 %95, i32 0)
%97 = fptosi double %15 to i32
%98 = tail call double @pow(i32 %97, i32 2)
%99 = fmul double %96, %98
%100 = tail call double @llvm.fabs.f64(double %94)
%101 = tail call double @pow(i32 10, i32 -5)
%102 = fcmp olt double %100, %101
br i1 %102, label %103, label %105
103: ; preds = %84
%104 = tail call double @pow(i32 10, i32 -5)
br label %105
105: ; preds = %103, %84
%106 = phi double [ %104, %103 ], [ %94, %84 ]
%107 = fsub double 1.000000e+00, %13
%108 = fmul double %22, 5.678000e+00
%109 = fadd double %93, %99
%110 = fmul double %108, %109
%111 = fsub double %93, %99
%112 = fmul double %111, %110
%113 = tail call double @llvm.fmuladd.f64(double %107, double %12, double %112)
%114 = fmul double %17, 8.640000e-02
%115 = fmul double %114, %113
%116 = fdiv double %115, %106
ret double %116
}