// File: /workspace/github_c_makefile_star2_O3/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 0x3fc81
addq $0x20, %rsp
leaq 0xb7a03(%rip), %rsi     # 0xf32bc
leaq 0x1c(%rsp), %rdx
leaq 0x18(%rsp), %rcx
movq %r12, 0x8(%rsp)
movq %r12, %rdi
movq %r15, %r8
callq 0x1e736
cmpl $0x1, %eax
jne 0x3b913
leaq 0xb2b11(%rip), %rsi     # 0xee3f0
leaq 0xb79e4(%rip), %rdx     # 0xf32ca
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb2735(%rip), %rsi     # 0xee034
leaq 0xbe1f6(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x8dd, %ecx            # imm = 0x8DD
jmp 0x3bd24
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 0x40548
addq $0x10, %rsp
cmpl $0x1, %eax
jne 0x3b990
leaq 0xb2a9c(%rip), %rsi     # 0xee3f0
leaq 0xbe1b7(%rip), %rdx     # 0xf9b12
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq 0x8a0(%rsp), %r14
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb26b8(%rip), %rsi     # 0xee034
leaq 0xbe179(%rip), %rdx     # 0xf9afc
movq %r14, %rdi
movl $0x8e8, %ecx            # imm = 0x8E8
jmp 0x3bd24
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 0x43def
addq $0x10, %rsp
cmpl $0x1, %eax
jne 0x3ba08
leaq 0xb2a1c(%rip), %rsi     # 0xee3f0
leaq 0xbe176(%rip), %rdx     # 0xf9b51
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb2640(%rip), %rsi     # 0xee034
leaq 0xbe101(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x8ef, %ecx            # imm = 0x8EF
jmp 0x3bd24
movq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x4e427
testl %eax, %eax
je 0x3ba5a
leaq 0xb29ca(%rip), %rsi     # 0xee3f0
leaq 0xbe16e(%rip), %rdx     # 0xf9b9b
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb25ee(%rip), %rsi     # 0xee034
leaq 0xbe0af(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x8f5, %ecx            # imm = 0x8F5
jmp 0x3bd24
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 0x4fd8d
addq $0x10, %rsp
testl %eax, %eax
je 0x3bac1
leaq 0xb2963(%rip), %rsi     # 0xee3f0
leaq 0xbe13c(%rip), %rdx     # 0xf9bd0
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb2587(%rip), %rsi     # 0xee034
leaq 0xbe048(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x8fc, %ecx            # imm = 0x8FC
jmp 0x3bd24
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
movq 0x870(%rsp), %rbx
movq %rbx, %rdx
movq %r15, %rcx
callq 0x50fd4
cmpl $0x1, %eax
jne 0x3bb1c
leaq 0xb2908(%rip), %rsi     # 0xee3f0
leaq 0xbe131(%rip), %rdx     # 0xf9c20
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb252c(%rip), %rsi     # 0xee034
leaq 0xbdfed(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x902, %ecx            # imm = 0x902
jmp 0x3bd24
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 0x57b66
addq $0x20, %rsp
testl %eax, %eax
je 0x3bb9b
leaq 0xb2889(%rip), %rsi     # 0xee3f0
leaq 0xbe0e8(%rip), %rdx     # 0xf9c56
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb24ad(%rip), %rsi     # 0xee034
leaq 0xbdf6e(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x908, %ecx            # imm = 0x908
jmp 0x3bd24
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
movq %r14, %rcx
movq 0x888(%rsp), %r8
movq %r15, %r9
callq 0x590a1
testl %eax, %eax
je 0x3bbfa
leaq 0xb282a(%rip), %rsi     # 0xee3f0
leaq 0xbe0d0(%rip), %rdx     # 0xf9c9d
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb244e(%rip), %rsi     # 0xee034
leaq 0xbdf0f(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x90e, %ecx            # imm = 0x90E
jmp 0x3bd24
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x890(%rsp), %rdx
movq %r15, %rcx
callq 0x59609
testl %eax, %eax
je 0x3bc53
leaq 0xb27d1(%rip), %rsi     # 0xee3f0
leaq 0xbe0b2(%rip), %rdx     # 0xf9cd8
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb23f5(%rip), %rsi     # 0xee034
leaq 0xbdeb6(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x914, %ecx            # imm = 0x914
jmp 0x3bd24
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
movq 0x28(%rsp), %r14
movq %r14, %rcx
movq %r15, %r8
callq 0x5a403
testl %eax, %eax
je 0x3bcac
leaq 0xb2775(%rip), %rsi     # 0xee3f0
leaq 0xbe08d(%rip), %rdx     # 0xf9d0f
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb2399(%rip), %rsi     # 0xee034
leaq 0xbde5a(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x91a, %ecx            # imm = 0x91A
jmp 0x3bd24
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 0x5afd2
addq $0x30, %rsp
testl %eax, %eax
je 0x3bd45
leaq 0xb26fb(%rip), %rsi     # 0xee3f0
leaq 0xbe04d(%rip), %rdx     # 0xf9d49
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0xb231f(%rip), %rsi     # 0xee034
leaq 0xbdde0(%rip), %rdx     # 0xf9afc
movq %r15, %rdi
movl $0x920, %ecx            # imm = 0x920
movq %rbx, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %eax
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x3bd33