// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/distortions.c
// Function: distortions_spline_br_data
int distortions_spline_br_data(struct distortions* psd){

  /** Allocate second derivatives */
  class_alloc(psd->ddf_g_exact,
              psd->br_exact_Nz*sizeof(double),
              psd->error_message);
  class_alloc(psd->ddf_y_exact,
              psd->br_exact_Nz*sizeof(double),
              psd->error_message);
  class_alloc(psd->ddf_mu_exact,
              psd->br_exact_Nz*sizeof(double),
              psd->error_message);
  class_alloc(psd->ddE_vec,
              psd->E_vec_size*psd->br_exact_Nz*sizeof(double),
              psd->error_message);

  /** Spline branching ratios */
  class_call(array_spline_table_columns(psd->br_exact_z,
                                        psd->br_exact_Nz,
                                        psd->f_g_exact,
                                        1,
                                        psd->ddf_g_exact,
                                        _SPLINE_EST_DERIV_,
                                        psd->error_message),
             psd->error_message,
             psd->error_message);
  class_call(array_spline_table_columns(psd->br_exact_z,
                                        psd->br_exact_Nz,
                                        psd->f_y_exact,
                                        1,
                                        psd->ddf_y_exact,
                                        _SPLINE_EST_DERIV_,
                                        psd->error_message),
             psd->error_message,
             psd->error_message);
  class_call(array_spline_table_columns(psd->br_exact_z,
                                        psd->br_exact_Nz,
                                        psd->f_mu_exact,
                                        1,
                                        psd->ddf_mu_exact,
                                        _SPLINE_EST_DERIV_,
                                        psd->error_message),
             psd->error_message,
             psd->error_message);
  class_call(array_spline_table_columns(psd->br_exact_z,
                                        psd->br_exact_Nz,
                                        psd->E_vec,
                                        psd->E_vec_size,
                                        psd->ddE_vec,
                                        _SPLINE_EST_DERIV_,
                                        psd->error_message),
             psd->error_message,
             psd->error_message);

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x810, %rsp            # imm = 0x810
movq %rdi, %rbx
movslq 0xc20(%rdi), %r15
leaq (,%r15,8), %r14
movq %r14, %rdi
callq 0x8490
movq %rax, 0xc30(%rbx)
testq %rax, %rax
je 0xc38bc
movq %rax, %r12
movq %r14, %rdi
callq 0x8490
movq %rax, 0xc40(%rbx)
testq %rax, %rax
je 0xc3902
movq %r14, %rdi
callq 0x8490
movq %rax, 0xc50(%rbx)
testq %rax, %rax
je 0xc3945
movslq 0xc68(%rbx), %r14
imulq %r15, %r14
leaq (,%r14,8), %rdi
callq 0x8490
movq %rax, 0xc60(%rbx)
testq %rax, %rax
je 0xc39a5
movq 0xc18(%rbx), %rdi
movq 0xc28(%rbx), %rdx
leaq 0x1602(%rbx), %r14
movq %r14, (%rsp)
pushq $0x1
popq %rbp
movl %r15d, %esi
movl %ebp, %ecx
movq %r12, %r8
movl %ebp, %r9d
callq 0x139d8
cmpl $0x1, %eax
jne 0xc39eb
leaq 0x21b68(%rip), %rsi     # 0xe53f0
leaq 0x5aeee(%rip), %rdx     # 0x11e77d
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x2178c(%rip), %rsi     # 0xe5034
leaq 0x5ae83(%rip), %rdx     # 0x11e732
movq %r14, %rdi
movl $0x5ed, %ecx            # imm = 0x5ED
jmp 0xc3abb
shll $0x3, %r15d
leaq 0x2173d(%rip), %rsi     # 0xe5004
leaq 0x5ae53(%rip), %rdx     # 0x11e721
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x1602, %rbx           # imm = 0x1602
leaq 0x21746(%rip), %rsi     # 0xe5034
leaq 0x5ae3d(%rip), %rdx     # 0x11e732
movq %rbx, %rdi
movl $0x5d9, %ecx            # imm = 0x5D9
jmp 0xc3986
shll $0x3, %r15d
leaq 0x216f7(%rip), %rsi     # 0xe5004
leaq 0x5ae39(%rip), %rdx     # 0x11e74d
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x1602, %rbx           # imm = 0x1602
leaq 0x21700(%rip), %rsi     # 0xe5034
leaq 0x5adf7(%rip), %rdx     # 0x11e732
movq %rbx, %rdi
movl $0x5dc, %ecx            # imm = 0x5DC
jmp 0xc3986
shll $0x3, %r15d
leaq 0x216b4(%rip), %rsi     # 0xe5004
leaq 0x5ae07(%rip), %rdx     # 0x11e75e
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x1602, %rbx           # imm = 0x1602
leaq 0x216bd(%rip), %rsi     # 0xe5034
leaq 0x5adb4(%rip), %rdx     # 0x11e732
movq %rbx, %rdi
movl $0x5df, %ecx            # imm = 0x5DF
movq %r14, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rbp
movl %ebp, %eax
addq $0x810, %rsp            # imm = 0x810
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
shll $0x3, %r14d
leaq 0x21654(%rip), %rsi     # 0xe5004
leaq 0x5adb9(%rip), %rdx     # 0x11e770
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x1602, %rbx           # imm = 0x1602
leaq 0x2165d(%rip), %rsi     # 0xe5034
leaq 0x5ad54(%rip), %rdx     # 0x11e732
movq %rbx, %rdi
movl $0x5e2, %ecx            # imm = 0x5E2
movq %r15, %r8
jmp 0xc3989
movq 0xc18(%rbx), %rdi
movl 0xc20(%rbx), %esi
movq 0xc38(%rbx), %rdx
movq 0xc40(%rbx), %r8
movq %r14, (%rsp)
pushq $0x1
popq %rbp
movl %ebp, %ecx
movl %ebp, %r9d
callq 0x139d8
cmpl $0x1, %eax
jne 0xc3a54
leaq 0x219cd(%rip), %rsi     # 0xe53f0
leaq 0x5adcd(%rip), %rdx     # 0x11e7f7
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x215f1(%rip), %rsi     # 0xe5034
leaq 0x5ace8(%rip), %rdx     # 0x11e732
movq %r14, %rdi
movl $0x5f6, %ecx            # imm = 0x5F6
jmp 0xc3abb
movq 0xc18(%rbx), %rdi
movl 0xc20(%rbx), %esi
movq 0xc48(%rbx), %rdx
movq 0xc50(%rbx), %r8
movq %r14, (%rsp)
pushq $0x1
popq %rbp
movl %ebp, %ecx
movl %ebp, %r9d
callq 0x139d8
cmpl $0x1, %eax
jne 0xc3aca
leaq 0x21964(%rip), %rsi     # 0xe53f0
leaq 0x5adde(%rip), %rdx     # 0x11e871
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x21588(%rip), %rsi     # 0xe5034
leaq 0x5ac7f(%rip), %rdx     # 0x11e732
movq %r14, %rdi
movl $0x5ff, %ecx            # imm = 0x5FF
movq %rbx, %r8
xorl %eax, %eax
callq 0x2e014
jmp 0xc3993
movq 0xc18(%rbx), %rdi
movl 0xc20(%rbx), %esi
movq 0xc58(%rbx), %rdx
movl 0xc68(%rbx), %ecx
movq 0xc60(%rbx), %r8
movq %r14, (%rsp)
pushq $0x1
popq %rbx
movl %ebx, %r9d
callq 0x139d8
xorl %ebp, %ebp
cmpl $0x1, %eax
jne 0xc3993
leaq 0x218e4(%rip), %rsi     # 0xe53f0
leaq 0x5adda(%rip), %rdx     # 0x11e8ed
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x21508(%rip), %rsi     # 0xe5034
leaq 0x5abff(%rip), %rdx     # 0x11e732
movq %r14, %rdi
movl $0x608, %ecx            # imm = 0x608
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
movl %ebx, %ebp
jmp 0xc3993