// File: mororo18[P]simplex-method/src/main.cpp
// Function: main
int main(){

    /* =========== MODEL 01 ============*/
    

    {
        const int n_var = 2;
        
        // init with the solver and qnt of variables
        Model model(simplex(), n_var);

        // def the problem type
        model.def("min");

        /* =========== OBJECTIVE FUNCTION ============*/

        // declares the O.F. 
        Model::obj_func func(n_var);

        // add the coeficients
        func.coef_add(0.4);
        func.coef_add(0.5);

        // add the variables names
        func.var_add("X_1");
        func.var_add("X_2");

        //func.print();

        // add the F.O. to the model
        model.func_add(func);

        /* =========== CONSTRAINTS ============*/

        Model::cstr cstr_01;

        // def the type of cstr
        cstr_01.type_def("leq");

        //add the coeficients of the constraint sequentially
        cstr_01.coef_add(0.3);
        cstr_01.coef_add(0.1);

        // add the cstr value
        cstr_01.value_add(2.7);


        Model::cstr cstr_02;

        cstr_02.type_def("eq");

        cstr_02.coef_add(0.5);
        cstr_02.coef_add(0.5);

        cstr_02.value_add(6);



        Model::cstr cstr_03;

        cstr_03.type_def("geq");

        cstr_03.coef_add(0.6);
        cstr_03.coef_add(0.4);

        cstr_03.value_add(6);


        // add the cstrs to the model
        model.cstr_add(cstr_01);
        model.cstr_add(cstr_02);
        model.cstr_add(cstr_03);

        model.print_model();

        //model.tableau_print();
        model.solve();
        model.print_solution();

        model.analyse();

        model.print_analysis();

        //model.print();
        //model.tableau_print();

        const char * f_name = "results/example1.txt";
        std::ofstream file {f_name};

        std::ofstream o_file;
        o_file.open(f_name, std::ios::in );
        if(file.is_open()){
            o_file << model.output_get();
            o_file.close();
        }
    }

    /* =========== MODEL 02 ============*/

    {
        const int n_var = 2;
        
        // init with the solver and qnt of variables
        Model model(simplex(), n_var);
        // def the problem type
        model.def("max");

        /* =========== OBJECTIVE FUNCTION ============*/

        // declares the O.F. 
        Model::obj_func func(n_var);

        // add the coeficients
        func.coef_add(3);
        func.coef_add(5);

        // add the variables names
        func.var_add("X_1");
        func.var_add("X_2");

        //func.print();

        // add the F.O. to the model
        model.func_add(func);

        /* =========== CONSTRAINTS ============*/

        Model::cstr cstr_01;

        // def the type of cstr
        cstr_01.type_def("leq");

        //add the coeficients of the constraint sequentially
        cstr_01.coef_add(1);
        cstr_01.coef_add(0);

        // add the cstr value
        cstr_01.value_add(4);


        Model::cstr cstr_02;

        cstr_02.type_def("leq");

        cstr_02.coef_add(0);
        cstr_02.coef_add(2);

        cstr_02.value_add(24);



        Model::cstr cstr_03;

        cstr_03.type_def("leq");

        cstr_03.coef_add(3);
        cstr_03.coef_add(2);

        cstr_03.value_add(18);


        Model::cstr cstr_04;

        cstr_04.type_def("leq");

        cstr_04.coef_add(2);
        cstr_04.coef_add(3);

        cstr_04.value_add(24);

        // add the cstrs to the model
        model.cstr_add(cstr_01);
        model.cstr_add(cstr_02);
        model.cstr_add(cstr_03);

        model.analyse_add(cstr_04);


        //model.tableau_print();
        model.solve();
        std::cout << std::endl;

        model.analyse();
        //model.tableau_print();

        // PROBLEMA DE ALOCACAO AQUI
        model.analyse_reopt();

        model.print();
        //model.print_mod();
        //model.tableau_print();

        const char * f_name = "results/example2.txt";
        const char * f_name_mod = "results/example2_mod.txt";
        
        std::ofstream file {f_name};
        std::ofstream file_mod {f_name_mod};

        std::ofstream o_file;
        o_file.open(f_name, std::ios::in );
        if(file.is_open()){
            o_file << model.output_get();
            o_file.close();
        }

        o_file.open(f_name_mod, std::ios::in );
        if(file.is_open()){
            o_file << model.output_mod_get();
            o_file.close();
        }
    }

    /* =========== MODEL n ============*/

    {
        const int n_var = 6;

        // data
        std::vector<int> OF_coef = { 4, 8, 6, 4, 3, 9}; 
        std::vector<std::vector<int>> EQ_m = {
            {1, 1, 0, 0, 0, 0},
            {0, 0, 1, 1, 0, 0},
            {0, 0, 0, 0, 1, 1}
        };

        std::vector<int> EQ_v = {500, 1200, 1800};

        std::vector<std::vector<int>> LEQ_m = {
            {1, 0, 1, 0, 1, 0},
            {0, 1, 0, 1, 0, 1},
            {1, 0, 0, 0, 0, 0},
            {0, 1, 0, 0, 0, 0},
            {0, 0, 1, 0, 0, 0},
            {0, 0, 0, 1, 0, 0},
            {0, 0, 0, 0, 1, 0},
            {0, 0, 0, 0, 0, 1},
        };

        std::vector<int> LEQ_v = {2000, 2000, 300, 300, 720, 720, 1080, 1080};

        std::vector<std::vector<int>> GEQ_m = {
            {1, 0, 1, 0, 1, 0},
            {0, 1, 0, 1, 0, 1}
        };

        std::vector<int> GEQ_v = {1400, 1400};
        // init with the solver and qnt of variables
        Model model(simplex(), n_var);

        // def the problem type
        model.def("max");

        /* =========== OBJECTIVE FUNCTION ============*/

        // declares the O.F. 
        Model::obj_func func(n_var);

        char buf[100];
        for(int i = 0; i < OF_coef.size(); i++){

            sprintf(buf, "X_%d", i+1);

            // add the coeficients
            func.coef_add(OF_coef[i]);
            // add the variables names
            func.var_add(buf);
        }

        // add the F.O. to the model
        model.func_add(func);

        /* =========== CONSTRAINTS ============*/

        for(int i = 0; i < EQ_m.size(); i++){
            Model::cstr cstr;
            cstr.type_def("eq");
            cstr.value_add(EQ_v[i]);
            for(int j = 0; j < EQ_m[0].size(); j++){
                cstr.coef_add(EQ_m[i][j]);
            }
            // add the cstrs to the model
            model.cstr_add(cstr);

        }

        for(int i = 0; i < LEQ_m.size(); i++){
            Model::cstr cstr;
            cstr.type_def("leq");
            cstr.value_add(LEQ_v[i]);
            for(int j = 0; j < LEQ_m[0].size(); j++){
                cstr.coef_add(LEQ_m[i][j]);
            }
            model.cstr_add(cstr);
        }

        for(int i = 0; i < GEQ_m.size(); i++){
            Model::cstr cstr;
            cstr.type_def("geq");
            cstr.value_add(GEQ_v[i]);
            for(int j = 0; j < GEQ_m[0].size(); j++){
                cstr.coef_add(GEQ_m[i][j]);
            }
            model.cstr_add(cstr);
        }

        model.print_model();

        model.solve();
        model.print_solution();

        model.analyse();
        model.print_analysis();

        //model.print();

        const char * f_name = "results/example3.txt";
        std::ofstream file {f_name};

        std::ofstream o_file;
        o_file.open(f_name, std::ios::in );
        if(file.is_open()){
            o_file << model.output_get();
            o_file.close();
        }
    }

    return 0;
}

