// File: /workspace/github_cpp_makefile_star2_O3/j-faria[P]kima/src/RVmodel.cpp
// Function: RVmodel::save_setup()
void RVmodel::save_setup() {
    auto data = Data::get_instance();
	std::fstream fout("kima_model_setup.txt", std::ios::out);
    fout << std::boolalpha;

    time_t rawtime;
    time (&rawtime);
    fout << ";" << ctime(&rawtime) << endl;

    fout << "[kima]" << endl;

    fout << "GP: " << GP << endl;
    fout << "GP_kernel: " << kernel << endl;
    fout << "MA: " << MA << endl;
    fout << "hyperpriors: " << hyperpriors << endl;
    fout << "trend: " << trend << endl;
    fout << "degree: " << degree << endl;
    fout << "multi_instrument: " << multi_instrument << endl;
    fout << "known_object: " << known_object << endl;
    fout << "n_known_object: " << n_known_object << endl;
    fout << "studentt: " << studentt << endl;
    fout << "indicator_correlations: " << data.indicator_correlations << endl;
    fout << "indicators: ";
    for (auto f: data.indicator_names){
        fout << f;
        (f != data.indicator_names.back()) ? fout << ", " : fout << " ";
    }
    fout << endl;

    fout << endl;

    fout << "file: " << data.datafile << endl;
    fout << "units: " << data.dataunits << endl;
    fout << "skip: " << data.dataskip << endl;
    fout << "multi: " << data.datamulti << endl;

    fout << "files: ";
    for (auto f: data.datafiles)
        fout << f << ",";
    fout << endl;

    fout << "M0_epoch: " << data.M0_epoch << endl;

    fout << endl;

    fout << "[priors.general]" << endl;
    fout << "Cprior: " << *Cprior << endl;
    fout << "Jprior: " << *Jprior << endl;
    if (trend){
        if (degree >= 1) fout << "slope_prior: " << *slope_prior << endl;
        if (degree >= 2) fout << "quadr_prior: " << *quadr_prior << endl;
        if (degree == 3) fout << "cubic_prior: " << *cubic_prior << endl;
    }
    if (multi_instrument)
        fout << "offsets_prior: " << *offsets_prior << endl;

    if (data.indicator_correlations)
        fout << "betaprior: " << *betaprior << endl;

    if (studentt)
        fout << "nu_prior: " << *nu_prior << endl;

    if (GP){
        fout << endl << "[priors.GP]" << endl;
        fout << "log_eta1_prior: " << *log_eta1_prior << endl;
        // fout << "log_eta2_prior: " << *log_eta2_prior << endl;
        fout << "eta2_prior: " << *eta2_prior << endl;
        fout << "eta3_prior: " << *eta3_prior << endl;
        if (kernel == standard)
            fout << "log_eta4_prior: " << *log_eta4_prior << endl;
    }


    if (planets.get_max_num_components()>0){
        auto conditional = planets.get_conditional_prior();

        if (hyperpriors){
            fout << endl << "[prior.hyperpriors]" << endl;
            fout << "log_muP_prior: " << *conditional->log_muP_prior << endl;
            fout << "wP_prior: " << *conditional->wP_prior << endl;
            fout << "log_muK_prior: " << *conditional->log_muK_prior << endl;
        }

        fout << endl << "[priors.planets]" << endl;
        fout << "Pprior: " << *conditional->Pprior << endl;
        fout << "Kprior: " << *conditional->Kprior << endl;
        fout << "eprior: " << *conditional->eprior << endl;
        fout << "phiprior: " << *conditional->phiprior << endl;
        fout << "wprior: " << *conditional->wprior << endl;
    }

    if (known_object) {
        fout << endl << "[priors.known_object]" << endl;
        for(int i=0; i<n_known_object; i++){
            fout << "Pprior_" << i << ": " << *KO_Pprior[i] << endl;
            fout << "Kprior_" << i << ": " << *KO_Kprior[i] << endl;
            fout << "eprior_" << i << ": " << *KO_eprior[i] << endl;
            fout << "phiprior_" << i << ": " << *KO_phiprior[i] << endl;
            fout << "wprior_" << i << ": " << *KO_wprior[i] << endl;
        }
    }

    fout << endl;
	fout.close();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x368, %rsp            # imm = 0x368
movq %rdi, %rbx
leaq 0x428fb(%rip), %rsi     # 0x50400
leaq 0x50(%rsp), %rdi
callq 0x15552
leaq 0x30063(%rip), %rsi     # 0x3db79
leaq 0x158(%rsp), %rdi
movl $0x10, %edx
callq 0x6550
leaq 0x168(%rsp), %r14
movq (%r14), %rax
movq -0x18(%rax), %rax
orl $0x1, 0x180(%rsp,%rax)
leaq 0x48(%rsp), %rdi
callq 0x6410
leaq 0x3003e(%rip), %rsi     # 0x3db8e
movl $0x1, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x48(%rsp), %rdi
callq 0x6170
testq %rax, %rax
je 0xdb87
movq %rax, %r15
movq %rax, %rdi
callq 0x61a0
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x64a0
jmp 0xdba6
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x188(%rsp,%rax), %esi
orl $0x1, %esi
callq 0x6690
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2ffb7(%rip), %rsi     # 0x3db90
movl $0x6, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2ff7e(%rip), %rsi     # 0x3db97
movl $0x4, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34caf(%rip), %rax     # 0x428dc
movb (%rax), %al
movb %al, 0xf(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2ff2d(%rip), %rsi     # 0x3db9c
movl $0xb, %edx
movq %r14, %rdi
callq 0x64a0
movl 0x1a8(%rbx), %esi
movq %r14, %rdi
callq 0x66e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2feed(%rip), %rsi     # 0x3dba8
movl $0x4, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34c0e(%rip), %rax     # 0x428dd
movzbl (%rax), %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fea2(%rip), %rsi     # 0x3dbad
movl $0xd, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34bbf(%rip), %rax     # 0x428de
movb (%rax), %al
movb %al, 0xa(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fe5a(%rip), %rsi     # 0x3dbbb
movl $0x7, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34b6a(%rip), %rax     # 0x428df
movb (%rax), %al
movb %al, 0xe(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fe0c(%rip), %rsi     # 0x3dbc3
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34b15(%rip), %rax     # 0x428e0
movl (%rax), %ebp
movq %r14, %rdi
movl %ebp, %esi
callq 0x66e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fdc4(%rip), %rsi     # 0x3dbcc
movl $0x12, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34ac8(%rip), %rax     # 0x428e4
movb (%rax), %al
movb %al, 0xd(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fd83(%rip), %rsi     # 0x3dbe1
movl $0xe, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34a73(%rip), %rax     # 0x428e5
movb (%rax), %al
movb %al, 0xb(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fd2b(%rip), %rsi     # 0x3dbdf
movl $0x10, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x34a20(%rip), %rax     # 0x428e8
movl (%rax), %esi
movq %r14, %rdi
movq %rsi, 0x30(%rsp)
callq 0x66e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fce8(%rip), %rsi     # 0x3dbf0
movl $0xa, %edx
movq %r14, %rdi
callq 0x64a0
leaq 0x349d0(%rip), %rax     # 0x428ec
movb (%rax), %al
movb %al, 0xc(%rsp)
movzbl %al, %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fc9d(%rip), %rsi     # 0x3dbfb
movl $0x18, %edx
movq %r14, %rdi
callq 0x64a0
movzbl 0xc8(%rsp), %esi
movq %r14, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f64d(%rip), %rsi     # 0x3d5f9
movl $0xc, %edx
movq %r14, %rdi
callq 0x64a0
movl %ebp, 0x3c(%rsp)
movq %rbx, 0x40(%rsp)
movq 0xd0(%rsp), %rbp
movq 0xd8(%rsp), %rbx
cmpq %rbx, %rbp
je 0xe094
leaq 0x20(%rsp), %r13
leaq 0x10(%rsp), %r15
leaq 0x375bf(%rip), %r14     # 0x455ab
movq %r13, 0x10(%rsp)
movq (%rbp), %rsi
movq 0x8(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xbf78
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x168(%rsp), %rdi
callq 0x64a0
movq 0xd8(%rsp), %rax
movq 0x18(%rsp), %rdx
movl $0x2, %r12d
cmpq -0x18(%rax), %rdx
jne 0xe05d
testq %rdx, %rdx
je 0xe04e
movq -0x20(%rax), %rsi
movq 0x10(%rsp), %rdi
callq 0x6470
movq %r14, %rsi
testl %eax, %eax
jne 0xe060
movl $0x1, %r12d
leaq 0x2f570(%rip), %rsi     # 0x3d5cb
jmp 0xe060
movq %r14, %rsi
leaq 0x168(%rsp), %rdi
movq %r12, %rdx
callq 0x64a0
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xe087
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6460
addq $0x20, %rbp
cmpq %rbx, %rbp
jne 0xdfec
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
leaq 0x168(%rsp), %rbx
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6430
movl 0x3c(%rsp), %ebp
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fb15(%rip), %rsi     # 0x3dc14
movl $0x6, %edx
movq %rbx, %rdi
callq 0x64a0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x64a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fac6(%rip), %rsi     # 0x3dc1b
movl $0x7, %edx
movq %rbx, %rdi
callq 0x64a0
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
movq %rbx, %rdi
callq 0x64a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fa78(%rip), %rsi     # 0x3dc23
movl $0x6, %edx
movq %rbx, %rdi
callq 0x64a0
movl 0x140(%rsp), %esi
movq %rbx, %rdi
callq 0x66e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2fa32(%rip), %rsi     # 0x3dc2a
movl $0x7, %edx
movq %rbx, %rdi
callq 0x64a0
movzbl 0x144(%rsp), %esi
movq %rbx, %rdi
callq 0x6670
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f9ec(%rip), %rsi     # 0x3dc32
movl $0x7, %edx
movq %rbx, %rdi
callq 0x64a0
movq 0x108(%rsp), %rbx
movq 0x110(%rsp), %r13
cmpq %r13, %rbx
je 0xe2d7
leaq 0x20(%rsp), %r14
leaq 0x10(%rsp), %r15
leaq 0x2f9c1(%rip), %r12     # 0x3dc3a
movq %r14, 0x10(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xbf78
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x168(%rsp), %rdi
callq 0x64a0
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x64a0
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0xe2ce
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6460
addq $0x20, %rbx
cmpq %r13, %rbx
jne 0xe279
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
leaq 0x168(%rsp), %r14
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movq 0x40(%rsp), %rbx
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f925(%rip), %rsi     # 0x3dc3c
movl $0xa, %edx
movq %r14, %rdi
callq 0x64a0
movsd 0x150(%rsp), %xmm0
movq %r14, %rdi
callq 0x6630
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f8b5(%rip), %rsi     # 0x3dc47
movl $0x10, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f886(%rip), %rsi     # 0x3dc58
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x3b8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f841(%rip), %rsi     # 0x3dc61
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x3c8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movb 0xe(%rsp), %cl
xorb $0x1, %cl
testl %ebp, %ebp
setle %al
orb %cl, %al
jne 0xe573
leaq 0x2f7e8(%rip), %rsi     # 0x3dc6a
movl $0xd, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x3d8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpl $0x2, %ebp
jb 0xe573
leaq 0x2f79f(%rip), %rsi     # 0x3dc78
movl $0xd, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x3e8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpl $0x3, %ebp
jne 0xe573
leaq 0x2f75a(%rip), %rsi     # 0x3dc86
movl $0xd, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x3f8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpb $0x0, 0xd(%rsp)
je 0xe5c8
leaq 0x2f713(%rip), %rsi     # 0x3dc94
movl $0xf, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x408(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpb $0x1, 0xc8(%rsp)
jne 0xe620
leaq 0x2f6cb(%rip), %rsi     # 0x3dca4
movl $0xb, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x418(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpb $0x0, 0xc(%rsp)
je 0xe675
leaq 0x2f682(%rip), %rsi     # 0x3dcb0
movl $0xa, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x500(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpb $0x0, 0xf(%rsp)
je 0xe82b
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq %rax, %r15
leaq 0x2f605(%rip), %rsi     # 0x3dcbb
movl $0xb, %edx
movq %rax, %rdi
callq 0x64a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f5d6(%rip), %rsi     # 0x3dcc7
movl $0x10, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x448(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f599(%rip), %rsi     # 0x3dcd8
movl $0xc, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x458(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f558(%rip), %rsi     # 0x3dce5
movl $0xc, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x468(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpl $0x0, 0x1a8(%rbx)
jne 0xe82b
leaq 0x2f50e(%rip), %rsi     # 0x3dcf2
movl $0x10, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x478(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpl $0x0, 0x10(%rbx)
jle 0xeb75
cmpb $0x0, 0xa(%rsp)
je 0xe994
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq %rax, %r15
leaq 0x2f48d(%rip), %rsi     # 0x3dd03
movl $0x13, %edx
movq %rax, %rdi
callq 0x64a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f466(%rip), %rsi     # 0x3dd17
movl $0xf, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x88(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f428(%rip), %rsi     # 0x3dd27
movl $0xa, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x98(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f3e5(%rip), %rsi     # 0x3dd32
movl $0xf, %edx
movq %r14, %rdi
callq 0x64a0
movq 0xa8(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq %rax, %r15
leaq 0x2f378(%rip), %rsi     # 0x3dd42
movl $0x10, %edx
movq %rax, %rdi
callq 0x64a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f34e(%rip), %rsi     # 0x3dd53
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x38(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f30c(%rip), %rsi     # 0x3dd5c
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x48(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f2ca(%rip), %rsi     # 0x3dd65
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x58(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f288(%rip), %rsi     # 0x3dd6e
movl $0xa, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x68(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x2f248(%rip), %rsi     # 0x3dd79
movl $0x8, %edx
movq %r14, %rdi
callq 0x64a0
movq 0x78(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x28(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpb $0x0, 0xb(%rsp)
je 0xee49
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movq %rax, %r15
leaq 0x2f1cc(%rip), %rsi     # 0x3dd82
movl $0x15, %edx
movq %rax, %rdi
callq 0x64a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
cmpl $0x0, 0x30(%rsp)
jle 0xee49
shlq $0x4, 0x30(%rsp)
xorl %ebp, %ebp
leaq 0x2efa6(%rip), %r13     # 0x3dbaa
xorl %r15d, %r15d
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2f182(%rip), %rsi     # 0x3dd98
callq 0x64a0
movq %r14, %rdi
movl %r15d, %esi
callq 0x66e0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x64a0
movq 0x488(%rbx), %rax
movq (%rax,%rbp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x28(%rax)
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2f11a(%rip), %rsi     # 0x3dda0
callq 0x64a0
movq %r14, %rdi
movl %r15d, %esi
callq 0x66e0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x64a0
movq 0x4a0(%rbx), %rax
movq (%rax,%rbp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x28(%rax)
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2f0b2(%rip), %rsi     # 0x3dda8
callq 0x64a0
movq %r14, %rdi
movl %r15d, %esi
callq 0x66e0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x64a0
movq 0x4b8(%rbx), %rax
movq (%rax,%rbp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x28(%rax)
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movl $0x9, %edx
movq %r14, %rdi
leaq 0x2f04a(%rip), %rsi     # 0x3ddb0
callq 0x64a0
movq %r14, %rdi
movl %r15d, %esi
callq 0x66e0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x64a0
movq 0x4d0(%rbx), %rax
movq (%rax,%rbp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x28(%rax)
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
movl $0x7, %edx
movq %r14, %rdi
leaq 0x2efe4(%rip), %rsi     # 0x3ddba
callq 0x64a0
movq %r14, %rdi
movl %r15d, %esi
callq 0x66e0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x64a0
movq 0x4e8(%rbx), %rax
movq (%rax,%rbp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x28(%rax)
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
incl %r15d
addq $0x10, %rbp
cmpq %rbp, 0x30(%rsp)
jne 0xec07
movq 0x168(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x6430
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6300
leaq 0x158(%rsp), %rdi
callq 0x6060
leaq 0x158(%rsp), %rdi
callq 0x60c0
leaq 0x50(%rsp), %rdi
callq 0xb8d2
addq $0x368, %rsp            # imm = 0x368
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xeef3
jmp 0xeee3
jmp 0xeee3
jmp 0xeee3
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
jne 0xeed2
jmp 0xeee6
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xeee6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x6460
jmp 0xeee6
jmp 0xeee3
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x60c0
leaq 0x50(%rsp), %rdi
callq 0xb8d2
movq %rbx, %rdi
callq 0x6710
nop