// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../external/HMcode/hmcode.c
// Function: hmcode_window_nfw
int hmcode_window_nfw(
                      struct fourier *pfo,
                      double k,
                      double rv,
                      double c,
                      double *window_nfw
                      ){

  double si1, si2, ci1, ci2, ks;
  double p1, p2, p3;

  ks = k*rv/c;

  class_call(sine_integral(ks*(1.+c),
                           &si2,
                           pfo->error_message),
             pfo->error_message,
             pfo->error_message);

  class_call(sine_integral(ks,
                           &si1,
                           pfo->error_message),
             pfo->error_message,
             pfo->error_message);

  class_call(cosine_integral(ks*(1.+c),
                             &ci2,
                             pfo->error_message),
             pfo->error_message,
             pfo->error_message);

  class_call(cosine_integral(ks,
                             &ci1,
                             pfo->error_message),
             pfo->error_message,
             pfo->error_message);

  p1=cos(ks)*(ci2-ci1);
  p2=sin(ks)*(si2-si1);
  p3=sin(ks*c)/(ks*(1.+c));

  *window_nfw=p1+p2-p3;
  *window_nfw=*window_nfw/(log(1.+c)-c/(1.+c));

  return _SUCCESS_;
}

// Assembly:
subq $0x2088, %rsp           # imm = 0x2088
movq %rdi, 0x2078(%rsp)
movsd %xmm0, 0x2070(%rsp)
movsd %xmm1, 0x2068(%rsp)
movsd %xmm2, 0x2060(%rsp)
movq %rsi, 0x2058(%rsp)
movsd 0x2070(%rsp), %xmm0
mulsd 0x2068(%rsp), %xmm0
divsd 0x2060(%rsp), %xmm0
movsd %xmm0, 0x2030(%rsp)
movsd 0x2030(%rsp), %xmm0
movsd 0x13211(%rip), %xmm1    # 0x1d2248
addsd 0x2060(%rsp), %xmm1
mulsd %xmm1, %xmm0
movq 0x2078(%rsp), %rsi
addq $0x192, %rsi            # imm = 0x192
leaq 0x2048(%rsp), %rdi
callq 0x5c3f0
cmpl $0x1, %eax
jne 0x1bf0d2
leaq 0x1810(%rsp), %rdi
movq 0x2078(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0x13355(%rip), %rsi     # 0x1d23d8
leaq 0x52942(%rip), %rdx     # 0x2119cc
movb $0x0, %al
callq 0x5b9c0
movq 0x2078(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x1810(%rsp), %r8
leaq 0x12f85(%rip), %rsi     # 0x1d2034
leaq 0x52949(%rip), %rdx     # 0x2119ff
movl $0x5f5, %ecx            # imm = 0x5F5
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x2084(%rsp)
jmp 0x1bf3d7
movsd 0x2030(%rsp), %xmm0
movq 0x2078(%rsp), %rsi
addq $0x192, %rsi            # imm = 0x192
leaq 0x2050(%rsp), %rdi
callq 0x5c3f0
cmpl $0x1, %eax
jne 0x1bf169
leaq 0x1010(%rsp), %rdi
movq 0x2078(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0x132be(%rip), %rsi     # 0x1d23d8
leaq 0x528f0(%rip), %rdx     # 0x211a11
movb $0x0, %al
callq 0x5b9c0
movq 0x2078(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x1010(%rsp), %r8
leaq 0x12eee(%rip), %rsi     # 0x1d2034
leaq 0x528b2(%rip), %rdx     # 0x2119ff
movl $0x5fb, %ecx            # imm = 0x5FB
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x2084(%rsp)
jmp 0x1bf3d7
movsd 0x2030(%rsp), %xmm0
movsd 0x130ce(%rip), %xmm1    # 0x1d2248
addsd 0x2060(%rsp), %xmm1
mulsd %xmm1, %xmm0
movq 0x2078(%rsp), %rsi
addq $0x192, %rsi            # imm = 0x192
leaq 0x2038(%rsp), %rdi
callq 0x5bdb0
cmpl $0x1, %eax
jne 0x1bf215
leaq 0x810(%rsp), %rdi
movq 0x2078(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0x13212(%rip), %rsi     # 0x1d23d8
leaq 0x52870(%rip), %rdx     # 0x211a3d
movb $0x0, %al
callq 0x5b9c0
movq 0x2078(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x810(%rsp), %r8
leaq 0x12e42(%rip), %rsi     # 0x1d2034
leaq 0x52806(%rip), %rdx     # 0x2119ff
movl $0x601, %ecx            # imm = 0x601
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x2084(%rsp)
jmp 0x1bf3d7
movsd 0x2030(%rsp), %xmm0
movq 0x2078(%rsp), %rsi
addq $0x192, %rsi            # imm = 0x192
leaq 0x2040(%rsp), %rdi
callq 0x5bdb0
cmpl $0x1, %eax
jne 0x1bf2a6
leaq 0x10(%rsp), %rdi
movq 0x2078(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0x1317e(%rip), %rsi     # 0x1d23d8
leaq 0x52811(%rip), %rdx     # 0x211a72
movb $0x0, %al
callq 0x5b9c0
movq 0x2078(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x10(%rsp), %r8
leaq 0x12db1(%rip), %rsi     # 0x1d2034
leaq 0x52775(%rip), %rdx     # 0x2119ff
movl $0x607, %ecx            # imm = 0x607
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x2084(%rsp)
jmp 0x1bf3d7
movsd 0x2030(%rsp), %xmm0
callq 0x86a0
movsd 0x2038(%rsp), %xmm1
subsd 0x2040(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x2028(%rsp)
movsd 0x2030(%rsp), %xmm0
callq 0x80a0
movsd 0x2048(%rsp), %xmm1
subsd 0x2050(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x2020(%rsp)
movsd 0x2030(%rsp), %xmm0
mulsd 0x2060(%rsp), %xmm0
callq 0x80a0
movsd 0x2030(%rsp), %xmm1
movsd 0x12f20(%rip), %xmm2    # 0x1d2248
addsd 0x2060(%rsp), %xmm2
mulsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x2018(%rsp)
movsd 0x2028(%rsp), %xmm0
addsd 0x2020(%rsp), %xmm0
subsd 0x2018(%rsp), %xmm0
movq 0x2058(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x2058(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x12ec5(%rip), %xmm0    # 0x1d2248
addsd 0x2060(%rsp), %xmm0
callq 0x82f0
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
movsd 0x2060(%rsp), %xmm2
movsd 0x12e9d(%rip), %xmm3    # 0x1d2248
addsd 0x2060(%rsp), %xmm3
divsd %xmm3, %xmm2
subsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movq 0x2058(%rsp), %rax
movsd %xmm0, (%rax)
movl $0x0, 0x2084(%rsp)
movl 0x2084(%rsp), %eax
addq $0x2088, %rsp           # imm = 0x2088
retq
nopw %cs:(%rax,%rax)