// Assembly:
subq $0x2838, %rsp           # imm = 0x2838
movl $0x0, 0x2834(%rsp)
movl $0x2, 0x2830(%rsp)
callq 0x1a860
movq %rax, %rsi
leaq 0x2580(%rsp), %rdi
movl $0x2, %edx
callq 0x81c0
leaq 0x255f(%rsp), %rdi
movq %rdi, 0x280(%rsp)
callq 0x2360
movq 0x280(%rsp), %rdx
leaq 0x18aad(%rip), %rsi     # 0x1b078
leaq 0x2560(%rsp), %rdi
callq 0x2280
jmp 0x25da
leaq 0x2580(%rsp), %rdi
leaq 0x2560(%rsp), %rsi
callq 0x87e0
jmp 0x25f1
leaq 0x2560(%rsp), %rdi
callq 0x2140
leaq 0x255f(%rsp), %rdi
callq 0x2220
leaq 0x2510(%rsp), %rdi
movl $0x2, %esi
callq 0x102d0
jmp 0x261f
leaq 0x2510(%rsp), %rdi
movsd 0x189d9(%rip), %xmm0    # 0x1b008
callq 0x10410
jmp 0x2636
leaq 0x2510(%rsp), %rdi
movsd 0x189ca(%rip), %xmm0    # 0x1b010
callq 0x10410
jmp 0x264d
leaq 0x18a28(%rip), %rsi     # 0x1b07c
leaq 0x2510(%rsp), %rdi
callq 0x10310
jmp 0x2663
leaq 0x18a16(%rip), %rsi     # 0x1b080
leaq 0x2510(%rsp), %rdi
callq 0x10310
jmp 0x2679
leaq 0x24d8(%rsp), %rdi
leaq 0x2510(%rsp), %rsi
callq 0x5660
jmp 0x2690
leaq 0x2580(%rsp), %rdi
leaq 0x24d8(%rsp), %rsi
callq 0x88b0
jmp 0x26a7
leaq 0x24d8(%rsp), %rdi
callq 0x56e0
leaq 0x2490(%rsp), %rdi
callq 0x5710
leaq 0x246f(%rsp), %rdi
movq %rdi, 0x278(%rsp)
callq 0x2360
movq 0x278(%rsp), %rdx
leaq 0x1899f(%rip), %rsi     # 0x1b084
leaq 0x2470(%rsp), %rdi
callq 0x2280
jmp 0x26f4
leaq 0x2490(%rsp), %rdi
leaq 0x2470(%rsp), %rsi
callq 0x10500
jmp 0x270b
leaq 0x2470(%rsp), %rdi
callq 0x2140
leaq 0x246f(%rsp), %rdi
callq 0x2220
leaq 0x2490(%rsp), %rdi
movsd 0x188e3(%rip), %xmm0    # 0x1b018
callq 0x105f0
jmp 0x273c
leaq 0x2490(%rsp), %rdi
movsd 0x188d4(%rip), %xmm0    # 0x1b020
callq 0x105f0
jmp 0x2753
leaq 0x2490(%rsp), %rdi
movsd 0x188c5(%rip), %xmm0    # 0x1b028
callq 0x10620
jmp 0x276a
leaq 0x2420(%rsp), %rdi
callq 0x5710
leaq 0x23ff(%rsp), %rdi
movq %rdi, 0x270(%rsp)
callq 0x2360
movq 0x270(%rsp), %rdx
leaq 0x188ee(%rip), %rsi     # 0x1b089
leaq 0x2400(%rsp), %rdi
callq 0x2280
jmp 0x27aa
leaq 0x2420(%rsp), %rdi
leaq 0x2400(%rsp), %rsi
callq 0x10500
jmp 0x27c1
leaq 0x2400(%rsp), %rdi
callq 0x2140
leaq 0x23ff(%rsp), %rdi
callq 0x2220
leaq 0x2420(%rsp), %rdi
movsd 0x18825(%rip), %xmm0    # 0x1b010
callq 0x105f0
jmp 0x27f2
leaq 0x2420(%rsp), %rdi
movsd 0x1880e(%rip), %xmm0    # 0x1b010
callq 0x105f0
jmp 0x2809
leaq 0x2420(%rsp), %rdi
movsd 0x18817(%rip), %xmm0    # 0x1b030
callq 0x10620
jmp 0x2820
leaq 0x23b0(%rsp), %rdi
callq 0x5710
leaq 0x238f(%rsp), %rdi
movq %rdi, 0x268(%rsp)
callq 0x2360
movq 0x268(%rsp), %rdx
leaq 0x18837(%rip), %rsi     # 0x1b088
leaq 0x2390(%rsp), %rdi
callq 0x2280
jmp 0x2860
leaq 0x23b0(%rsp), %rdi
leaq 0x2390(%rsp), %rsi
callq 0x10500
jmp 0x2877
leaq 0x2390(%rsp), %rdi
callq 0x2140
leaq 0x238f(%rsp), %rdi
callq 0x2220
leaq 0x23b0(%rsp), %rdi
movsd 0x18797(%rip), %xmm0    # 0x1b038
callq 0x105f0
jmp 0x28a8
leaq 0x23b0(%rsp), %rdi
movsd 0x18750(%rip), %xmm0    # 0x1b008
callq 0x105f0
jmp 0x28bf
leaq 0x23b0(%rsp), %rdi
movsd 0x18761(%rip), %xmm0    # 0x1b030
callq 0x10620
jmp 0x28d6
leaq 0x2340(%rsp), %rdi
leaq 0x2490(%rsp), %rsi
callq 0x5740
jmp 0x28ed
leaq 0x2580(%rsp), %rdi
leaq 0x2340(%rsp), %rsi
callq 0x89c0
jmp 0x2904
leaq 0x2340(%rsp), %rdi
callq 0x57b0
leaq 0x22f8(%rsp), %rdi
leaq 0x2420(%rsp), %rsi
callq 0x5740
jmp 0x2928
leaq 0x2580(%rsp), %rdi
leaq 0x22f8(%rsp), %rsi
callq 0x89c0
jmp 0x293f
leaq 0x22f8(%rsp), %rdi
callq 0x57b0
leaq 0x22b0(%rsp), %rdi
leaq 0x23b0(%rsp), %rsi
callq 0x5740
jmp 0x2963
leaq 0x2580(%rsp), %rdi
leaq 0x22b0(%rsp), %rsi
callq 0x89c0
jmp 0x297a
leaq 0x22b0(%rsp), %rdi
callq 0x57b0
leaq 0x2580(%rsp), %rdi
callq 0x101d0
jmp 0x2996
leaq 0x2580(%rsp), %rdi
callq 0xfdb0
jmp 0x29a5
leaq 0x2580(%rsp), %rdi
callq 0x10250
jmp 0x29b4
leaq 0x2580(%rsp), %rdi
callq 0xa0c0
jmp 0x29c3
leaq 0x2580(%rsp), %rdi
callq 0x10290
jmp 0x29d2
leaq 0x186b3(%rip), %rax     # 0x1b08c
movq %rax, 0x22a8(%rsp)
movq 0x22a8(%rsp), %rsi
leaq 0x20a8(%rsp), %rdi
movl $0x10, %edx
callq 0x2230
jmp 0x29fd
leaq 0x1ea8(%rsp), %rdi
callq 0x2330
jmp 0x2a0c
movq 0x22a8(%rsp), %rsi
leaq 0x1ea8(%rsp), %rdi
movl $0x8, %edx
callq 0x2050
jmp 0x2a28
leaq 0x20a8(%rsp), %rdi
callq 0x2190
movb %al, 0x267(%rsp)
jmp 0x2a3e
movb 0x267(%rsp), %al
testb $0x1, %al
jne 0x2a4e
jmp 0x2d2e
leaq 0x1e88(%rsp), %rdi
leaq 0x2580(%rsp), %rsi
callq 0xffb0
jmp 0x2a65
leaq 0x1ea8(%rsp), %rdi
leaq 0x1e88(%rsp), %rsi
callq 0x21c0
jmp 0x2a7c
leaq 0x1e88(%rsp), %rdi
callq 0x2140
leaq 0x1ea8(%rsp), %rdi
callq 0x22a0
jmp 0x2a98
jmp 0x2d2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x2ad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x2560(%rsp), %rdi
callq 0x2140
leaq 0x255f(%rsp), %rdi
callq 0x2220
jmp 0x340a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x340a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x24d8(%rsp), %rdi
callq 0x56e0
jmp 0x33fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x2b75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x2470(%rsp), %rdi
callq 0x2140
leaq 0x246f(%rsp), %rdi
callq 0x2220
jmp 0x33f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x2bd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x2400(%rsp), %rdi
callq 0x2140
leaq 0x23ff(%rsp), %rdi
callq 0x2220
jmp 0x33e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x2c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x2390(%rsp), %rdi
callq 0x2140
leaq 0x238f(%rsp), %rdi
callq 0x2220
jmp 0x33d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x2340(%rsp), %rdi
callq 0x57b0
jmp 0x33d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x22f8(%rsp), %rdi
callq 0x57b0
jmp 0x33d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x22b0(%rsp), %rdi
callq 0x57b0
jmp 0x33d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x33bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1e88(%rsp), %rdi
callq 0x2140
jmp 0x33bc
leaq 0x1ea8(%rsp), %rdi
callq 0x22c0
leaq 0x20a8(%rsp), %rdi
callq 0x22c0
leaq 0x23b0(%rsp), %rdi
callq 0x57b0
leaq 0x2420(%rsp), %rdi
callq 0x57b0
leaq 0x2490(%rsp), %rdi
callq 0x57b0
leaq 0x2510(%rsp), %rdi
callq 0x56e0
leaq 0x2580(%rsp), %rdi
callq 0x83a0
movl $0x2, 0x1e84(%rsp)
callq 0x1a860
movq %rax, %rsi
leaq 0x1bd0(%rsp), %rdi
movl $0x2, %edx
callq 0x81c0
leaq 0x1baf(%rsp), %rdi
movq %rdi, 0x258(%rsp)
callq 0x2360
movq 0x258(%rsp), %rdx
leaq 0x182cf(%rip), %rsi     # 0x1b0a1
leaq 0x1bb0(%rsp), %rdi
callq 0x2280
jmp 0x2de1
leaq 0x1bd0(%rsp), %rdi
leaq 0x1bb0(%rsp), %rsi
callq 0x87e0
jmp 0x2df8
leaq 0x1bb0(%rsp), %rdi
callq 0x2140
leaq 0x1baf(%rsp), %rdi
callq 0x2220
leaq 0x1b70(%rsp), %rdi
movl $0x2, %esi
callq 0x102d0
jmp 0x2e26
leaq 0x1b70(%rsp), %rdi
movsd 0x1820a(%rip), %xmm0    # 0x1b040
callq 0x10410
jmp 0x2e3d
leaq 0x1b70(%rsp), %rdi
movsd 0x181fb(%rip), %xmm0    # 0x1b048
callq 0x10410
jmp 0x2e54
leaq 0x18221(%rip), %rsi     # 0x1b07c
leaq 0x1b70(%rsp), %rdi
callq 0x10310
jmp 0x2e6a
leaq 0x1820f(%rip), %rsi     # 0x1b080
leaq 0x1b70(%rsp), %rdi
callq 0x10310
jmp 0x2e80
leaq 0x1b38(%rsp), %rdi
leaq 0x1b70(%rsp), %rsi
callq 0x5660
jmp 0x2e97
leaq 0x1bd0(%rsp), %rdi
leaq 0x1b38(%rsp), %rsi
callq 0x88b0
jmp 0x2eae
leaq 0x1b38(%rsp), %rdi
callq 0x56e0
leaq 0x1af0(%rsp), %rdi
callq 0x5710
leaq 0x1acf(%rsp), %rdi
movq %rdi, 0x250(%rsp)
callq 0x2360
movq 0x250(%rsp), %rdx
leaq 0x18198(%rip), %rsi     # 0x1b084
leaq 0x1ad0(%rsp), %rdi
callq 0x2280
jmp 0x2efb
leaq 0x1af0(%rsp), %rdi
leaq 0x1ad0(%rsp), %rsi
callq 0x10500
jmp 0x2f12
leaq 0x1ad0(%rsp), %rdi
callq 0x2140
leaq 0x1acf(%rsp), %rdi
callq 0x2220
leaq 0x1af0(%rsp), %rdi
movsd 0x18114(%rip), %xmm0    # 0x1b050
callq 0x105f0
jmp 0x2f43
leaq 0x1af0(%rsp), %rdi
xorps %xmm0, %xmm0
callq 0x105f0
jmp 0x2f55
leaq 0x1af0(%rsp), %rdi
movsd 0x180f3(%rip), %xmm0    # 0x1b058
callq 0x10620
jmp 0x2f6c
leaq 0x1a80(%rsp), %rdi
callq 0x5710
leaq 0x1a5f(%rsp), %rdi
movq %rdi, 0x248(%rsp)
callq 0x2360
movq 0x248(%rsp), %rdx
leaq 0x180e7(%rip), %rsi     # 0x1b084
leaq 0x1a60(%rsp), %rdi
callq 0x2280
jmp 0x2fac
leaq 0x1a80(%rsp), %rdi
leaq 0x1a60(%rsp), %rsi
callq 0x10500
jmp 0x2fc3
leaq 0x1a60(%rsp), %rdi
callq 0x2140
leaq 0x1a5f(%rsp), %rdi
callq 0x2220
leaq 0x1a80(%rsp), %rdi
xorps %xmm0, %xmm0
callq 0x105f0
jmp 0x2fef
leaq 0x1a80(%rsp), %rdi
movsd 0x18061(%rip), %xmm0    # 0x1b060
callq 0x105f0
jmp 0x3006
leaq 0x1a80(%rsp), %rdi
movsd 0x18052(%rip), %xmm0    # 0x1b068
callq 0x10620
jmp 0x301d
leaq 0x1a10(%rsp), %rdi
callq 0x5710
leaq 0x19ef(%rsp), %rdi
movq %rdi, 0x240(%rsp)
callq 0x2360
movq 0x240(%rsp), %rdx
leaq 0x18036(%rip), %rsi     # 0x1b084
leaq 0x19f0(%rsp), %rdi
callq 0x2280
jmp 0x305d
leaq 0x1a10(%rsp), %rdi
leaq 0x19f0(%rsp), %rsi
callq 0x10500
jmp 0x3074
leaq 0x19f0(%rsp), %rdi
callq 0x2140
leaq 0x19ef(%rsp), %rdi
callq 0x2220
leaq 0x1a10(%rsp), %rdi
movsd 0x17fa2(%rip), %xmm0    # 0x1b040
callq 0x105f0
jmp 0x30a5
leaq 0x1a10(%rsp), %rdi
movsd 0x17fab(%rip), %xmm0    # 0x1b060
callq 0x105f0
jmp 0x30bc
leaq 0x1a10(%rsp), %rdi
movsd 0x17fa4(%rip), %xmm0    # 0x1b070
callq 0x10620
jmp 0x30d3
leaq 0x19a0(%rsp), %rdi
callq 0x5710
leaq 0x197f(%rsp), %rdi
movq %rdi, 0x238(%rsp)
callq 0x2360
movq 0x238(%rsp), %rdx
leaq 0x17f80(%rip), %rsi     # 0x1b084
leaq 0x1980(%rsp), %rdi
callq 0x2280
jmp 0x3113
leaq 0x19a0(%rsp), %rdi
leaq 0x1980(%rsp), %rsi
callq 0x10500
jmp 0x312a
leaq 0x1980(%rsp), %rdi
callq 0x2140
leaq 0x197f(%rsp), %rdi
callq 0x2220
leaq 0x19a0(%rsp), %rdi
movsd 0x17f0c(%rip), %xmm0    # 0x1b060
callq 0x105f0
jmp 0x315b
leaq 0x19a0(%rsp), %rdi
movsd 0x17ed5(%rip), %xmm0    # 0x1b040
callq 0x105f0
jmp 0x3172
leaq 0x19a0(%rsp), %rdi
movsd 0x17ee6(%rip), %xmm0    # 0x1b068
callq 0x10620
jmp 0x3189
leaq 0x1930(%rsp), %rdi
leaq 0x1af0(%rsp), %rsi
callq 0x5740
jmp 0x31a0
leaq 0x1bd0(%rsp), %rdi
leaq 0x1930(%rsp), %rsi
callq 0x89c0
jmp 0x31b7
leaq 0x1930(%rsp), %rdi
callq 0x57b0
leaq 0x18e8(%rsp), %rdi
leaq 0x1a80(%rsp), %rsi
callq 0x5740
jmp 0x31db
leaq 0x1bd0(%rsp), %rdi
leaq 0x18e8(%rsp), %rsi
callq 0x89c0
jmp 0x31f2
leaq 0x18e8(%rsp), %rdi
callq 0x57b0
leaq 0x18a0(%rsp), %rdi
leaq 0x1a10(%rsp), %rsi
callq 0x5740
jmp 0x3216
leaq 0x1bd0(%rsp), %rdi
leaq 0x18a0(%rsp), %rsi
callq 0x89c0
jmp 0x322d
leaq 0x18a0(%rsp), %rdi
callq 0x57b0
leaq 0x1858(%rsp), %rdi
leaq 0x19a0(%rsp), %rsi
callq 0x5740
jmp 0x3251
leaq 0x1bd0(%rsp), %rdi
leaq 0x1858(%rsp), %rsi
callq 0x8a90
jmp 0x3268
leaq 0x1858(%rsp), %rdi
callq 0x57b0
leaq 0x1bd0(%rsp), %rdi
callq 0xfdb0
jmp 0x3284
movq 0x20d4d(%rip), %rdi     # 0x23fd8
movq 0x20d36(%rip), %rsi     # 0x23fc8
callq 0x2210
jmp 0x3299
leaq 0x1bd0(%rsp), %rdi
callq 0xa0c0
jmp 0x32a8
leaq 0x1bd0(%rsp), %rdi
callq 0xcf40
jmp 0x32b7
leaq 0x1bd0(%rsp), %rdi
callq 0x100f0
jmp 0x32c6
leaq 0x17dd8(%rip), %rax     # 0x1b0a5
movq %rax, 0x1850(%rsp)
leaq 0x17dde(%rip), %rax     # 0x1b0ba
movq %rax, 0x1848(%rsp)
movq 0x1850(%rsp), %rsi
leaq 0x1648(%rsp), %rdi
movl $0x10, %edx
callq 0x2230
jmp 0x3300
movq 0x1848(%rsp), %rsi
leaq 0x1448(%rsp), %rdi
movl $0x10, %edx
callq 0x2230
jmp 0x331c
leaq 0x1248(%rsp), %rdi
callq 0x2330
jmp 0x332b
movq 0x1850(%rsp), %rsi
leaq 0x1248(%rsp), %rdi
movl $0x8, %edx
callq 0x2050
jmp 0x3347
leaq 0x1648(%rsp), %rdi
callq 0x2190
movb %al, 0x237(%rsp)
jmp 0x335d
movb 0x237(%rsp), %al
testb $0x1, %al
jne 0x336d
jmp 0x374e
leaq 0x1228(%rsp), %rdi
leaq 0x1bd0(%rsp), %rsi
callq 0xffb0
jmp 0x3384
leaq 0x1248(%rsp), %rdi
leaq 0x1228(%rsp), %rsi
callq 0x21c0
jmp 0x339b
leaq 0x1228(%rsp), %rdi
callq 0x2140
leaq 0x1248(%rsp), %rdi
callq 0x22a0
jmp 0x33b7
jmp 0x374e
leaq 0x1ea8(%rsp), %rdi
callq 0x22c0
leaq 0x20a8(%rsp), %rdi
callq 0x22c0
leaq 0x23b0(%rsp), %rdi
callq 0x57b0
leaq 0x2420(%rsp), %rdi
callq 0x57b0
leaq 0x2490(%rsp), %rdi
callq 0x57b0
leaq 0x2510(%rsp), %rdi
callq 0x56e0
leaq 0x2580(%rsp), %rdi
callq 0x83a0
jmp 0x5652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x3453
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1bb0(%rsp), %rdi
callq 0x2140
leaq 0x1baf(%rsp), %rdi
callq 0x2220
jmp 0x46f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1b38(%rsp), %rdi
callq 0x56e0
jmp 0x46ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x34f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1ad0(%rsp), %rdi
callq 0x2140
leaq 0x1acf(%rsp), %rdi
callq 0x2220
jmp 0x46dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x3556
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1a60(%rsp), %rdi
callq 0x2140
leaq 0x1a5f(%rsp), %rdi
callq 0x2220
jmp 0x46d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x35b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x19f0(%rsp), %rdi
callq 0x2140
leaq 0x19ef(%rsp), %rdi
callq 0x2220
jmp 0x46c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x361a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1980(%rsp), %rdi
callq 0x2140
leaq 0x197f(%rsp), %rdi
callq 0x2220
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1930(%rsp), %rdi
callq 0x57b0
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x18e8(%rsp), %rdi
callq 0x57b0
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x18a0(%rsp), %rdi
callq 0x57b0
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1858(%rsp), %rdi
callq 0x57b0
jmp 0x46b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x46a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x469c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x468f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1228(%rsp), %rdi
callq 0x2140
jmp 0x468f
movq 0x1848(%rsp), %rsi
leaq 0x1248(%rsp), %rdi
movl $0x8, %edx
callq 0x2050
jmp 0x376a
leaq 0x1648(%rsp), %rdi
callq 0x2190
movb %al, 0x236(%rsp)
jmp 0x3780
movb 0x236(%rsp), %al
testb $0x1, %al
jne 0x378d
jmp 0x37ff
leaq 0x1208(%rsp), %rdi
leaq 0x1bd0(%rsp), %rsi
callq 0x10050
jmp 0x37a4
leaq 0x1248(%rsp), %rdi
leaq 0x1208(%rsp), %rsi
callq 0x21c0
jmp 0x37bb
leaq 0x1208(%rsp), %rdi
callq 0x2140
leaq 0x1248(%rsp), %rdi
callq 0x22a0
jmp 0x37d7
jmp 0x37ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1208(%rsp), %rdi
callq 0x2140
jmp 0x468f
leaq 0x1248(%rsp), %rdi
callq 0x22c0
leaq 0x1448(%rsp), %rdi
callq 0x22c0
leaq 0x1648(%rsp), %rdi
callq 0x22c0
leaq 0x19a0(%rsp), %rdi
callq 0x57b0
leaq 0x1a10(%rsp), %rdi
callq 0x57b0
leaq 0x1a80(%rsp), %rdi
callq 0x57b0
leaq 0x1af0(%rsp), %rdi
callq 0x57b0
leaq 0x1b70(%rsp), %rdi
callq 0x56e0
leaq 0x1bd0(%rsp), %rdi
callq 0x83a0
movl $0x6, 0x1204(%rsp)
movabsq $0x900000003, %rax      # imm = 0x900000003
movq %rax, 0x11d0(%rsp)
movups 0x17888(%rip), %xmm0    # 0x1b120
movaps %xmm0, 0x11c0(%rsp)
leaq 0x11c0(%rsp), %rax
movq %rax, 0x11d8(%rsp)
movq $0x6, 0x11e0(%rsp)
leaq 0x11bf(%rsp), %rdi
movq %rdi, 0x228(%rsp)
callq 0x57e0
movq 0x228(%rsp), %rcx
movq 0x11d8(%rsp), %rsi
movq 0x11e0(%rsp), %rdx
leaq 0x11e8(%rsp), %rdi
callq 0x57f0
jmp 0x38f8
leaq 0x11bf(%rsp), %rdi
callq 0x5880
movb $0x1, 0x10ae(%rsp)
leaq 0x1148(%rsp), %rax
movq %rax, 0x218(%rsp)
movq %rax, 0x1140(%rsp)
movups 0x1780c(%rip), %xmm0    # 0x1b138
movaps %xmm0, 0x1110(%rsp)
movq $0x0, 0x1120(%rsp)
leaq 0x1110(%rsp), %rax
movq %rax, 0x1130(%rsp)
movq $0x6, 0x1138(%rsp)
leaq 0x110f(%rsp), %rdi
movq %rdi, 0x220(%rsp)
callq 0x57e0
movq 0x218(%rsp), %rdi
movq 0x220(%rsp), %rcx
movq 0x1130(%rsp), %rsi
movq 0x1138(%rsp), %rdx
callq 0x57f0
jmp 0x3998
leaq 0x1160(%rsp), %rax
movq %rax, 0x208(%rsp)
movq %rax, 0x1140(%rsp)
movups 0x17799(%rip), %xmm0    # 0x1b150
movaps %xmm0, 0x10e0(%rsp)
movq $0x0, 0x10f0(%rsp)
leaq 0x10e0(%rsp), %rax
movq %rax, 0x10f8(%rsp)
movq $0x6, 0x1100(%rsp)
leaq 0x10df(%rsp), %rdi
movq %rdi, 0x210(%rsp)
callq 0x57e0
movq 0x208(%rsp), %rdi
movq 0x210(%rsp), %rcx
movq 0x10f8(%rsp), %rsi
movq 0x1100(%rsp), %rdx
callq 0x57f0
jmp 0x3a23
leaq 0x1178(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movq %rax, 0x1140(%rsp)
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x10c0(%rsp)
movups 0x17714(%rip), %xmm0    # 0x1b168
movaps %xmm0, 0x10b0(%rsp)
leaq 0x10b0(%rsp), %rax
movq %rax, 0x10c8(%rsp)
movq $0x6, 0x10d0(%rsp)
leaq 0x10af(%rsp), %rdi
movq %rdi, 0x200(%rsp)
callq 0x57e0
movq 0x1f8(%rsp), %rdi
movq 0x200(%rsp), %rcx
movq 0x10c8(%rsp), %rsi
movq 0x10d0(%rsp), %rdx
callq 0x57f0
jmp 0x3ab4
movb $0x0, 0x10ae(%rsp)
leaq 0x1148(%rsp), %rax
movq %rax, 0x1190(%rsp)
movq $0x3, 0x1198(%rsp)
leaq 0x10ad(%rsp), %rdi
movq %rdi, 0x1f0(%rsp)
callq 0x5890
movq 0x1f0(%rsp), %rcx
movq 0x1190(%rsp), %rsi
movq 0x1198(%rsp), %rdx
leaq 0x11a0(%rsp), %rdi
callq 0x58a0
jmp 0x3b14
leaq 0x10ad(%rsp), %rdi
callq 0x5930
leaq 0x1148(%rsp), %rax
movq %rax, 0x1e0(%rsp)
addq $0x48, %rax
movq %rax, 0x1e8(%rsp)
movq 0x1e8(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x1d8(%rsp)
callq 0x5940
movq 0x1e0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x1e8(%rsp)
jne 0x3b3d
leaq 0x10af(%rsp), %rdi
callq 0x5880
leaq 0x10df(%rsp), %rdi
callq 0x5880
leaq 0x110f(%rsp), %rdi
callq 0x5880
movl $0x1f4, 0x1074(%rsp) # imm = 0x1F4
movl $0x4b0, 0x1078(%rsp) # imm = 0x4B0
movl $0x708, 0x107c(%rsp) # imm = 0x708
leaq 0x1074(%rsp), %rax
movq %rax, 0x1080(%rsp)
movq $0x3, 0x1088(%rsp)
leaq 0x1073(%rsp), %rdi
movq %rdi, 0x1d0(%rsp)
callq 0x57e0
movq 0x1d0(%rsp), %rcx
movq 0x1080(%rsp), %rsi
movq 0x1088(%rsp), %rdx
leaq 0x1090(%rsp), %rdi
callq 0x57f0
jmp 0x3c13
leaq 0x1073(%rsp), %rdi
callq 0x5880
movb $0x1, 0xdfe(%rsp)
leaq 0xf88(%rsp), %rax
movq %rax, 0x1c0(%rsp)
movq %rax, 0xf80(%rsp)
movups 0x17539(%rip), %xmm0    # 0x1b180
movaps %xmm0, 0xf50(%rsp)
movq $0x1, 0xf60(%rsp)
leaq 0xf50(%rsp), %rax
movq %rax, 0xf70(%rsp)
movq $0x6, 0xf78(%rsp)
leaq 0xf4f(%rsp), %rdi
movq %rdi, 0x1c8(%rsp)
callq 0x57e0
movq 0x1c0(%rsp), %rdi
movq 0x1c8(%rsp), %rcx
movq 0xf70(%rsp), %rsi
movq 0xf78(%rsp), %rdx
callq 0x57f0
jmp 0x3cb3
leaq 0xfa0(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq %rax, 0xf80(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0xf30(%rsp)
movups 0x174b4(%rip), %xmm0    # 0x1b198
movaps %xmm0, 0xf20(%rsp)
leaq 0xf20(%rsp), %rax
movq %rax, 0xf38(%rsp)
movq $0x6, 0xf40(%rsp)
leaq 0xf1f(%rsp), %rdi
movq %rdi, 0x1b8(%rsp)
callq 0x57e0
movq 0x1b0(%rsp), %rdi
movq 0x1b8(%rsp), %rcx
movq 0xf38(%rsp), %rsi
movq 0xf40(%rsp), %rdx
callq 0x57f0
jmp 0x3d44
leaq 0xfb8(%rsp), %rax
movq %rax, 0x1a0(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xef0(%rsp)
movq $0x0, 0xf00(%rsp)
movups 0x17436(%rip), %xmm0    # 0x1b1b0
movaps %xmm0, 0xef0(%rsp)
movq $0x0, 0xf00(%rsp)
leaq 0xef0(%rsp), %rax
movq %rax, 0xf08(%rsp)
movq $0x6, 0xf10(%rsp)
leaq 0xeef(%rsp), %rdi
movq %rdi, 0x1a8(%rsp)
callq 0x57e0
movq 0x1a0(%rsp), %rdi
movq 0x1a8(%rsp), %rcx
movq 0xf08(%rsp), %rsi
movq 0xf10(%rsp), %rdx
callq 0x57f0
jmp 0x3de6
leaq 0xfd0(%rsp), %rax
movq %rax, 0x190(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xec0(%rsp)
movq $0x0, 0xed0(%rsp)
movups 0x173ac(%rip), %xmm0    # 0x1b1c8
movaps %xmm0, 0xec0(%rsp)
movq $0x0, 0xed0(%rsp)
leaq 0xec0(%rsp), %rax
movq %rax, 0xed8(%rsp)
movq $0x6, 0xee0(%rsp)
leaq 0xebf(%rsp), %rdi
movq %rdi, 0x198(%rsp)
callq 0x57e0
movq 0x190(%rsp), %rdi
movq 0x198(%rsp), %rcx
movq 0xed8(%rsp), %rsi
movq 0xee0(%rsp), %rdx
callq 0x57f0
jmp 0x3e88
leaq 0xfe8(%rsp), %rax
movq %rax, 0x180(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xe90(%rsp)
movq $0x0, 0xea0(%rsp)
movups 0x17322(%rip), %xmm0    # 0x1b1e0
movaps %xmm0, 0xe90(%rsp)
movq $0x0, 0xea0(%rsp)
leaq 0xe90(%rsp), %rax
movq %rax, 0xea8(%rsp)
movq $0x6, 0xeb0(%rsp)
leaq 0xe8f(%rsp), %rdi
movq %rdi, 0x188(%rsp)
callq 0x57e0
movq 0x180(%rsp), %rdi
movq 0x188(%rsp), %rcx
movq 0xea8(%rsp), %rsi
movq 0xeb0(%rsp), %rdx
callq 0x57f0
jmp 0x3f2a
leaq 0x1000(%rsp), %rax
movq %rax, 0x170(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xe60(%rsp)
movq $0x0, 0xe70(%rsp)
movups 0x17298(%rip), %xmm0    # 0x1b1f8
movaps %xmm0, 0xe60(%rsp)
movq $0x0, 0xe70(%rsp)
leaq 0xe60(%rsp), %rax
movq %rax, 0xe78(%rsp)
movq $0x6, 0xe80(%rsp)
leaq 0xe5f(%rsp), %rdi
movq %rdi, 0x178(%rsp)
callq 0x57e0
movq 0x170(%rsp), %rdi
movq 0x178(%rsp), %rcx
movq 0xe78(%rsp), %rsi
movq 0xe80(%rsp), %rdx
callq 0x57f0
jmp 0x3fcc
leaq 0x1018(%rsp), %rax
movq %rax, 0x160(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xe30(%rsp)
movq $0x0, 0xe40(%rsp)
movups 0x1720e(%rip), %xmm0    # 0x1b210
movaps %xmm0, 0xe30(%rsp)
movq $0x1, 0xe40(%rsp)
leaq 0xe30(%rsp), %rax
movq %rax, 0xe48(%rsp)
movq $0x6, 0xe50(%rsp)
leaq 0xe2f(%rsp), %rdi
movq %rdi, 0x168(%rsp)
callq 0x57e0
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %rcx
movq 0xe48(%rsp), %rsi
movq 0xe50(%rsp), %rdx
callq 0x57f0
jmp 0x406e
leaq 0x1030(%rsp), %rax
movq %rax, 0x150(%rsp)
movq %rax, 0xf80(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xe00(%rsp)
movq $0x0, 0xe10(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0xe10(%rsp)
movups 0x17172(%rip), %xmm0    # 0x1b228
movaps %xmm0, 0xe00(%rsp)
leaq 0xe00(%rsp), %rax
movq %rax, 0xe18(%rsp)
movq $0x6, 0xe20(%rsp)
leaq 0xdff(%rsp), %rdi
movq %rdi, 0x158(%rsp)
callq 0x57e0
movq 0x150(%rsp), %rdi
movq 0x158(%rsp), %rcx
movq 0xe18(%rsp), %rsi
movq 0xe20(%rsp), %rdx
callq 0x57f0
jmp 0x4116
movb $0x0, 0xdfe(%rsp)
leaq 0xf88(%rsp), %rax
movq %rax, 0x1048(%rsp)
movq $0x8, 0x1050(%rsp)
leaq 0xdfd(%rsp), %rdi
movq %rdi, 0x148(%rsp)
callq 0x5890
movq 0x148(%rsp), %rcx
movq 0x1048(%rsp), %rsi
movq 0x1050(%rsp), %rdx
leaq 0x1058(%rsp), %rdi
callq 0x58a0
jmp 0x4176
leaq 0xdfd(%rsp), %rdi
callq 0x5930
leaq 0xf88(%rsp), %rax
movq %rax, 0x138(%rsp)
addq $0xc0, %rax
movq %rax, 0x140(%rsp)
movq 0x140(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x130(%rsp)
callq 0x5940
movq 0x138(%rsp), %rcx
movq 0x130(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x140(%rsp)
jne 0x41a1
leaq 0xdff(%rsp), %rdi
callq 0x5880
leaq 0xe2f(%rsp), %rdi
callq 0x5880
leaq 0xe5f(%rsp), %rdi
callq 0x5880
leaq 0xe8f(%rsp), %rdi
callq 0x5880
leaq 0xebf(%rsp), %rdi
callq 0x5880
leaq 0xeef(%rsp), %rdi
callq 0x5880
leaq 0xf1f(%rsp), %rdi
callq 0x5880
leaq 0xf4f(%rsp), %rdi
callq 0x5880
movups 0x1700a(%rip), %xmm0    # 0x1b250
movaps %xmm0, 0xdc0(%rsp)
movups 0x16feb(%rip), %xmm0    # 0x1b240
movaps %xmm0, 0xdb0(%rsp)
leaq 0xdb0(%rsp), %rax
movq %rax, 0xdd0(%rsp)
movq $0x8, 0xdd8(%rsp)
leaq 0xdaf(%rsp), %rdi
movq %rdi, 0x128(%rsp)
callq 0x57e0
movq 0x128(%rsp), %rcx
movq 0xdd0(%rsp), %rsi
movq 0xdd8(%rsp), %rdx
leaq 0xde0(%rsp), %rdi
callq 0x57f0
jmp 0x42b5
leaq 0xdaf(%rsp), %rdi
callq 0x5880
movb $0x1, 0xcee(%rsp)
leaq 0xd50(%rsp), %rax
movq %rax, 0x118(%rsp)
movq %rax, 0xd48(%rsp)
movups 0x16f77(%rip), %xmm0    # 0x1b260
movaps %xmm0, 0xd20(%rsp)
movq $0x1, 0xd30(%rsp)
leaq 0xd20(%rsp), %rax
movq %rax, 0xd38(%rsp)
movq $0x6, 0xd40(%rsp)
leaq 0xd1f(%rsp), %rdi
movq %rdi, 0x120(%rsp)
callq 0x57e0
movq 0x118(%rsp), %rdi
movq 0x120(%rsp), %rcx
movq 0xd38(%rsp), %rsi
movq 0xd40(%rsp), %rdx
callq 0x57f0
jmp 0x4355
leaq 0xd68(%rsp), %rax
movq %rax, 0x108(%rsp)
movq %rax, 0xd48(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0xd00(%rsp)
movups 0x16ef2(%rip), %xmm0    # 0x1b278
movaps %xmm0, 0xcf0(%rsp)
leaq 0xcf0(%rsp), %rax
movq %rax, 0xd08(%rsp)
movq $0x6, 0xd10(%rsp)
leaq 0xcef(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0x57e0
movq 0x108(%rsp), %rdi
movq 0x110(%rsp), %rcx
movq 0xd08(%rsp), %rsi
movq 0xd10(%rsp), %rdx
callq 0x57f0
jmp 0x43e6
movb $0x0, 0xcee(%rsp)
leaq 0xd50(%rsp), %rax
movq %rax, 0xd80(%rsp)
movq $0x2, 0xd88(%rsp)
leaq 0xced(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq 0x5890
movq 0x100(%rsp), %rcx
movq 0xd80(%rsp), %rsi
movq 0xd88(%rsp), %rdx
leaq 0xd90(%rsp), %rdi
callq 0x58a0
jmp 0x4446
leaq 0xced(%rsp), %rdi
callq 0x5930
leaq 0xd50(%rsp), %rax
movq %rax, 0xf0(%rsp)
addq $0x30, %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0xe8(%rsp)
callq 0x5940
movq 0xf0(%rsp), %rcx
movq 0xe8(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0xf8(%rsp)
jne 0x446f
leaq 0xcef(%rsp), %rdi
callq 0x5880
leaq 0xd1f(%rsp), %rdi
callq 0x5880
movl $0x578, 0xcb8(%rsp) # imm = 0x578
movl $0x578, 0xcbc(%rsp) # imm = 0x578
leaq 0xcb8(%rsp), %rax
movq %rax, 0xcc0(%rsp)
movq $0x2, 0xcc8(%rsp)
leaq 0xcb7(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x57e0
movq 0xe0(%rsp), %rcx
movq 0xcc0(%rsp), %rsi
movq 0xcc8(%rsp), %rdx
leaq 0xcd0(%rsp), %rdi
callq 0x57f0
jmp 0x452d
leaq 0xcb7(%rsp), %rdi
callq 0x5880
callq 0x1a860
movq %rax, 0xd8(%rsp)
jmp 0x4549
movq 0xd8(%rsp), %rsi
leaq 0xa00(%rsp), %rdi
movl $0x6, %edx
callq 0x81c0
jmp 0x4565
leaq 0x9df(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x2360
movq 0xd0(%rsp), %rdx
leaq 0x16b18(%rip), %rsi     # 0x1b0a1
leaq 0x9e0(%rsp), %rdi
callq 0x2280
jmp 0x4598
leaq 0xa00(%rsp), %rdi
leaq 0x9e0(%rsp), %rsi
callq 0x87e0
jmp 0x45af
leaq 0x9e0(%rsp), %rdi
callq 0x2140
leaq 0x9df(%rsp), %rdi
callq 0x2220
leaq 0x9a0(%rsp), %rdi
movl $0x6, %esi
callq 0x102d0
jmp 0x45dd
movl $0x0, 0x92c(%rsp)
movslq 0x92c(%rsp), %rax
movq %rax, 0xc8(%rsp)
leaq 0x11e8(%rsp), %rdi
callq 0x59a0
movq %rax, %rcx
movq 0xc8(%rsp), %rax
cmpq %rcx, %rax
jae 0x4c83
movl 0x92c(%rsp), %edx
incl %edx
leaq 0x16aaa(%rip), %rsi     # 0x1b0d3
xorl %eax, %eax
leaq 0x930(%rsp), %rdi
callq 0x2070
movslq 0x92c(%rsp), %rsi
leaq 0x11e8(%rsp), %rdi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x9a0(%rsp), %rdi
callq 0x10410
jmp 0x4660
leaq 0x9a0(%rsp), %rdi
leaq 0x930(%rsp), %rsi
callq 0x10310
jmp 0x4677
jmp 0x4679
movl 0x92c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x92c(%rsp)
jmp 0x45e8
leaq 0x1248(%rsp), %rdi
callq 0x22c0
leaq 0x1448(%rsp), %rdi
callq 0x22c0
leaq 0x1648(%rsp), %rdi
callq 0x22c0
leaq 0x19a0(%rsp), %rdi
callq 0x57b0
leaq 0x1a10(%rsp), %rdi
callq 0x57b0
leaq 0x1a80(%rsp), %rdi
callq 0x57b0
leaq 0x1af0(%rsp), %rdi
callq 0x57b0
leaq 0x1b70(%rsp), %rdi
callq 0x56e0
leaq 0x1bd0(%rsp), %rdi
callq 0x83a0
jmp 0x5652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x11bf(%rsp), %rdi
callq 0x5880
jmp 0x5652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4806
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x47f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x47ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x10ad(%rsp), %rdi
callq 0x5930
leaq 0x1148(%rsp), %rax
movq %rax, 0xb8(%rsp)
addq $0x48, %rax
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0xb0(%rsp)
callq 0x5940
movq 0xb8(%rsp), %rcx
movq 0xb0(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0xc0(%rsp)
jne 0x47b4
jmp 0x47ec
leaq 0x10af(%rsp), %rdi
callq 0x5880
leaq 0x10df(%rsp), %rdi
callq 0x5880
leaq 0x110f(%rsp), %rdi
callq 0x5880
testb $0x1, 0x10ae(%rsp)
jne 0x481f
jmp 0x4874
movq 0x1140(%rsp), %rax
leaq 0x1148(%rsp), %rcx
cmpq %rax, %rcx
movq %rax, 0xa8(%rsp)
je 0x4872
movq 0xa8(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0xa0(%rsp)
callq 0x5940
movq 0xa0(%rsp), %rax
leaq 0x1148(%rsp), %rcx
cmpq %rcx, %rax
movq %rax, 0xa8(%rsp)
jne 0x483c
jmp 0x4874
jmp 0x5645
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x1073(%rsp), %rdi
callq 0x5880
jmp 0x5638
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4a36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4a1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4a02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x49f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x49e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x49db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0xdfd(%rsp), %rdi
callq 0x5930
leaq 0xf88(%rsp), %rax
movq %rax, 0x90(%rsp)
addq $0xc0, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x88(%rsp)
callq 0x5940
movq 0x90(%rsp), %rcx
movq 0x88(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x98(%rsp)
jne 0x49a3
jmp 0x49db
leaq 0xdff(%rsp), %rdi
callq 0x5880
leaq 0xe2f(%rsp), %rdi
callq 0x5880
leaq 0xe5f(%rsp), %rdi
callq 0x5880
leaq 0xe8f(%rsp), %rdi
callq 0x5880
leaq 0xebf(%rsp), %rdi
callq 0x5880
leaq 0xeef(%rsp), %rdi
callq 0x5880
leaq 0xf1f(%rsp), %rdi
callq 0x5880
leaq 0xf4f(%rsp), %rdi
callq 0x5880
testb $0x1, 0xdfe(%rsp)
jne 0x4a4f
jmp 0x4a9e
movq 0xf80(%rsp), %rax
leaq 0xf88(%rsp), %rcx
cmpq %rax, %rcx
movq %rax, 0x80(%rsp)
je 0x4a9c
movq 0x80(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x78(%rsp)
callq 0x5940
movq 0x78(%rsp), %rax
leaq 0xf88(%rsp), %rcx
cmpq %rcx, %rax
movq %rax, 0x80(%rsp)
jne 0x4a6c
jmp 0x4a9e
jmp 0x562b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0xdaf(%rsp), %rdi
callq 0x5880
jmp 0x561e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4b65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4b58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0xced(%rsp), %rdi
callq 0x5930
leaq 0xd50(%rsp), %rax
movq %rax, 0x68(%rsp)
addq $0x30, %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x60(%rsp)
callq 0x5940
movq 0x68(%rsp), %rcx
movq 0x60(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x70(%rsp)
jne 0x4b2f
jmp 0x4b58
leaq 0xcef(%rsp), %rdi
callq 0x5880
leaq 0xd1f(%rsp), %rdi
callq 0x5880
testb $0x1, 0xcee(%rsp)
jne 0x4b7e
jmp 0x4bc4
movq 0xd48(%rsp), %rax
leaq 0xd50(%rsp), %rcx
cmpq %rax, %rcx
movq %rax, 0x58(%rsp)
je 0x4bc2
movq 0x58(%rsp), %rdi
addq $-0x18, %rdi
movq %rdi, 0x50(%rsp)
callq 0x5940
movq 0x50(%rsp), %rax
leaq 0xd50(%rsp), %rcx
cmpq %rcx, %rax
movq %rax, 0x58(%rsp)
jne 0x4b98
jmp 0x4bc4
jmp 0x5611
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0xcb7(%rsp), %rdi
callq 0x5880
jmp 0x5604
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x55f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4c3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x9e0(%rsp), %rdi
callq 0x2140
leaq 0x9df(%rsp), %rdi
callq 0x2220
jmp 0x55ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x55ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x55dd
leaq 0x8f0(%rsp), %rdi
leaq 0x9a0(%rsp), %rsi
callq 0x5660
jmp 0x4c9a
leaq 0xa00(%rsp), %rdi
leaq 0x8f0(%rsp), %rsi
callq 0x88b0
jmp 0x4cb1
leaq 0x8f0(%rsp), %rdi
callq 0x56e0
movl $0x0, 0x8ec(%rsp)
movslq 0x8ec(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x11a0(%rsp), %rdi
callq 0x59e0
movq %rax, %rcx
movq 0x48(%rsp), %rax
cmpq %rcx, %rax
jae 0x4f2f
leaq 0x8a0(%rsp), %rdi
callq 0x5710
leaq 0x87f(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x2360
movq 0x40(%rsp), %rdx
leaq 0x1636a(%rip), %rsi     # 0x1b089
leaq 0x880(%rsp), %rdi
callq 0x2280
jmp 0x4d2e
leaq 0x8a0(%rsp), %rdi
leaq 0x880(%rsp), %rsi
callq 0x10500
jmp 0x4d45
leaq 0x880(%rsp), %rdi
callq 0x2140
leaq 0x87f(%rsp), %rdi
callq 0x2220
movslq 0x8ec(%rsp), %rsi
leaq 0x1090(%rsp), %rdi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x8a0(%rsp), %rdi
callq 0x10620
jmp 0x4d87
movl $0x0, 0x878(%rsp)
movslq 0x878(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0x11a0(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5a00
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jae 0x4e9e
movslq 0x8ec(%rsp), %rsi
leaq 0x11a0(%rsp), %rdi
callq 0x5a00
movq %rax, %rdi
movslq 0x878(%rsp), %rsi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x8a0(%rsp), %rdi
callq 0x105f0
jmp 0x4e01
jmp 0x4e03
movl 0x878(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x878(%rsp)
jmp 0x4d92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x8f0(%rsp), %rdi
callq 0x56e0
jmp 0x55dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4e76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x880(%rsp), %rdi
callq 0x2140
leaq 0x87f(%rsp), %rdi
callq 0x2220
jmp 0x4f1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x4f1d
leaq 0x830(%rsp), %rdi
leaq 0x8a0(%rsp), %rsi
callq 0x5740
jmp 0x4eb5
leaq 0xa00(%rsp), %rdi
leaq 0x830(%rsp), %rsi
callq 0x89c0
jmp 0x4ecc
leaq 0x830(%rsp), %rdi
callq 0x57b0
leaq 0x8a0(%rsp), %rdi
callq 0x57b0
movl 0x8ec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8ec(%rsp)
jmp 0x4cc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x830(%rsp), %rdi
callq 0x57b0
leaq 0x8a0(%rsp), %rdi
callq 0x57b0
jmp 0x55dd
movl $0x0, 0x82c(%rsp)
movslq 0x82c(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x1058(%rsp), %rdi
callq 0x59e0
movq %rax, %rcx
movq 0x30(%rsp), %rax
cmpq %rcx, %rax
jae 0x517a
leaq 0x7e0(%rsp), %rdi
callq 0x5710
leaq 0x7bf(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x2360
movq 0x28(%rsp), %rdx
leaq 0x160f4(%rip), %rsi     # 0x1b084
leaq 0x7c0(%rsp), %rdi
callq 0x2280
jmp 0x4f9f
leaq 0x7e0(%rsp), %rdi
leaq 0x7c0(%rsp), %rsi
callq 0x10500
jmp 0x4fb6
leaq 0x7c0(%rsp), %rdi
callq 0x2140
leaq 0x7bf(%rsp), %rdi
callq 0x2220
movslq 0x82c(%rsp), %rsi
leaq 0xde0(%rsp), %rdi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x7e0(%rsp), %rdi
callq 0x10620
jmp 0x4ff8
movl $0x0, 0x7b8(%rsp)
movslq 0x7b8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x1058(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5a00
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jae 0x50e9
movslq 0x82c(%rsp), %rsi
leaq 0x1058(%rsp), %rdi
callq 0x5a00
movq %rax, %rdi
movslq 0x7b8(%rsp), %rsi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x7e0(%rsp), %rdi
callq 0x105f0
jmp 0x5072
jmp 0x5074
movl 0x7b8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x7b8(%rsp)
jmp 0x5003
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x50c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x7c0(%rsp), %rdi
callq 0x2140
leaq 0x7bf(%rsp), %rdi
callq 0x2220
jmp 0x5168
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x5168
leaq 0x770(%rsp), %rdi
leaq 0x7e0(%rsp), %rsi
callq 0x5740
jmp 0x5100
leaq 0xa00(%rsp), %rdi
leaq 0x770(%rsp), %rsi
callq 0x89c0
jmp 0x5117
leaq 0x770(%rsp), %rdi
callq 0x57b0
leaq 0x7e0(%rsp), %rdi
callq 0x57b0
movl 0x82c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x82c(%rsp)
jmp 0x4f3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x770(%rsp), %rdi
callq 0x57b0
leaq 0x7e0(%rsp), %rdi
callq 0x57b0
jmp 0x55dd
movl $0x0, 0x76c(%rsp)
movslq 0x76c(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0xd90(%rsp), %rdi
callq 0x59e0
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x53c5
leaq 0x720(%rsp), %rdi
callq 0x5710
leaq 0x6ff(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x2360
movq 0x10(%rsp), %rdx
leaq 0x15ead(%rip), %rsi     # 0x1b088
leaq 0x700(%rsp), %rdi
callq 0x2280
jmp 0x51ea
leaq 0x720(%rsp), %rdi
leaq 0x700(%rsp), %rsi
callq 0x10500
jmp 0x5201
leaq 0x700(%rsp), %rdi
callq 0x2140
leaq 0x6ff(%rsp), %rdi
callq 0x2220
movslq 0x76c(%rsp), %rsi
leaq 0xcd0(%rsp), %rdi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x720(%rsp), %rdi
callq 0x10620
jmp 0x5243
movl $0x0, 0x6f8(%rsp)
movslq 0x6f8(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0xd90(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5a00
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x5334
movslq 0x76c(%rsp), %rsi
leaq 0xd90(%rsp), %rdi
callq 0x5a00
movq %rax, %rdi
movslq 0x6f8(%rsp), %rsi
callq 0x59c0
cvtsi2sdl (%rax), %xmm0
leaq 0x720(%rsp), %rdi
callq 0x105f0
jmp 0x52bd
jmp 0x52bf
movl 0x6f8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x6f8(%rsp)
jmp 0x524e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x530c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x700(%rsp), %rdi
callq 0x2140
leaq 0x6ff(%rsp), %rdi
callq 0x2220
jmp 0x53b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x53b3
leaq 0x6b0(%rsp), %rdi
leaq 0x720(%rsp), %rsi
callq 0x5740
jmp 0x534b
leaq 0xa00(%rsp), %rdi
leaq 0x6b0(%rsp), %rsi
callq 0x89c0
jmp 0x5362
leaq 0x6b0(%rsp), %rdi
callq 0x57b0
leaq 0x720(%rsp), %rdi
callq 0x57b0
movl 0x76c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x76c(%rsp)
jmp 0x5185
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x6b0(%rsp), %rdi
callq 0x57b0
leaq 0x720(%rsp), %rdi
callq 0x57b0
jmp 0x55dd
leaq 0xa00(%rsp), %rdi
callq 0x101d0
jmp 0x53d4
leaq 0xa00(%rsp), %rdi
callq 0xfdb0
jmp 0x53e3
leaq 0xa00(%rsp), %rdi
callq 0x10250
jmp 0x53f2
leaq 0xa00(%rsp), %rdi
callq 0xa0c0
jmp 0x5401
leaq 0xa00(%rsp), %rdi
callq 0x10290
jmp 0x5410
leaq 0x15cc1(%rip), %rax     # 0x1b0d8
movq %rax, 0x6a8(%rsp)
movq 0x6a8(%rsp), %rsi
leaq 0x4a8(%rsp), %rdi
movl $0x10, %edx
callq 0x2230
jmp 0x543b
leaq 0x2a8(%rsp), %rdi
callq 0x2330
jmp 0x544a
movq 0x6a8(%rsp), %rsi
leaq 0x2a8(%rsp), %rdi
movl $0x8, %edx
callq 0x2050
jmp 0x5466
leaq 0x4a8(%rsp), %rdi
callq 0x2190
movb %al, 0x7(%rsp)
jmp 0x5479
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x5486
jmp 0x552a
leaq 0x288(%rsp), %rdi
leaq 0xa00(%rsp), %rsi
callq 0xffb0
jmp 0x549d
leaq 0x2a8(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x21c0
jmp 0x54b4
leaq 0x288(%rsp), %rdi
callq 0x2140
leaq 0x2a8(%rsp), %rdi
callq 0x22a0
jmp 0x54d0
jmp 0x552a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x55d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
jmp 0x55c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2550(%rsp)
movl %eax, 0x254c(%rsp)
leaq 0x288(%rsp), %rdi
callq 0x2140
jmp 0x55c3
leaq 0x2a8(%rsp), %rdi
callq 0x22c0
leaq 0x4a8(%rsp), %rdi
callq 0x22c0
leaq 0x9a0(%rsp), %rdi
callq 0x56e0
leaq 0xa00(%rsp), %rdi
callq 0x83a0
leaq 0xcd0(%rsp), %rdi
callq 0x5940
leaq 0xd90(%rsp), %rdi
callq 0x5a20
leaq 0xde0(%rsp), %rdi
callq 0x5940
leaq 0x1058(%rsp), %rdi
callq 0x5a20
leaq 0x1090(%rsp), %rdi
callq 0x5940
leaq 0x11a0(%rsp), %rdi
callq 0x5a20
leaq 0x11e8(%rsp), %rdi
callq 0x5940
xorl %eax, %eax
addq $0x2838, %rsp           # imm = 0x2838
retq
leaq 0x2a8(%rsp), %rdi
callq 0x22c0
leaq 0x4a8(%rsp), %rdi
callq 0x22c0
leaq 0x9a0(%rsp), %rdi
callq 0x56e0
leaq 0xa00(%rsp), %rdi
callq 0x83a0
leaq 0xcd0(%rsp), %rdi
callq 0x5940
leaq 0xd90(%rsp), %rdi
callq 0x5a20
leaq 0xde0(%rsp), %rdi
callq 0x5940
leaq 0x1058(%rsp), %rdi
callq 0x5a20
leaq 0x1090(%rsp), %rdi
callq 0x5940
leaq 0x11a0(%rsp), %rdi
callq 0x5a20
leaq 0x11e8(%rsp), %rdi
callq 0x5940
movq 0x2550(%rsp), %rdi
callq 0x2350
nop