// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_perturbation_source_spline
int transfer_perturbation_source_spline(
                                        struct perturbations * ppt,
                                        struct transfer * ptr,
                                        double *** sources,
                                        double *** sources_spline
                                        ) {
  int index_md;
  int index_ic;
  int index_tp;

  for (index_md = 0; index_md < ptr->md_size; index_md++) {

    class_alloc(sources_spline[index_md],
                ppt->ic_size[index_md]*ppt->tp_size[index_md]*sizeof(double*),
                ptr->error_message);

    for (index_ic = 0; index_ic < ppt->ic_size[index_md]; index_ic++) {

      for (index_tp = 0; index_tp < ppt->tp_size[index_md]; index_tp++) {

        class_alloc(sources_spline[index_md][index_ic * ppt->tp_size[index_md] + index_tp],
                    ppt->k_size[index_md]*ppt->tau_size*sizeof(double),
                    ptr->error_message);

        class_call(array_spline_table_columns2(ppt->k[index_md],
                                               ppt->k_size[index_md],
                                               sources[index_md][index_ic * ppt->tp_size[index_md] + index_tp],
                                               ppt->tau_size,
                                               sources_spline[index_md][index_ic * ppt->tp_size[index_md] + index_tp],
                                               _SPLINE_EST_DERIV_,
                                               ptr->error_message),
                   ptr->error_message,
                   ptr->error_message);

      }
    }
  }

  return _SUCCESS_;

}

