// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/output.c
// Function: output_open_cl_file
int output_open_cl_file(
                        struct harmonic * phr,
                        struct output * pop,
                        FILE * * clfile,
                        FileName filename,
                        char * first_line,
                        int lmax
                        ) {
  /** Summary */

  int index_d1,index_d2;
  int colnum = 1;
  char tmp[60]; //A fixed number here is ok, since it should just correspond to the largest string which is printed to tmp.

  class_open(*clfile,filename,"w",pop->error_message);

  if (pop->write_header == _TRUE_) {

    /** - First we deal with the entries that are dependent of format type */

    if (pop->output_format == class_format) {
      fprintf(*clfile,"# dimensionless %s\n",first_line);
    }
    if (pop->output_format == camb_format) {
      fprintf(*clfile,"# %s (units: [microK]^2)\n",first_line);
    }

    fprintf(*clfile,"# for l=2 to %d, i.e. number of multipoles equal to %d\n",lmax,lmax-1);
    fprintf(*clfile,"#\n");

    if (pop->output_format == class_format) {
      fprintf(*clfile,"# -> if you prefer output in CAMB/HealPix/LensPix units/order, set 'format' to 'camb' in input file\n");
    }

    fprintf(*clfile,"# -> if you don't want to see such a header, set 'headers' to 'no' in input file\n");

    if (phr->has_pp == _TRUE_) {
      if (pop->output_format == class_format) {
        fprintf(*clfile,"# -> for CMB lensing (phi), these are C_l^phi-phi for the lensing potential.\n");
      }
      if (pop->output_format == camb_format) {
        fprintf(*clfile,"# -> for CMB lensing (d), these are C_l^dd for the deflection field.\n");
      }
    }

    if (phr->has_ll == _TRUE_) {
      fprintf(*clfile,"# -> for galaxy lensing (lens[i]), these are C_l^phi-phi for the lensing potential.\n");
    }

    if (phr->has_pp == _TRUE_ || phr->has_ll == _TRUE_) {
      fprintf(*clfile,"#    Remember the conversion factors:\n");
      fprintf(*clfile,"#    C_l^dd (deflection) = l(l+1) C_l^phi-phi\n");
      fprintf(*clfile,"#    C_l^gg (shear/convergence) = 1/4 (l(l+1))^2 C_l^phi-phi\n");
    }

    fprintf(*clfile,"#\n");

    if (0==1){
      fprintf(*clfile,"#");
      class_fprintf_columntitle(*clfile,"l",_TRUE_,colnum);
    }
    else{
      fprintf(*clfile,"# 1:l ");
      colnum++;
    }
    if (pop->output_format == class_format) {
      class_fprintf_columntitle(*clfile,"TT",phr->has_tt,colnum);
      class_fprintf_columntitle(*clfile,"EE",phr->has_ee,colnum);
      class_fprintf_columntitle(*clfile,"TE",phr->has_te,colnum);
      class_fprintf_columntitle(*clfile,"BB",phr->has_bb,colnum);
      class_fprintf_columntitle(*clfile,"phiphi",phr->has_pp,colnum);
      class_fprintf_columntitle(*clfile,"TPhi",phr->has_tp,colnum);
      class_fprintf_columntitle(*clfile,"Ephi",phr->has_ep,colnum);
    }
    else if (pop->output_format == camb_format) {
      class_fprintf_columntitle(*clfile,"TT",phr->has_tt,colnum);
      class_fprintf_columntitle(*clfile,"EE",phr->has_ee,colnum);
      class_fprintf_columntitle(*clfile,"BB",phr->has_bb,colnum);
      class_fprintf_columntitle(*clfile,"TE",phr->has_te,colnum);
      class_fprintf_columntitle(*clfile,"dd",phr->has_pp,colnum);
      class_fprintf_columntitle(*clfile,"dT",phr->has_tp,colnum);
      class_fprintf_columntitle(*clfile,"dE",phr->has_ep,colnum);
    }

    /** - Next deal with entries that are independent of format type */

    if (phr->has_dd == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        for (index_d2=index_d1; index_d2<=MIN(index_d1+phr->non_diag,phr->d_size-1); index_d2++){
          class_sprintf(tmp,"dens[%d]-dens[%d]",index_d1+1,index_d2+1);
          class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
        }
      }
    }
    if (phr->has_td == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        class_sprintf(tmp,"T-dens[%d]",index_d1+1);
        class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
      }
    }
    if (phr->has_pd == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        class_sprintf(tmp,"phi-dens[%d]",index_d1+1);
        class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
      }
    }
    if (phr->has_ll == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        for (index_d2=index_d1; index_d2<=MIN(index_d1+phr->non_diag,phr->d_size-1); index_d2++){
          class_sprintf(tmp,"lens[%d]-lens[%d]",index_d1+1,index_d2+1);
          class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
        }
      }
    }
    if (phr->has_tl == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        class_sprintf(tmp,"T-lens[%d]",index_d1+1);
        class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
      }
    }
    if (phr->has_dl == _TRUE_){
      for (index_d1=0; index_d1<phr->d_size; index_d1++){
        for (index_d2=MAX(index_d1-phr->non_diag,0); index_d2<=MIN(index_d1+phr->non_diag,phr->d_size-1); index_d2++) {
          class_sprintf(tmp,"dens[%d]-lens[%d]",index_d1+1,index_d2+1);
          class_fprintf_columntitle(*clfile,tmp,_TRUE_,colnum);
        }
      }
    }
    fprintf(*clfile,"\n");
  }

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x838, %rsp            # imm = 0x838
movl %r9d, %ebx
movq %r8, %r12
movq %rcx, %r14
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, 0x20(%rsp)
leaq 0x4afe(%rip), %rsi      # 0xe83e1
movq %rcx, %rdi
callq 0x8420
movq %r13, 0x18(%rsp)
movq %rax, (%r13)
testq %rax, %rax
je 0xe3961
xorl %ecx, %ecx
cmpw $0x1, 0x408(%r15)
jne 0xe4392
movl 0x40c(%r15), %ecx
testl %ecx, %ecx
jne 0xe3938
leaq 0x43e71(%rip), %rsi     # 0x12778d
movq %rax, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x8510
movl 0x40c(%r15), %ecx
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rsp), %r14
cmpl $0x1, %ecx
jne 0xe39b7
leaq 0x43e58(%rip), %rsi     # 0x1277a1
movq %rax, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x8510
movq 0x18(%rsp), %r13
movq (%r13), %rax
jmp 0xe39bc
leaq 0x4040(%rip), %rsi      # 0xe79a8
leaq 0x43e02(%rip), %rdx     # 0x127771
leaq 0x1d97e(%rip), %r8      # 0x1012f4
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x2e014
addq $0x420, %r15            # imm = 0x420
leaq 0x169e(%rip), %rsi      # 0xe5034
leaq 0x43ddc(%rip), %rdx     # 0x127779
movq %r15, %rdi
movl $0x673, %ecx            # imm = 0x673
movq %rbx, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rcx
jmp 0xe4392
movq 0x18(%rsp), %r13
leal -0x1(%rbx), %ecx
leaq 0x43df5(%rip), %rsi     # 0x1277bb
movq %rax, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0x8510
movq (%r13), %rcx
leaq 0x1d9c0(%rip), %rdi     # 0x10139d
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
cmpl $0x0, 0x40c(%r15)
jne 0xe3a08
movq (%r13), %rcx
leaq 0x43df6(%rip), %rdi     # 0x1277f3
pushq $0x64
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
movq (%r13), %rcx
leaq 0x43e45(%rip), %rdi     # 0x127858
pushq $0x51
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
cmpl $0x1, 0x40(%r14)
jne 0xe3a68
movl 0x40c(%r15), %eax
testl %eax, %eax
jne 0xe3a4d
movq (%r13), %rcx
leaq 0x43e6f(%rip), %rdi     # 0x1278aa
pushq $0x4d
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
movl 0x40c(%r15), %eax
cmpl $0x1, %eax
jne 0xe3a68
movq (%r13), %rcx
leaq 0x43e9b(%rip), %rdi     # 0x1278f8
pushq $0x45
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
cmpl $0x1, 0x58(%r14)
jne 0xe3a85
movq (%r13), %rcx
leaq 0x43ec4(%rip), %rdi     # 0x12793e
pushq $0x54
popq %rsi
pushq $0x1
popq %rdx
callq 0x8700
cmpl $0x1, 0x40(%r14)
je 0xe3a93
cmpl $0x1, 0x58(%r14)
jne 0xe3ad8
movq (%r13), %rcx
leaq 0x43ef5(%rip), %rdi     # 0x127993
pushq $0x26
popq %rsi
pushq $0x1
popq %rbx
movq %rbx, %rdx
callq 0x8700
movq (%r13), %rcx
leaq 0x43f03(%rip), %rdi     # 0x1279ba
pushq $0x2e
popq %rsi
movq %rbx, %rdx
callq 0x8700
movq (%r13), %rcx
leaq 0x43f1c(%rip), %rdi     # 0x1279e9
pushq $0x3d
popq %rsi
movq %rbx, %rdx
callq 0x8700
movq (%r13), %rcx
leaq 0x1d8ba(%rip), %rdi     # 0x10139d
pushq $0x2
popq %rsi
pushq $0x1
popq %rbx
movq %rbx, %rdx
callq 0x8700
movq (%r13), %rcx
leaq 0x43f2b(%rip), %rdi     # 0x127a27
pushq $0x6
popq %rsi
movq %rbx, %rdx
callq 0x8700
movl 0x40c(%r15), %eax
cmpl $0x1, %eax
je 0xe3b5c
testl %eax, %eax
jne 0xe3ba0
cmpl $0x1, 0x30(%r14)
jne 0xe3ba8
pushq $0x3
popq %rdx
movq (%r13), %rdi
leaq 0x43efa(%rip), %rax     # 0x127a2e
movq %rax, (%rsp)
leaq 0x43c1e(%rip), %rsi     # 0x12775d
leaq 0x43c16(%rip), %rcx     # 0x12775c
pushq $0x2
popq %r8
pushq $0x12
popq %r9
movq %rdx, 0x10(%rsp)
xorl %eax, %eax
callq 0x8510
jmp 0xe3bb0
cmpl $0x1, 0x30(%r14)
jne 0xe3d1e
movq (%r13), %rdi
leaq 0x43ebc(%rip), %rax     # 0x127a2e
movq %rax, (%rsp)
leaq 0x43be0(%rip), %rsi     # 0x12775d
leaq 0x43bd8(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x2
popq %r8
pushq $0x12
popq %r9
movq %rdx, 0x10(%rsp)
xorl %eax, %eax
callq 0x8510
jmp 0xe3d26
pushq $0x2
popq %rax
jmp 0xe3ead
pushq $0x2
popq %rax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x34(%r14)
jne 0xe3bf2
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x1b109(%rip), %rax     # 0xfecd4
movq %rax, (%rsp)
leaq 0x43b87(%rip), %rsi     # 0x12775d
leaq 0x43b7f(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x38(%r14)
jne 0xe3c34
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43e24(%rip), %rax     # 0x127a31
movq %rax, (%rsp)
leaq 0x43b45(%rip), %rsi     # 0x12775d
leaq 0x43b3d(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x3c(%r14)
jne 0xe3c76
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43de5(%rip), %rax     # 0x127a34
movq %rax, (%rsp)
leaq 0x43b03(%rip), %rsi     # 0x12775d
leaq 0x43afb(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x40(%r14)
jne 0xe3cb8
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43da6(%rip), %rax     # 0x127a37
movq %rax, (%rsp)
leaq 0x43ac1(%rip), %rsi     # 0x12775d
leaq 0x43ab9(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x44(%r14)
jne 0xe3cfa
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43d6b(%rip), %rax     # 0x127a3e
movq %rax, (%rsp)
leaq 0x43a7f(%rip), %rsi     # 0x12775d
leaq 0x43a77(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x48(%r14)
jne 0xe3eb2
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43d2a(%rip), %rax     # 0x127a43
jmp 0xe3e8b
pushq $0x2
popq %rax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x34(%r14)
jne 0xe3d68
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x1af93(%rip), %rax     # 0xfecd4
movq %rax, (%rsp)
leaq 0x43a11(%rip), %rsi     # 0x12775d
leaq 0x43a09(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x3c(%r14)
jne 0xe3daa
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43cb1(%rip), %rax     # 0x127a34
movq %rax, (%rsp)
leaq 0x439cf(%rip), %rsi     # 0x12775d
leaq 0x439c7(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x38(%r14)
jne 0xe3dec
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43c6c(%rip), %rax     # 0x127a31
movq %rax, (%rsp)
leaq 0x4398d(%rip), %rsi     # 0x12775d
leaq 0x43985(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x40(%r14)
jne 0xe3e2e
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x3c1b1(%rip), %rax     # 0x11ffb8
movq %rax, (%rsp)
leaq 0x4394b(%rip), %rsi     # 0x12775d
leaq 0x43943(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x44(%r14)
jne 0xe3e70
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43bff(%rip), %rax     # 0x127a48
movq %rax, (%rsp)
leaq 0x43909(%rip), %rsi     # 0x12775d
leaq 0x43901(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x48(%r14)
jne 0xe3eb2
movq (%r13), %rdi
movq 0x10(%rsp), %r8
leal 0x1(%r8), %ebx
leaq 0x43bc0(%rip), %rax     # 0x127a4b
movq %rax, (%rsp)
leaq 0x438c7(%rip), %rsi     # 0x12775d
leaq 0x438bf(%rip), %rcx     # 0x12775c
pushq $0x3
popq %rdx
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movl %ebx, %eax
movq %rax, 0x10(%rsp)
cmpl $0x1, 0x4c(%r14)
jne 0xe3fa7
movl 0x98(%r14), %eax
xorl %r15d, %r15d
pushq $0x1
popq %rcx
cmpl %eax, %r15d
jge 0xe3fa7
leal 0x1(%r15), %ebp
movl %ecx, 0x2c(%rsp)
movl %ecx, %ebx
leal -0x1(%rbx), %ecx
movl (%r14), %edx
addl %r15d, %edx
leal -0x1(%rax), %esi
cmpl %esi, %edx
cmovgel %esi, %edx
cmpl %edx, %ecx
jg 0xe3f99
xorl %edi, %edi
xorl %esi, %esi
leaq 0x43b4d(%rip), %r14     # 0x127a4e
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %r12
movq %r12, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
movq (%r13), %r14
movq %r12, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe3f45
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe3f4b
xorl %edx, %edx
movq 0x10(%rsp), %r8
leal 0x1(%r8), %r12d
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x437f6(%rip), %rsi     # 0x12775d
leaq 0x437ee(%rip), %rcx     # 0x12775c
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
movl 0x98(%r14), %eax
incl %ebx
movl %r12d, %ecx
movq %rcx, 0x10(%rsp)
movq 0x18(%rsp), %r13
jmp 0xe3edd
movl 0x2c(%rsp), %ecx
incl %ecx
movl %ebp, %r15d
jmp 0xe3eca
cmpl $0x1, 0x50(%r14)
jne 0xe404f
movq %r13, %r15
xorl %ebx, %ebx
leaq 0x43aa2(%rip), %r12     # 0x127a60
movq 0x10(%rsp), %rax
leal (%rax,%rbx), %r13d
cmpl 0x98(%r14), %ebx
jge 0xe4054
incl %ebx
xorl %edi, %edi
xorl %esi, %esi
movq %r12, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
movq (%r15), %r14
movq %rbp, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe4017
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe401d
xorl %edx, %edx
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x4372d(%rip), %rsi     # 0x12775d
leaq 0x43725(%rip), %rcx     # 0x12775c
movl %r13d, %r8d
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
jmp 0xe3fbe
movq 0x10(%rsp), %r13
cmpl $0x1, 0x54(%r14)
jne 0xe40f9
xorl %ebx, %ebx
leaq 0x43a03(%rip), %rbp     # 0x127a6b
leal (%rbx,%r13), %r15d
cmpl 0x98(%r14), %ebx
jge 0xe40fc
incl %ebx
xorl %edi, %edi
xorl %esi, %esi
movq %rbp, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
movq 0x18(%rsp), %rax
movq (%rax), %r14
movq %r12, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe40c1
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe40c7
xorl %edx, %edx
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x43683(%rip), %rsi     # 0x12775d
leaq 0x4367b(%rip), %rcx     # 0x12775c
movl %r15d, %r8d
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
jmp 0xe4068
movl %r13d, %r15d
cmpl $0x1, 0x58(%r14)
jne 0xe41ea
pushq $0x1
popq %rcx
movl 0x98(%r14), %eax
xorl %r12d, %r12d
cmpl %eax, %r12d
jge 0xe41ea
leal 0x1(%r12), %ebp
movl %ecx, 0x10(%rsp)
movl %ecx, %ebx
leal -0x1(%rbx), %ecx
movl (%r14), %edx
addl %r12d, %edx
leal -0x1(%rax), %esi
cmpl %esi, %edx
cmovgel %esi, %edx
cmpl %edx, %ecx
jg 0xe41dc
xorl %edi, %edi
xorl %esi, %esi
leaq 0x4392c(%rip), %r14     # 0x127a78
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %r13
movq %r13, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
movq 0x18(%rsp), %rax
movq (%rax), %r14
movq %r13, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe4194
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe419a
xorl %edx, %edx
leal 0x1(%r15), %r13d
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x435ac(%rip), %rsi     # 0x12775d
leaq 0x435a4(%rip), %rcx     # 0x12775c
movl %r15d, %r8d
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
movl 0x98(%r14), %eax
incl %ebx
movl %r13d, %r15d
jmp 0xe4128
movl 0x10(%rsp), %ecx
incl %ecx
movl %ebp, %r12d
jmp 0xe4114
cmpl $0x1, 0x5c(%r14)
jne 0xe428f
xorl %ebx, %ebx
leaq 0x4388c(%rip), %rbp     # 0x127a8a
leal (%r15,%rbx), %r13d
cmpl 0x98(%r14), %ebx
jge 0xe4292
incl %ebx
xorl %edi, %edi
xorl %esi, %esi
movq %rbp, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rdx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x8580
movq 0x18(%rsp), %rax
movq (%rax), %r14
movq %r12, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe4257
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe425d
xorl %edx, %edx
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x434ed(%rip), %rsi     # 0x12775d
leaq 0x434e5(%rip), %rcx     # 0x12775c
movl %r13d, %r8d
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
jmp 0xe41fe
movl %r15d, %r13d
cmpl $0x1, 0x60(%r14)
jne 0xe4380
movl 0x98(%r14), %eax
xorl %r12d, %r12d
cmpl %eax, %r12d
jge 0xe4380
movl (%r14), %ecx
movl %r12d, %ebx
subl %ecx, %ebx
testl %ebx, %ebx
movl $0x0, %edx
cmovlel %edx, %ebx
leal 0x1(%r12), %ebp
addl %r12d, %ecx
leal -0x1(%rax), %edx
cmpl %edx, %ecx
cmovgel %edx, %ecx
cmpl %ecx, %ebx
jg 0xe4378
incl %ebx
xorl %edi, %edi
xorl %esi, %esi
leaq 0x437ae(%rip), %r14     # 0x127a95
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
incl %eax
movslq %eax, %rsi
leaq 0x30(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x8580
movq 0x18(%rsp), %rax
movq (%rax), %r14
movq %r15, %rdi
callq 0x8190
pushq $0x15
popq %rdx
subl %eax, %edx
cmpl $0x3, %edx
jl 0xe432f
pushq $0x3
popq %rdx
testl %edx, %edx
jg 0xe4335
xorl %edx, %edx
leal 0x1(%r13), %r15d
leaq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x43411(%rip), %rsi     # 0x12775d
leaq 0x43409(%rip), %rcx     # 0x12775c
movl %r13d, %r8d
pushq $0x12
popq %r9
xorl %eax, %eax
callq 0x8510
movq 0x20(%rsp), %r14
movl (%r14), %ecx
movl 0x98(%r14), %eax
movl %r15d, %r13d
jmp 0xe42c7
movl %ebp, %r12d
jmp 0xe42a7
movq 0x18(%rsp), %rax
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x8460
xorl %ecx, %ecx
movl %ecx, %eax
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq