// File: /workspace/github_c_makefile_star2_O0/lesgourg[P]class_public/build/../source/background.c
// Function: background_init
int background_init(
                    struct precision * ppr,
                    struct background * pba
                    ) {

  /** Summary: */

  /** - write class version */
  if (pba->background_verbose > 0) {
    printf("Running CLASS version %s\n",_VERSION_);
    printf("Computing background\n");
  }

  /** - if shooting failed during input, catch the error here */
  class_test(pba->shooting_failed == _TRUE_,
             pba->error_message,
             "Shooting failed, try optimising input_get_guess(). Error message:\n\n%s",
             pba->shooting_error);

  /** - assign values to all indices in vectors of background quantities */
  class_call(background_indices(pba),
             pba->error_message,
             pba->error_message);

  /** - check that input parameters make sense and write additional information about them */
  class_call(background_checks(ppr,pba),
             pba->error_message,
             pba->error_message);

  /** - integrate the background over log(a), allocate and fill the background table */
  class_call(background_solve(ppr,pba),
             pba->error_message,
             pba->error_message);

  /** - find and store a few derived parameters at radiation-matter equality */
  class_call(background_find_equality(ppr,pba),
             pba->error_message,
             pba->error_message);

  /* - write a summary of the budget of the universe */
  class_call(background_output_budget(pba),
             pba->error_message,
             pba->error_message);

  pba->is_allocated = _TRUE_;

  return _SUCCESS_;

}

// Assembly:
subq $0x3818, %rsp           # imm = 0x3818
movq %rdi, 0x3808(%rsp)
movq %rsi, 0x3800(%rsp)
movq 0x3800(%rsp), %rax
movswl 0xb82(%rax), %eax
cmpl $0x0, %eax
jle 0x964ee
leaq 0x13a505(%rip), %rdi    # 0x1d09d7
leaq 0x124db9(%rip), %rsi    # 0x1bb292
movb $0x0, %al
callq 0x8030
leaq 0x13a50a(%rip), %rdi    # 0x1d09f1
movb $0x0, %al
callq 0x8030
movq 0x3800(%rsp), %rax
movswl 0x380(%rax), %eax
cmpl $0x1, %eax
jne 0x96591
leaq 0x3000(%rsp), %rdi
movq 0x3800(%rsp), %rdx
addq $0x382, %rdx            # imm = 0x382
leaq 0x13a4e3(%rip), %rsi    # 0x1d0a07
movb $0x0, %al
callq 0x5b9c0
leaq 0x2800(%rsp), %rdi
leaq 0x3000(%rsp), %rcx
leaq 0x120b40(%rip), %rsi    # 0x1b7082
leaq 0x13a504(%rip), %rdx    # 0x1d0a4d
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
leaq 0x2800(%rsp), %r8
leaq 0x120ac6(%rip), %rsi    # 0x1b7034
leaq 0x13a4f7(%rip), %rdx    # 0x1d0a6c
movl $0x336, %ecx            # imm = 0x336
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3800(%rsp), %rdi
callq 0x96850
cmpl $0x1, %eax
jne 0x96610
leaq 0x2000(%rsp), %rdi
movq 0x3800(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x120e17(%rip), %rsi    # 0x1b73d8
leaq 0x13a4b4(%rip), %rdx    # 0x1d0a7c
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
leaq 0x2000(%rsp), %r8
leaq 0x120a47(%rip), %rsi    # 0x1b7034
leaq 0x13a478(%rip), %rdx    # 0x1d0a6c
movl $0x33b, %ecx            # imm = 0x33B
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3808(%rsp), %rdi
movq 0x3800(%rsp), %rsi
callq 0x971d0
cmpl $0x1, %eax
jne 0x96697
leaq 0x1800(%rsp), %rdi
movq 0x3800(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x120d90(%rip), %rsi    # 0x1b73d8
leaq 0x13a445(%rip), %rdx    # 0x1d0a94
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
leaq 0x1800(%rsp), %r8
leaq 0x1209c0(%rip), %rsi    # 0x1b7034
leaq 0x13a3f1(%rip), %rdx    # 0x1d0a6c
movl $0x340, %ecx            # imm = 0x340
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3808(%rsp), %rdi
movq 0x3800(%rsp), %rsi
callq 0x97ae0
cmpl $0x1, %eax
jne 0x9671e
leaq 0x1000(%rsp), %rdi
movq 0x3800(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x120d09(%rip), %rsi    # 0x1b73d8
leaq 0x13a3d9(%rip), %rdx    # 0x1d0aaf
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
leaq 0x1000(%rsp), %r8
leaq 0x120939(%rip), %rsi    # 0x1b7034
leaq 0x13a36a(%rip), %rdx    # 0x1d0a6c
movl $0x345, %ecx            # imm = 0x345
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3808(%rsp), %rdi
movq 0x3800(%rsp), %rsi
callq 0x993d0
cmpl $0x1, %eax
jne 0x967a5
leaq 0x800(%rsp), %rdi
movq 0x3800(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x120c82(%rip), %rsi    # 0x1b73d8
leaq 0x13a36c(%rip), %rdx    # 0x1d0ac9
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
leaq 0x800(%rsp), %r8
leaq 0x1208b2(%rip), %rsi    # 0x1b7034
leaq 0x13a2e3(%rip), %rdx    # 0x1d0a6c
movl $0x34a, %ecx            # imm = 0x34A
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3800(%rsp), %rdi
callq 0x998a0
cmpl $0x1, %eax
jne 0x96817
movq %rsp, %rdi
movq 0x3800(%rsp), %rcx
addq $0xb84, %rcx            # imm = 0xB84
leaq 0x120c08(%rip), %rsi    # 0x1b73d8
leaq 0x13a314(%rip), %rdx    # 0x1d0aeb
movb $0x0, %al
callq 0x5b9c0
movq 0x3800(%rsp), %rdi
addq $0xb84, %rdi            # imm = 0xB84
movq %rsp, %r8
leaq 0x12083d(%rip), %rsi    # 0x1b7034
leaq 0x13a26e(%rip), %rdx    # 0x1d0a6c
movl $0x34f, %ecx            # imm = 0x34F
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3814(%rsp)
jmp 0x96833
movq 0x3800(%rsp), %rax
movw $0x1, 0x1384(%rax)
movl $0x0, 0x3814(%rsp)
movl 0x3814(%rsp), %eax
addq $0x3818, %rsp           # imm = 0x3818
retq
nopw %cs:(%rax,%rax)