// File: 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
movq %rsp, %rbp
subq $0x720, %rsp            # imm = 0x720
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x3c0(%rbp)
callq 0xab10
movq %rax, %rsi
leaq -0x110(%rbp), %rdi
callq 0x269d0
leaq 0x9a5a8(%rip), %rsi     # 0xb7b2d
leaq -0x320(%rbp), %rdi
movl $0x10, %edx
callq 0x6680
jmp 0x1d598
leaq -0x310(%rbp), %rdi
leaq 0xe1da(%rip), %rsi      # 0x2b780
callq 0x6170
jmp 0x1d5ad
leaq -0x338(%rbp), %rdi
callq 0x64b0
leaq -0x310(%rbp), %rdi
leaq 0x9a57b(%rip), %rsi     # 0xb7b42
callq 0x64f0
movq %rax, -0x3c8(%rbp)
jmp 0x1d5d5
leaq -0x338(%rbp), %rdi
callq 0x61c0
movq -0x3c8(%rbp), %rdi
movq %rax, %rsi
callq 0x64f0
movq %rax, -0x3d0(%rbp)
jmp 0x1d5f9
movq -0x3d0(%rbp), %rdi
movq 0xfc911(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d60e
leaq -0x310(%rbp), %rdi
leaq 0x9a528(%rip), %rsi     # 0xb7b44
callq 0x64f0
movq %rax, -0x3d8(%rbp)
jmp 0x1d62a
movq -0x3d8(%rbp), %rdi
movq 0xfc8e0(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d63f
leaq -0x310(%rbp), %rdi
leaq 0x9a4fe(%rip), %rsi     # 0xb7b4b
callq 0x64f0
movq %rax, -0x3e0(%rbp)
jmp 0x1d65b
movq -0x3e0(%rbp), %rdi
leaq 0xa8337(%rip), %rax     # 0xc59a0
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x3e8(%rbp)
jmp 0x1d67d
movq -0x3e8(%rbp), %rdi
movq 0xfc88d(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d692
leaq -0x310(%rbp), %rdi
leaq 0x9a4b0(%rip), %rsi     # 0xb7b50
callq 0x64f0
movq %rax, -0x3f0(%rbp)
jmp 0x1d6ae
movq -0x3f0(%rbp), %rdi
movq -0x3c0(%rbp), %rax
movl 0x1a8(%rax), %esi
callq 0x6810
movq %rax, -0x3f8(%rbp)
jmp 0x1d6d0
movq -0x3f8(%rbp), %rdi
movq 0xfc83a(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d6e5
leaq -0x310(%rbp), %rdi
leaq 0x9a469(%rip), %rsi     # 0xb7b5c
callq 0x64f0
movq %rax, -0x400(%rbp)
jmp 0x1d701
movq -0x400(%rbp), %rdi
leaq 0xa8292(%rip), %rax     # 0xc59a1
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x408(%rbp)
jmp 0x1d723
movq -0x408(%rbp), %rdi
movq 0xfc7e7(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d738
leaq -0x310(%rbp), %rdi
leaq 0x9a41b(%rip), %rsi     # 0xb7b61
callq 0x64f0
movq %rax, -0x410(%rbp)
jmp 0x1d754
movq -0x410(%rbp), %rdi
leaq 0xa8240(%rip), %rax     # 0xc59a2
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x418(%rbp)
jmp 0x1d776
movq -0x418(%rbp), %rdi
movq 0xfc794(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d78b
leaq -0x310(%rbp), %rdi
leaq 0x9a3d6(%rip), %rsi     # 0xb7b6f
callq 0x64f0
movq %rax, -0x420(%rbp)
jmp 0x1d7a7
movq -0x420(%rbp), %rdi
leaq 0xa81ee(%rip), %rax     # 0xc59a3
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x428(%rbp)
jmp 0x1d7c9
movq -0x428(%rbp), %rdi
movq 0xfc741(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d7de
leaq -0x310(%rbp), %rdi
leaq 0x9a38b(%rip), %rsi     # 0xb7b77
callq 0x64f0
movq %rax, -0x430(%rbp)
jmp 0x1d7fa
movq -0x430(%rbp), %rdi
leaq 0xa819c(%rip), %rax     # 0xc59a4
movl (%rax), %esi
callq 0x6810
movq %rax, -0x438(%rbp)
jmp 0x1d818
movq -0x438(%rbp), %rdi
movq 0xfc6f2(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d82d
leaq -0x310(%rbp), %rdi
leaq 0x9a345(%rip), %rsi     # 0xb7b80
callq 0x64f0
movq %rax, -0x440(%rbp)
jmp 0x1d849
movq -0x440(%rbp), %rdi
leaq 0xa8151(%rip), %rax     # 0xc59a8
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x448(%rbp)
jmp 0x1d86b
movq -0x448(%rbp), %rdi
movq 0xfc69f(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d880
leaq -0x310(%rbp), %rdi
leaq 0x9a307(%rip), %rsi     # 0xb7b95
callq 0x64f0
movq %rax, -0x450(%rbp)
jmp 0x1d89c
movq -0x450(%rbp), %rdi
leaq 0xa80ff(%rip), %rax     # 0xc59a9
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x458(%rbp)
jmp 0x1d8be
movq -0x458(%rbp), %rdi
movq 0xfc64c(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d8d3
leaq -0x310(%rbp), %rdi
leaq 0x9a2b2(%rip), %rsi     # 0xb7b93
callq 0x64f0
movq %rax, -0x460(%rbp)
jmp 0x1d8ef
movq -0x460(%rbp), %rdi
leaq 0xa80af(%rip), %rax     # 0xc59ac
movl (%rax), %esi
callq 0x6810
movq %rax, -0x468(%rbp)
jmp 0x1d90d
movq -0x468(%rbp), %rdi
movq 0xfc5fd(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d922
leaq -0x310(%rbp), %rdi
leaq 0x9a274(%rip), %rsi     # 0xb7ba4
callq 0x64f0
movq %rax, -0x470(%rbp)
jmp 0x1d93e
movq -0x470(%rbp), %rdi
leaq 0xa8064(%rip), %rax     # 0xc59b0
movzbl (%rax), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x478(%rbp)
jmp 0x1d960
movq -0x478(%rbp), %rdi
movq 0xfc5aa(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d975
leaq -0x310(%rbp), %rdi
leaq 0x9a22c(%rip), %rsi     # 0xb7baf
callq 0x64f0
movq %rax, -0x480(%rbp)
jmp 0x1d991
movq -0x480(%rbp), %rdi
movzbl -0x98(%rbp), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x488(%rbp)
jmp 0x1d9b0
movq -0x488(%rbp), %rdi
movq 0xfc55a(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1d9c5
leaq -0x310(%rbp), %rdi
leaq 0x99c61(%rip), %rsi     # 0xb7634
callq 0x64f0
jmp 0x1d9da
leaq -0x110(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x340(%rbp)
movq -0x340(%rbp), %rdi
callq 0x15be0
movq %rax, -0x348(%rbp)
movq -0x340(%rbp), %rdi
callq 0x15c10
movq %rax, -0x350(%rbp)
leaq -0x348(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x162c0
testb $0x1, %al
jne 0x1da30
jmp 0x1db26
leaq -0x348(%rbp), %rdi
callq 0x16300
movq %rax, %rsi
leaq -0x370(%rbp), %rdi
callq 0x6200
jmp 0x1da4d
leaq -0x310(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x6490
jmp 0x1da62
leaq -0x110(%rbp), %rdi
addq $0x80, %rdi
callq 0x163b0
movq %rax, %rsi
leaq -0x370(%rbp), %rdi
callq 0x15fa0
testb $0x1, %al
jne 0x1da8a
jmp 0x1daa1
leaq -0x310(%rbp), %rdi
leaq 0xae5ac(%rip), %rsi     # 0xcc044
callq 0x64f0
jmp 0x1da9f
jmp 0x1dab8
leaq -0x310(%rbp), %rdi
leaq 0x99b57(%rip), %rsi     # 0xb7606
callq 0x64f0
jmp 0x1dab6
jmp 0x1dab8
leaq -0x370(%rbp), %rdi
callq 0x6948
leaq -0x348(%rbp), %rdi
callq 0x16390
jmp 0x1da14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x328(%rbp)
movl %eax, -0x32c(%rbp)
jmp 0x1eb12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x328(%rbp)
movl %eax, -0x32c(%rbp)
jmp 0x1eb06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x328(%rbp)
movl %eax, -0x32c(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x6948
jmp 0x1eb06
leaq -0x310(%rbp), %rdi
movq 0xfc3e4(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1db3b
leaq -0x310(%rbp), %rdi
movq 0xfc3cf(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1db50
leaq -0x310(%rbp), %rdi
leaq 0x9a06a(%rip), %rsi     # 0xb7bc8
callq 0x64f0
movq %rax, -0x490(%rbp)
jmp 0x1db6c
movq -0x490(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x6490
movq %rax, -0x498(%rbp)
jmp 0x1db85
movq -0x498(%rbp), %rdi
movq 0xfc385(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1db9a
leaq -0x310(%rbp), %rdi
leaq 0x9a027(%rip), %rsi     # 0xb7bcf
callq 0x64f0
movq %rax, -0x4a0(%rbp)
jmp 0x1dbb6
movq -0x4a0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x6490
movq %rax, -0x4a8(%rbp)
jmp 0x1dbcf
movq -0x4a8(%rbp), %rdi
movq 0xfc33b(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dbe4
leaq -0x310(%rbp), %rdi
leaq 0x99fe5(%rip), %rsi     # 0xb7bd7
callq 0x64f0
movq %rax, -0x4b0(%rbp)
jmp 0x1dc00
movq -0x4b0(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x6810
movq %rax, -0x4b8(%rbp)
jmp 0x1dc18
movq -0x4b8(%rbp), %rdi
movq 0xfc2f2(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dc2d
leaq -0x310(%rbp), %rdi
leaq 0x99fa3(%rip), %rsi     # 0xb7bde
callq 0x64f0
movq %rax, -0x4c0(%rbp)
jmp 0x1dc49
movq -0x4c0(%rbp), %rdi
movzbl -0x1c(%rbp), %esi
andl $0x1, %esi
callq 0x6860
movq %rax, -0x4c8(%rbp)
jmp 0x1dc65
movq -0x4c8(%rbp), %rdi
movq 0xfc2a5(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dc7a
leaq -0x310(%rbp), %rdi
leaq 0x99f5e(%rip), %rsi     # 0xb7be6
callq 0x64f0
jmp 0x1dc8f
leaq -0x110(%rbp), %rax
addq $0xb8, %rax
movq %rax, -0x378(%rbp)
movq -0x378(%rbp), %rdi
callq 0x15be0
movq %rax, -0x380(%rbp)
movq -0x378(%rbp), %rdi
callq 0x15c10
movq %rax, -0x388(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x162c0
testb $0x1, %al
jne 0x1dce5
jmp 0x1dd73
leaq -0x380(%rbp), %rdi
callq 0x16300
movq %rax, %rsi
leaq -0x3a8(%rbp), %rdi
callq 0x6200
jmp 0x1dd02
leaq -0x310(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x6490
movq %rax, -0x4d0(%rbp)
jmp 0x1dd1e
movq -0x4d0(%rbp), %rdi
leaq 0x99ec2(%rip), %rsi     # 0xb7bee
callq 0x64f0
jmp 0x1dd33
leaq -0x3a8(%rbp), %rdi
callq 0x6948
leaq -0x380(%rbp), %rdi
callq 0x16390
jmp 0x1dcc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x328(%rbp)
movl %eax, -0x32c(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x6948
jmp 0x1eb06
leaq -0x310(%rbp), %rdi
movq 0xfc197(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dd88
leaq -0x310(%rbp), %rdi
leaq 0x99e5a(%rip), %rsi     # 0xb7bf0
callq 0x64f0
movq %rax, -0x4d8(%rbp)
jmp 0x1dda4
movq -0x4d8(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
callq 0x68f0
movq %rax, -0x4e0(%rbp)
jmp 0x1ddbe
movq -0x4e0(%rbp), %rdi
movq 0xfc14c(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1ddd3
leaq -0x310(%rbp), %rdi
movq 0xfc137(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dde8
leaq -0x310(%rbp), %rdi
leaq 0x99e05(%rip), %rsi     # 0xb7bfb
callq 0x64f0
movq %rax, -0x4e8(%rbp)
jmp 0x1de04
movq -0x4e8(%rbp), %rdi
movq 0xfc106(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1de19
leaq -0x310(%rbp), %rdi
leaq 0x99de5(%rip), %rsi     # 0xb7c0c
callq 0x64f0
movq %rax, -0x4f0(%rbp)
jmp 0x1de35
movq -0x3c0(%rbp), %rdi
addq $0x3b8, %rdi            # imm = 0x3B8
callq 0x2b7e0
movq -0x4f0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x4f8(%rbp)
jmp 0x1de60
movq -0x4f8(%rbp), %rdi
movq 0xfc0aa(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1de75
leaq -0x310(%rbp), %rdi
leaq 0x99d92(%rip), %rsi     # 0xb7c15
callq 0x64f0
movq %rax, -0x500(%rbp)
jmp 0x1de91
movq -0x3c0(%rbp), %rdi
addq $0x3c8, %rdi            # imm = 0x3C8
callq 0x2b7e0
movq -0x500(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x508(%rbp)
jmp 0x1debc
movq -0x508(%rbp), %rdi
movq 0xfc04e(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1ded1
leaq 0xa7acb(%rip), %rax     # 0xc59a3
testb $0x1, (%rax)
je 0x1e021
leaq 0xa7abc(%rip), %rax     # 0xc59a4
cmpl $0x1, (%rax)
jl 0x1df4b
leaq -0x310(%rbp), %rdi
leaq 0x99d23(%rip), %rsi     # 0xb7c1e
callq 0x64f0
movq %rax, -0x510(%rbp)
jmp 0x1df09
movq -0x3c0(%rbp), %rdi
addq $0x3d8, %rdi            # imm = 0x3D8
callq 0x2b7e0
movq -0x510(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x518(%rbp)
jmp 0x1df34
movq -0x518(%rbp), %rdi
movq 0xfbfd6(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1df49
jmp 0x1df4b
leaq 0xa7a52(%rip), %rax     # 0xc59a4
cmpl $0x2, (%rax)
jl 0x1dfb5
leaq -0x310(%rbp), %rdi
leaq 0x99cc7(%rip), %rsi     # 0xb7c2c
callq 0x64f0
movq %rax, -0x520(%rbp)
jmp 0x1df73
movq -0x3c0(%rbp), %rdi
addq $0x3e8, %rdi            # imm = 0x3E8
callq 0x2b7e0
movq -0x520(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x528(%rbp)
jmp 0x1df9e
movq -0x528(%rbp), %rdi
movq 0xfbf6c(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1dfb3
jmp 0x1dfb5
leaq 0xa79e8(%rip), %rax     # 0xc59a4
cmpl $0x3, (%rax)
jne 0x1e01f
leaq -0x310(%rbp), %rdi
leaq 0x99c6b(%rip), %rsi     # 0xb7c3a
callq 0x64f0
movq %rax, -0x530(%rbp)
jmp 0x1dfdd
movq -0x3c0(%rbp), %rdi
addq $0x3f8, %rdi            # imm = 0x3F8
callq 0x2b7e0
movq -0x530(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x538(%rbp)
jmp 0x1e008
movq -0x538(%rbp), %rdi
movq 0xfbf02(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e01d
jmp 0x1e01f
jmp 0x1e021
leaq 0xa7980(%rip), %rax     # 0xc59a8
testb $0x1, (%rax)
je 0x1e08b
leaq -0x310(%rbp), %rdi
leaq 0x99c0d(%rip), %rsi     # 0xb7c48
callq 0x64f0
movq %rax, -0x540(%rbp)
jmp 0x1e049
movq -0x3c0(%rbp), %rdi
addq $0x408, %rdi            # imm = 0x408
callq 0x2b7e0
movq -0x540(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x548(%rbp)
jmp 0x1e074
movq -0x548(%rbp), %rdi
movq 0xfbe96(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e089
jmp 0x1e08b
testb $0x1, -0x98(%rbp)
je 0x1e0f2
leaq -0x310(%rbp), %rdi
leaq 0x99bb6(%rip), %rsi     # 0xb7c58
callq 0x64f0
movq %rax, -0x550(%rbp)
jmp 0x1e0b0
movq -0x3c0(%rbp), %rdi
addq $0x418, %rdi            # imm = 0x418
callq 0x2b7e0
movq -0x550(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x558(%rbp)
jmp 0x1e0db
movq -0x558(%rbp), %rdi
movq 0xfbe2f(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e0f0
jmp 0x1e0f2
leaq 0xa78b7(%rip), %rax     # 0xc59b0
testb $0x1, (%rax)
je 0x1e15c
leaq -0x310(%rbp), %rdi
leaq 0x99b58(%rip), %rsi     # 0xb7c64
callq 0x64f0
movq %rax, -0x560(%rbp)
jmp 0x1e11a
movq -0x3c0(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
callq 0x2b7e0
movq -0x560(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x568(%rbp)
jmp 0x1e145
movq -0x568(%rbp), %rdi
movq 0xfbdc5(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e15a
jmp 0x1e15c
leaq 0xa783d(%rip), %rax     # 0xc59a0
testb $0x1, (%rax)
je 0x1e33d
leaq -0x310(%rbp), %rdi
movq 0xfbd9e(%rip), %rsi     # 0x119f18
callq 0x6530
movq %rax, -0x570(%rbp)
jmp 0x1e188
movq -0x570(%rbp), %rdi
leaq 0x99ad9(%rip), %rsi     # 0xb7c6f
callq 0x64f0
movq %rax, -0x578(%rbp)
jmp 0x1e1a4
movq -0x578(%rbp), %rdi
movq 0xfbd66(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e1b9
leaq -0x310(%rbp), %rdi
leaq 0x99ab4(%rip), %rsi     # 0xb7c7b
callq 0x64f0
movq %rax, -0x580(%rbp)
jmp 0x1e1d5
movq -0x3c0(%rbp), %rdi
addq $0x448, %rdi            # imm = 0x448
callq 0x2b7e0
movq -0x580(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x588(%rbp)
jmp 0x1e200
movq -0x588(%rbp), %rdi
movq 0xfbd0a(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e215
leaq -0x310(%rbp), %rdi
leaq 0x99a69(%rip), %rsi     # 0xb7c8c
callq 0x64f0
movq %rax, -0x590(%rbp)
jmp 0x1e231
movq -0x3c0(%rbp), %rdi
addq $0x458, %rdi            # imm = 0x458
callq 0x2b7e0
movq -0x590(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x598(%rbp)
jmp 0x1e25c
movq -0x598(%rbp), %rdi
movq 0xfbcae(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e271
leaq -0x310(%rbp), %rdi
leaq 0x99a1a(%rip), %rsi     # 0xb7c99
callq 0x64f0
movq %rax, -0x5a0(%rbp)
jmp 0x1e28d
movq -0x3c0(%rbp), %rdi
addq $0x468, %rdi            # imm = 0x468
callq 0x2b7e0
movq -0x5a0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x5a8(%rbp)
jmp 0x1e2b8
movq -0x5a8(%rbp), %rdi
movq 0xfbc52(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e2cd
movq -0x3c0(%rbp), %rax
cmpl $0x0, 0x1a8(%rax)
jne 0x1e33b
leaq -0x310(%rbp), %rdi
leaq 0x999bb(%rip), %rsi     # 0xb7ca6
callq 0x64f0
movq %rax, -0x5b0(%rbp)
jmp 0x1e2f9
movq -0x3c0(%rbp), %rdi
addq $0x478, %rdi            # imm = 0x478
callq 0x2b7e0
movq -0x5b0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x5b8(%rbp)
jmp 0x1e324
movq -0x5b8(%rbp), %rdi
movq 0xfbbe6(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e339
jmp 0x1e33b
jmp 0x1e33d
movq -0x3c0(%rbp), %rdi
addq $0x8, %rdi
callq 0x2b760
movl %eax, -0x5bc(%rbp)
jmp 0x1e355
movl -0x5bc(%rbp), %eax
cmpl $0x0, %eax
jle 0x1e704
movq -0x3c0(%rbp), %rdi
addq $0x8, %rdi
callq 0x2b810
movq %rax, -0x5c8(%rbp)
jmp 0x1e37d
movq -0x5c8(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq 0xa7610(%rip), %rax     # 0xc59a2
testb $0x1, (%rax)
je 0x1e4f8
leaq -0x310(%rbp), %rdi
movq 0xfbb6f(%rip), %rsi     # 0x119f18
callq 0x6530
movq %rax, -0x5d0(%rbp)
jmp 0x1e3b7
movq -0x5d0(%rbp), %rdi
leaq 0x998f2(%rip), %rsi     # 0xb7cb7
callq 0x64f0
movq %rax, -0x5d8(%rbp)
jmp 0x1e3d3
movq -0x5d8(%rbp), %rdi
movq 0xfbb37(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e3e8
leaq -0x310(%rbp), %rdi
leaq 0x998d5(%rip), %rsi     # 0xb7ccb
callq 0x64f0
movq %rax, -0x5e0(%rbp)
jmp 0x1e404
movq -0x3b0(%rbp), %rdi
addq $0x70, %rdi
callq 0x2b7e0
movq -0x5e0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x5e8(%rbp)
jmp 0x1e42c
movq -0x5e8(%rbp), %rdi
movq 0xfbade(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e441
leaq -0x310(%rbp), %rdi
leaq 0x9988c(%rip), %rsi     # 0xb7cdb
callq 0x64f0
movq %rax, -0x5f0(%rbp)
jmp 0x1e45d
movq -0x3b0(%rbp), %rdi
subq $-0x80, %rdi
callq 0x2b7e0
movq -0x5f0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x5f8(%rbp)
jmp 0x1e485
movq -0x5f8(%rbp), %rdi
movq 0xfba85(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e49a
leaq -0x310(%rbp), %rdi
leaq 0x9983e(%rip), %rsi     # 0xb7ce6
callq 0x64f0
movq %rax, -0x600(%rbp)
jmp 0x1e4b6
movq -0x3b0(%rbp), %rdi
addq $0x90, %rdi
callq 0x2b7e0
movq -0x600(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x608(%rbp)
jmp 0x1e4e1
movq -0x608(%rbp), %rdi
movq 0xfba29(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e4f6
jmp 0x1e4f8
leaq -0x310(%rbp), %rdi
movq 0xfba12(%rip), %rsi     # 0x119f18
callq 0x6530
movq %rax, -0x610(%rbp)
jmp 0x1e514
movq -0x610(%rbp), %rdi
leaq 0x997d4(%rip), %rsi     # 0xb7cf6
callq 0x64f0
movq %rax, -0x618(%rbp)
jmp 0x1e530
movq -0x618(%rbp), %rdi
movq 0xfb9da(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e545
leaq -0x310(%rbp), %rdi
leaq 0x997b4(%rip), %rsi     # 0xb7d07
callq 0x64f0
movq %rax, -0x620(%rbp)
jmp 0x1e561
movq -0x3b0(%rbp), %rdi
addq $0x20, %rdi
callq 0x2b7e0
movq -0x620(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x628(%rbp)
jmp 0x1e589
movq -0x628(%rbp), %rdi
movq 0xfb981(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e59e
leaq -0x310(%rbp), %rdi
leaq 0x99764(%rip), %rsi     # 0xb7d10
callq 0x64f0
movq %rax, -0x630(%rbp)
jmp 0x1e5ba
movq -0x3b0(%rbp), %rdi
addq $0x30, %rdi
callq 0x2b7e0
movq -0x630(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x638(%rbp)
jmp 0x1e5e2
movq -0x638(%rbp), %rdi
movq 0xfb928(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e5f7
leaq -0x310(%rbp), %rdi
leaq 0x99714(%rip), %rsi     # 0xb7d19
callq 0x64f0
movq %rax, -0x640(%rbp)
jmp 0x1e613
movq -0x3b0(%rbp), %rdi
addq $0x40, %rdi
callq 0x2b7e0
movq -0x640(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x648(%rbp)
jmp 0x1e63b
movq -0x648(%rbp), %rdi
movq 0xfb8cf(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e650
leaq -0x310(%rbp), %rdi
leaq 0x996c4(%rip), %rsi     # 0xb7d22
callq 0x64f0
movq %rax, -0x650(%rbp)
jmp 0x1e66c
movq -0x3b0(%rbp), %rdi
addq $0x50, %rdi
callq 0x2b7e0
movq -0x650(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x658(%rbp)
jmp 0x1e694
movq -0x658(%rbp), %rdi
movq 0xfb876(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e6a9
leaq -0x310(%rbp), %rdi
leaq 0x99676(%rip), %rsi     # 0xb7d2d
callq 0x64f0
movq %rax, -0x660(%rbp)
jmp 0x1e6c5
movq -0x3b0(%rbp), %rdi
addq $0x60, %rdi
callq 0x2b7e0
movq -0x660(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x668(%rbp)
jmp 0x1e6ed
movq -0x668(%rbp), %rdi
movq 0xfb81d(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e702
jmp 0x1e704
leaq 0xa729e(%rip), %rax     # 0xc59a9
testb $0x1, (%rax)
je 0x1eac2
leaq -0x310(%rbp), %rdi
movq 0xfb7f6(%rip), %rsi     # 0x119f18
callq 0x6530
movq %rax, -0x670(%rbp)
jmp 0x1e730
movq -0x670(%rbp), %rdi
leaq 0x995f8(%rip), %rsi     # 0xb7d36
callq 0x64f0
movq %rax, -0x678(%rbp)
jmp 0x1e74c
movq -0x678(%rbp), %rdi
movq 0xfb7be(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e761
movl $0x0, -0x3b4(%rbp)
movl -0x3b4(%rbp), %eax
leaq 0xa7234(%rip), %rcx     # 0xc59ac
cmpl (%rcx), %eax
jge 0x1eac0
leaq -0x310(%rbp), %rdi
leaq 0x995be(%rip), %rsi     # 0xb7d4c
callq 0x64f0
movq %rax, -0x680(%rbp)
jmp 0x1e79c
movq -0x680(%rbp), %rdi
movl -0x3b4(%rbp), %esi
callq 0x6810
movq %rax, -0x688(%rbp)
jmp 0x1e7b7
movq -0x688(%rbp), %rdi
leaq 0x99399(%rip), %rsi     # 0xb7b5e
callq 0x64f0
movq %rax, -0x690(%rbp)
jmp 0x1e7d3
movq -0x3c0(%rbp), %rdi
addq $0x488, %rdi            # imm = 0x488
movslq -0x3b4(%rbp), %rsi
callq 0x26ef0
movq %rax, %rdi
callq 0x2b7e0
movq -0x690(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x698(%rbp)
jmp 0x1e80d
movq -0x698(%rbp), %rdi
movq 0xfb6fd(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e822
leaq -0x310(%rbp), %rdi
leaq 0x99524(%rip), %rsi     # 0xb7d54
callq 0x64f0
movq %rax, -0x6a0(%rbp)
jmp 0x1e83e
movq -0x6a0(%rbp), %rdi
movl -0x3b4(%rbp), %esi
callq 0x6810
movq %rax, -0x6a8(%rbp)
jmp 0x1e859
movq -0x6a8(%rbp), %rdi
leaq 0x992f7(%rip), %rsi     # 0xb7b5e
callq 0x64f0
movq %rax, -0x6b0(%rbp)
jmp 0x1e875
movq -0x3c0(%rbp), %rdi
addq $0x4a0, %rdi            # imm = 0x4A0
movslq -0x3b4(%rbp), %rsi
callq 0x26ef0
movq %rax, %rdi
callq 0x2b7e0
movq -0x6b0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x6b8(%rbp)
jmp 0x1e8af
movq -0x6b8(%rbp), %rdi
movq 0xfb65b(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e8c4
leaq -0x310(%rbp), %rdi
leaq 0x9948a(%rip), %rsi     # 0xb7d5c
callq 0x64f0
movq %rax, -0x6c0(%rbp)
jmp 0x1e8e0
movq -0x6c0(%rbp), %rdi
movl -0x3b4(%rbp), %esi
callq 0x6810
movq %rax, -0x6c8(%rbp)
jmp 0x1e8fb
movq -0x6c8(%rbp), %rdi
leaq 0x99255(%rip), %rsi     # 0xb7b5e
callq 0x64f0
movq %rax, -0x6d0(%rbp)
jmp 0x1e917
movq -0x3c0(%rbp), %rdi
addq $0x4b8, %rdi            # imm = 0x4B8
movslq -0x3b4(%rbp), %rsi
callq 0x26ef0
movq %rax, %rdi
callq 0x2b7e0
movq -0x6d0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x6d8(%rbp)
jmp 0x1e951
movq -0x6d8(%rbp), %rdi
movq 0xfb5b9(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1e966
leaq -0x310(%rbp), %rdi
leaq 0x993f0(%rip), %rsi     # 0xb7d64
callq 0x64f0
movq %rax, -0x6e0(%rbp)
jmp 0x1e982
movq -0x6e0(%rbp), %rdi
movl -0x3b4(%rbp), %esi
callq 0x6810
movq %rax, -0x6e8(%rbp)
jmp 0x1e99d
movq -0x6e8(%rbp), %rdi
leaq 0x991b3(%rip), %rsi     # 0xb7b5e
callq 0x64f0
movq %rax, -0x6f0(%rbp)
jmp 0x1e9b9
movq -0x3c0(%rbp), %rdi
addq $0x4d0, %rdi            # imm = 0x4D0
movslq -0x3b4(%rbp), %rsi
callq 0x26ef0
movq %rax, %rdi
callq 0x2b7e0
movq -0x6f0(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x6f8(%rbp)
jmp 0x1e9f3
movq -0x6f8(%rbp), %rdi
movq 0xfb517(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1ea08
leaq -0x310(%rbp), %rdi
leaq 0x99358(%rip), %rsi     # 0xb7d6e
callq 0x64f0
movq %rax, -0x700(%rbp)
jmp 0x1ea24
movq -0x700(%rbp), %rdi
movl -0x3b4(%rbp), %esi
callq 0x6810
movq %rax, -0x708(%rbp)
jmp 0x1ea3f
movq -0x708(%rbp), %rdi
leaq 0x99111(%rip), %rsi     # 0xb7b5e
callq 0x64f0
movq %rax, -0x710(%rbp)
jmp 0x1ea5b
movq -0x3c0(%rbp), %rdi
addq $0x4e8, %rdi            # imm = 0x4E8
movslq -0x3b4(%rbp), %rsi
callq 0x26ef0
movq %rax, %rdi
callq 0x2b7e0
movq -0x710(%rbp), %rdi
movq %rax, %rsi
callq 0x2b7b0
movq %rax, -0x718(%rbp)
jmp 0x1ea95
movq -0x718(%rbp), %rdi
movq 0xfb475(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1eaaa
jmp 0x1eaac
movl -0x3b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3b4(%rbp)
jmp 0x1e76b
jmp 0x1eac2
leaq -0x310(%rbp), %rdi
movq 0xfb448(%rip), %rsi     # 0x119f18
callq 0x6530
jmp 0x1ead7
leaq -0x320(%rbp), %rdi
callq 0x6060
jmp 0x1eae5
leaq -0x320(%rbp), %rdi
callq 0x60f0
leaq -0x110(%rbp), %rdi
callq 0x155c0
addq $0x720, %rsp            # imm = 0x720
popq %rbp
retq
leaq -0x320(%rbp), %rdi
callq 0x60f0
leaq -0x110(%rbp), %rdi
callq 0x155c0
movq -0x328(%rbp), %rdi
callq 0x6830
nopw (%rax,%rax)