// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/input.c
// Function: input_read_parameters
int input_read_parameters(struct file_content * pfc,
                          struct precision * ppr,
                          struct background *pba,
                          struct thermodynamics *pth,
                          struct perturbations *ppt,
                          struct transfer *ptr,
                          struct primordial *ppm,
                          struct harmonic *phr,
                          struct fourier * pfo,
                          struct lensing *ple,
                          struct distortions *psd,
                          struct output *pop,
                          ErrorMsg errmsg){

  /** Summary: */

  /** Define local variables */
  int input_verbose=0;

  /** Set all input parameters to default values */
  class_call(input_default_params(pba,pth,ppt,ptr,ppm,phr,pfo,ple,psd,pop),
             errmsg,
             errmsg);

  /** Read verbose for input structure */
  class_read_int("input_verbose",input_verbose);

  /**
   * Read the general parameters of the
   *  background, thermodynamics, and perturbation structures
   * This function is exclusively for those parameters, NOT
   *  related to any physical species
   * */
  class_call(input_read_parameters_general(pfc,pba,pth,ppt,pfo,psd,
                                           errmsg),
             errmsg,
             errmsg);

  /** Read the parameters for each physical species (has to be called after the general read) */
  class_call(input_read_parameters_species(pfc,ppr,pba,pth,ppt,
                                           input_verbose,
                                           errmsg),
             errmsg,
             errmsg);

  /** Read parameters for exotic energy injection quantities */
  class_call(input_read_parameters_injection(pfc,ppr,pth,
                                             errmsg),
             errmsg,
             errmsg);

  /** Read parameters for nonlinear quantities */
  class_call(input_read_parameters_nonlinear(pfc,ppr,pba,pth,ppt,pfo,
                                             input_verbose,
                                             errmsg),
             errmsg,
             errmsg);

  /** Read parameters for primordial quantities */
  class_call(input_read_parameters_primordial(pfc,ppt,ppm,
                                              errmsg),
             errmsg,
             errmsg);

  /** Read parameters for spectra quantities */
  class_call(input_read_parameters_spectra(pfc,ppr,pba,ppm,ppt,ptr,phr,pop,
                                           errmsg),
             errmsg,
             errmsg);

  /** Read parameters for lensing quantities */
  class_call(input_read_parameters_lensing(pfc,ppr,ppt,ptr,ple,
                                           errmsg),
             errmsg,
             errmsg);

  /** Read parameters for distortions quantities */
  class_call(input_read_parameters_distortions(pfc,ppr,psd,
                                               errmsg),
             errmsg,
             errmsg);

  /** Read obsolete parameters */
  class_call(input_read_parameters_additional(pfc,ppr,pba,pth,
                                              errmsg),
             errmsg,
             errmsg);

  /** Read parameters for output quantities */
  class_call(input_read_parameters_output(pfc,pba,pth,ppt,ptr,ppm,phr,pfo,ple,psd,pop,
                                          errmsg),
             errmsg,
             errmsg);

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x838, %rsp            # imm = 0x838
movq %r9, %rbx
movq %r8, %rbp
movq %rcx, %r14
movq %rdx, %r13
movq %rsi, 0x10(%rsp)
movq %rdi, %r12
movq 0x8a0(%rsp), %r15
movq 0x878(%rsp), %r9
movq 0x870(%rsp), %r8
movq %rdx, %rdi
movq %rcx, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
pushq 0x898(%rsp)
pushq 0x898(%rsp)
pushq 0x898(%rsp)
pushq 0x898(%rsp)
callq 0x3c77e
addq $0x20, %rsp
leaq 0xb1d46(%rip), %rsi     # 0xea184
leaq 0x1c(%rsp), %rdx
leaq 0x18(%rsp), %rcx
movq %r12, 0x8(%rsp)
movq %r12, %rdi
movq %r15, %r8
callq 0x1c5c4
cmpl $0x1, %eax
jne 0x38498
leaq 0xacf8c(%rip), %rsi     # 0xe53f0
leaq 0xb1d27(%rip), %rdx     # 0xea192
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xacbb0(%rip), %rsi     # 0xe5034
leaq 0xb8539(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x8dd, %ecx            # imm = 0x8DD
jmp 0x388a3
movq %rbx, 0x20(%rsp)
movq %r15, %rax
movl 0x18(%rsp), %r15d
movl 0x1c(%rsp), %ebx
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rbp, %rcx
movq 0x898(%rsp), %r9
pushq %rax
callq 0x3d053
popq %rcx
popq %rdx
cmpl $0x1, %eax
jne 0x38513
leaq 0xacf19(%rip), %rsi     # 0xe53f0
leaq 0xb84fc(%rip), %rdx     # 0xf09da
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq 0x8a0(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xacb35(%rip), %rsi     # 0xe5034
leaq 0xb84be(%rip), %rdx     # 0xf09c4
movq %r14, %rdi
movl $0x8e8, %ecx            # imm = 0x8E8
jmp 0x388a3
xorl %r9d, %r9d
cmpl $0x1, %r15d
cmovel %ebx, %r9d
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %r12
movq %r12, %rsi
movq %r13, %rdx
movq %r14, %rcx
movq %rbp, %r8
movq 0x8a8(%rsp), %r15
pushq %r15
callq 0x408fa
popq %rcx
popq %rdx
cmpl $0x1, %eax
jne 0x38589
leaq 0xace9b(%rip), %rsi     # 0xe53f0
leaq 0xb84bd(%rip), %rdx     # 0xf0a19
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xacabf(%rip), %rsi     # 0xe5034
leaq 0xb8448(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x8ef, %ecx            # imm = 0x8EF
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x4aa79
testl %eax, %eax
je 0x385db
leaq 0xace49(%rip), %rsi     # 0xe53f0
leaq 0xb84b5(%rip), %rdx     # 0xf0a63
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xaca6d(%rip), %rsi     # 0xe5034
leaq 0xb83f6(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x8f5, %ecx            # imm = 0x8F5
jmp 0x388a3
subq $0x10, %rsp
movq %r15, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbp, %r8
movq 0x890(%rsp), %r9
callq 0x4c372
popq %rcx
popq %rdx
testl %eax, %eax
je 0x38640
leaq 0xacde4(%rip), %rsi     # 0xe53f0
leaq 0xb8485(%rip), %rdx     # 0xf0a98
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xaca08(%rip), %rsi     # 0xe5034
leaq 0xb8391(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x8fc, %ecx            # imm = 0x8FC
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
movq 0x870(%rsp), %rbx
movq %rbx, %rdx
movq %r15, %rcx
callq 0x4d594
cmpl $0x1, %eax
jne 0x3869b
leaq 0xacd89(%rip), %rsi     # 0xe53f0
leaq 0xb847a(%rip), %rdx     # 0xf0ae8
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac9ad(%rip), %rsi     # 0xe5034
leaq 0xb8336(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x902, %ecx            # imm = 0x902
jmp 0x388a3
movq %r14, 0x28(%rsp)
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbx, %rcx
movq %rbp, %r8
movq 0x28(%rsp), %r9
movq %r9, %r14
pushq %r15
movq 0x8a8(%rsp), %r12
pushq %r12
movq 0x890(%rsp), %rbx
pushq %rbx
callq 0x540d5
addq $0x20, %rsp
testl %eax, %eax
je 0x3871a
leaq 0xacd0a(%rip), %rsi     # 0xe53f0
leaq 0xb8431(%rip), %rdx     # 0xf0b1e
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac92e(%rip), %rsi     # 0xe5034
leaq 0xb82b7(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x908, %ecx            # imm = 0x908
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
movq %r14, %rcx
movq 0x888(%rsp), %r8
movq %r15, %r9
callq 0x5545d
testl %eax, %eax
je 0x38779
leaq 0xaccab(%rip), %rsi     # 0xe53f0
leaq 0xb8419(%rip), %rdx     # 0xf0b65
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac8cf(%rip), %rsi     # 0xe5034
leaq 0xb8258(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x90e, %ecx            # imm = 0x90E
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x890(%rsp), %rdx
movq %r15, %rcx
callq 0x559b7
testl %eax, %eax
je 0x387d2
leaq 0xacc52(%rip), %rsi     # 0xe53f0
leaq 0xb83fb(%rip), %rdx     # 0xf0ba0
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac876(%rip), %rsi     # 0xe5034
leaq 0xb81ff(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x914, %ecx            # imm = 0x914
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
movq 0x28(%rsp), %r14
movq %r14, %rcx
movq %r15, %r8
callq 0x56789
testl %eax, %eax
je 0x3882b
leaq 0xacbf6(%rip), %rsi     # 0xe53f0
leaq 0xb83d6(%rip), %rdx     # 0xf0bd7
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac81a(%rip), %rsi     # 0xe5034
leaq 0xb81a3(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x91a, %ecx            # imm = 0x91A
jmp 0x388a3
movq 0x8(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rbp, %rcx
movq 0x20(%rsp), %r8
movq 0x870(%rsp), %r9
pushq %r15
pushq %r12
pushq 0x8a0(%rsp)
pushq 0x8a0(%rsp)
pushq 0x8a0(%rsp)
pushq %rbx
callq 0x57356
addq $0x30, %rsp
testl %eax, %eax
je 0x388c2
leaq 0xacb7c(%rip), %rsi     # 0xe53f0
leaq 0xb8396(%rip), %rdx     # 0xf0c11
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0xac7a0(%rip), %rsi     # 0xe5034
leaq 0xb8129(%rip), %rdx     # 0xf09c4
movq %r15, %rdi
movl $0x920, %ecx            # imm = 0x920
movq %rbx, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rax
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x388b0