// Assembly:
subq $0x1858, %rsp           # imm = 0x1858
movq %rdi, 0x1848(%rsp)
movq %rsi, 0x1840(%rsp)
movq %rdx, 0x1838(%rsp)
movq %rcx, 0x1830(%rsp)
movl $0x0, 0x182c(%rsp)
movl 0x182c(%rsp), %eax
movq 0x1840(%rsp), %rcx
cmpl 0x8a4(%rcx), %eax
jge 0x132cca
movq 0x1848(%rsp), %rax
movq 0x870(%rax), %rax
movslq 0x182c(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1848(%rsp), %rcx
movq 0x998(%rcx), %rcx
movslq 0x182c(%rsp), %rdx
imull (%rcx,%rdx,4), %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rdx
movq 0x1830(%rsp), %rax
movslq 0x182c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x1830(%rsp), %rax
movslq 0x182c(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x132967
movq 0x1848(%rsp), %rax
movq 0x870(%rax), %rax
movslq 0x182c(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1848(%rsp), %rcx
movq 0x998(%rcx), %rcx
movslq 0x182c(%rsp), %rdx
imull (%rcx,%rdx,4), %eax
cltq
shlq $0x3, %rax
movl %eax, 0x1820(%rsp)
leaq 0x1020(%rsp), %rdi
movl 0x1820(%rsp), %ecx
leaq 0x9f6ec(%rip), %rsi     # 0x1d2004
leaq 0xd06b7(%rip), %rdx     # 0x202fd6
movb $0x0, %al
callq 0x5b9c0
movq 0x1840(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x1020(%rsp), %r8
leaq 0x9f6f0(%rip), %rsi     # 0x1d2034
leaq 0xd06a4(%rip), %rdx     # 0x202fef
movl $0x2e5, %ecx            # imm = 0x2E5
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1854(%rsp)
jmp 0x132cd5
movl $0x0, 0x1828(%rsp)
movl 0x1828(%rsp), %eax
movq 0x1848(%rsp), %rcx
movq 0x870(%rcx), %rcx
movslq 0x182c(%rsp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x132cb2
movl $0x0, 0x1824(%rsp)
movl 0x1824(%rsp), %eax
movq 0x1848(%rsp), %rcx
movq 0x998(%rcx), %rcx
movslq 0x182c(%rsp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x132c9a
movq 0x1848(%rsp), %rax
movq 0x9c8(%rax), %rax
movslq 0x182c(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1848(%rsp), %rcx
imull 0x9f8(%rcx), %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rdx
movq 0x1830(%rsp), %rax
movslq 0x182c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x1828(%rsp), %ecx
movq 0x1848(%rsp), %rsi
movq 0x998(%rsi), %rsi
movslq 0x182c(%rsp), %rdi
imull (%rsi,%rdi,4), %ecx
addl 0x1824(%rsp), %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x1830(%rsp), %rax
movslq 0x182c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x1828(%rsp), %ecx
movq 0x1848(%rsp), %rdx
movq 0x998(%rdx), %rdx
movslq 0x182c(%rsp), %rsi
imull (%rdx,%rsi,4), %ecx
addl 0x1824(%rsp), %ecx
movslq %ecx, %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x132b2d
movq 0x1848(%rsp), %rax
movq 0x9c8(%rax), %rax
movslq 0x182c(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1848(%rsp), %rcx
imull 0x9f8(%rcx), %eax
cltq
shlq $0x3, %rax
movl %eax, 0x101c(%rsp)
leaq 0x810(%rsp), %rdi
movl 0x101c(%rsp), %ecx
leaq 0x9f526(%rip), %rsi     # 0x1d2004
leaq 0xd052e(%rip), %rdx     # 0x203013
movb $0x0, %al
callq 0x5b9c0
movq 0x1840(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x810(%rsp), %r8
leaq 0x9f52a(%rip), %rsi     # 0x1d2034
leaq 0xd04de(%rip), %rdx     # 0x202fef
movl $0x2ed, %ecx            # imm = 0x2ED
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1854(%rsp)
jmp 0x132cd5
movq 0x1848(%rsp), %rax
movq 0x9d0(%rax), %rax
movslq 0x182c(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x1848(%rsp), %rax
movq 0x9c8(%rax), %rax
movslq 0x182c(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq 0x1838(%rsp), %rax
movslq 0x182c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x1828(%rsp), %ecx
movq 0x1848(%rsp), %rdx
movq 0x998(%rdx), %rdx
movslq 0x182c(%rsp), %r8
imull (%rdx,%r8,4), %ecx
addl 0x1824(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq 0x1848(%rsp), %rax
movl 0x9f8(%rax), %ecx
movq 0x1830(%rsp), %rax
movslq 0x182c(%rsp), %r8
movq (%rax,%r8,8), %rax
movl 0x1828(%rsp), %r8d
movq 0x1848(%rsp), %r9
movq 0x998(%r9), %r9
movslq 0x182c(%rsp), %r10
imull (%r9,%r10,4), %r8d
addl 0x1824(%rsp), %r8d
movslq %r8d, %r8
movq (%rax,%r8,8), %r8
movq 0x1840(%rsp), %rax
addq $0x96a, %rax            # imm = 0x96A
movl $0x1, %r9d
movq %rax, (%rsp)
callq 0x20820
cmpl $0x1, %eax
jne 0x132c82
leaq 0x10(%rsp), %rdi
movq 0x1840(%rsp), %rcx
addq $0x96a, %rcx            # imm = 0x96A
leaq 0x9f79f(%rip), %rsi     # 0x1d23d8
leaq 0xd041a(%rip), %rdx     # 0x20305a
movb $0x0, %al
callq 0x5b9c0
movq 0x1840(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x10(%rsp), %r8
leaq 0x9f3d2(%rip), %rsi     # 0x1d2034
leaq 0xd0386(%rip), %rdx     # 0x202fef
movl $0x2f7, %ecx            # imm = 0x2F7
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1854(%rsp)
jmp 0x132cd5
jmp 0x132c84
movl 0x1824(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1824(%rsp)
jmp 0x1329a4
jmp 0x132c9c
movl 0x1828(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1828(%rsp)
jmp 0x132972
jmp 0x132cb4
movl 0x182c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x182c(%rsp)
jmp 0x132832
movl $0x0, 0x1854(%rsp)
movl 0x1854(%rsp), %eax
addq $0x1858, %rsp           # imm = 0x1858
retq
nopw %cs:(%rax,%rax)