// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/fourier.c
// Function: fourier_pks_at_z
int fourier_pks_at_z(
                     struct background * pba,
                     struct fourier * pfo,
                     enum linear_or_logarithmic mode,
                     enum pk_outputs pk_output,
                     double z,
                     double * out_pk,      // array out_pk[index_k]
                     double * out_pk_ic,   // array out_pk_ic[index_k * pfo->ic_ic_size + index_ic1_ic2]
                     double * out_pk_cb,   // array out_pk_cb[index_k]
                     double * out_pk_cb_ic // array out_pk_cb_ic[index_k * pfo->ic_ic_size + index_ic1_ic2]
                     ) {

  if (pfo->has_pk_cb == _TRUE_) {

    class_call(fourier_pk_at_z(pba,
                               pfo,
                               mode,
                               pk_output,
                               z,
                               pfo->index_pk_cb,
                               out_pk_cb,
                               out_pk_cb_ic
                               ),
               pfo->error_message,
               pfo->error_message);
  }

  if (pfo->has_pk_m == _TRUE_) {

    class_call(fourier_pk_at_z(pba,
                               pfo,
                               mode,
                               pk_output,
                               z,
                               pfo->index_pk_m,
                               out_pk,
                               out_pk_ic
                               ),
               pfo->error_message,
               pfo->error_message);
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x1048, %rsp           # imm = 0x1048
movq 0x1058(%rsp), %rax
movq 0x1050(%rsp), %rax
movq %rdi, 0x1038(%rsp)
movq %rsi, 0x1030(%rsp)
movl %edx, 0x102c(%rsp)
movl %ecx, 0x1028(%rsp)
movsd %xmm0, 0x1020(%rsp)
movq %r8, 0x1018(%rsp)
movq %r9, 0x1010(%rsp)
movq 0x1030(%rsp), %rax
movswl 0x52(%rax), %eax
cmpl $0x1, %eax
jne 0x125073
movq 0x1038(%rsp), %rdi
movq 0x1030(%rsp), %rsi
movl 0x102c(%rsp), %edx
movl 0x1028(%rsp), %ecx
movsd 0x1020(%rsp), %xmm0
movq 0x1030(%rsp), %rax
movl 0x58(%rax), %r8d
movq 0x1050(%rsp), %r9
movq 0x1058(%rsp), %rax
movq %rax, (%rsp)
callq 0x1236f0
cmpl $0x1, %eax
jne 0x125071
leaq 0x810(%rsp), %rdi
movq 0x1030(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xad3b6(%rip), %rsi     # 0x1d23d8
leaq 0xdad93(%rip), %rdx     # 0x1ffdbc
movb $0x0, %al
callq 0x5b9c0
movq 0x1030(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x810(%rsp), %r8
leaq 0xacfe6(%rip), %rsi     # 0x1d2034
leaq 0xdadc1(%rip), %rdx     # 0x1ffe16
movl $0x17f, %ecx            # imm = 0x17F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1044(%rsp)
jmp 0x12514a
jmp 0x125073
movq 0x1030(%rsp), %rax
movswl 0x50(%rax), %eax
cmpl $0x1, %eax
jne 0x12513f
movq 0x1038(%rsp), %rdi
movq 0x1030(%rsp), %rsi
movl 0x102c(%rsp), %edx
movl 0x1028(%rsp), %ecx
movsd 0x1020(%rsp), %xmm0
movq 0x1030(%rsp), %rax
movl 0x54(%rax), %r8d
movq 0x1018(%rsp), %r9
movq 0x1010(%rsp), %rax
movq %rax, (%rsp)
callq 0x1236f0
cmpl $0x1, %eax
jne 0x12513d
leaq 0x10(%rsp), %rdi
movq 0x1030(%rsp), %rcx
addq $0x192, %rcx            # imm = 0x192
leaq 0xad2e4(%rip), %rsi     # 0x1d23d8
leaq 0xdad2c(%rip), %rdx     # 0x1ffe27
movb $0x0, %al
callq 0x5b9c0
movq 0x1030(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x10(%rsp), %r8
leaq 0xacf17(%rip), %rsi     # 0x1d2034
leaq 0xdacf2(%rip), %rdx     # 0x1ffe16
movl $0x18e, %ecx            # imm = 0x18E
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1044(%rsp)
jmp 0x12514a
jmp 0x12513f
movl $0x0, 0x1044(%rsp)
movl 0x1044(%rsp), %eax
addq $0x1048, %rsp           # imm = 0x1048
retq
nopl (%rax)