// File: WShabti-Team[P]WShabtiPict/main/WShabtiPict.cpp
// Function: main
int main(int argc, char** argv)
{
    bool is_interactive = true;
    string source_code_path = "";

    if(argc != 1)   {  is_interactive = false; }
//----------------------------------------------------------------------------------------------------------------------------------------------------

    if(is_interactive)
    {
        //TAKE SOURCECODE PATH
        cout << "SourceCode Path: ";
        cin >> source_code_path;
    

    //TAKE PROTOTYPE FORM SOURCECODE
    ofstream parameter_file;
    vector<string> prototypes = get_prototypes(source_code_path);
    vector<string> prototypes_tested;
    string possible_values_of_parameter = "";

    //TAKE CLASS NAME FORM PROTOTYPE
    string class_name = get_class_name(source_code_path);

    //CREATE DIRECTORY FOR CONTAINING FINAL FILES (.java class and .csv files)
    filesystem::create_directory("./JUnitTests/"+class_name);

//----------------------------------------------------------------------------------------------------------------------------------------------------

    //CREATE ALL TEST 
    for(auto prototype : prototypes)
    {
        //GET ALL POSSIBILE VALUES FOR PARAMETERS

        vector<string> method_and_values = get_method_and_values_name(prototype);
        string method_name = method_and_values[0];
        method_and_values.erase(method_and_values.begin()); //method name is saved in the variable so we can erase it from the vector and leave only parameters

        cout<<"\n-----METHOD: "<<prototype<<"-----"<<endl;
        cout<<"#Do you want skip this method? (y/n)"<<endl;
        string skip_choice = "n";
        do
        {

            cout<<"Please specify your choice: ";
            cin>>skip_choice;

        } while (skip_choice.compare("y") != 0 && skip_choice.compare("n")!= 0);

        //IF METHOD ISN'T SKIPPED
        if(skip_choice.compare("n")==0)
        {

            cout<<endl<<"#Do you want specify input file source? (y/n)"<<endl;
            string input_source = "n";
            do
            {

                cout<<"Please specify your choice: ";
                cin>>input_source;

            } while (input_source.compare("y") != 0 && input_source.compare("n")!= 0);

            parameter_file.open(PARAMETER_FILE, ios_base::out);
            prototypes_tested.push_back(prototype); //Method is added to the prototypes to test because it wasn't skipped

            //IF TERMINAL INPUT MODE IS CHOSEN
            if(input_source.compare("n") == 0)
            {
                for(auto parameter : method_and_values)
                {
                    cout<<endl<<"Please specify, separated by a comma, all possible values of \""<<parameter<<"\""<<endl ;
                    cout<<"For a range of numbers you can use the syntax \"start:stop:step\": ";
                    cin>>possible_values_of_parameter;

                    //IF LAST LINE
                    if(parameter.compare(method_and_values.back()) != 0)
                    {
                        parameter_file<<parameter<<":"<<possible_values_of_parameter<<endl;
                    }  
                    else
                    {
                        parameter_file<<parameter<<":"<<possible_values_of_parameter;
                    }
                }

                cout<<endl<<"#Do you want specify Exclusive Constraints? (y/n)"<<endl;
                string constraints_choice = "n";
                do
                {
                    cout<<"Please specify your choice: ";
                    cin>>constraints_choice;
                } while (constraints_choice.compare("y") != 0 && constraints_choice.compare("n")!= 0);
                
                //IF CONSTRAINTS ARE DESIRED
                if(constraints_choice.compare("y") == 0)   
                {  
                    parameter_file<<endl<<"#CONSTRAINTS";
                    cout<<endl<<"To specify a combination to exclude, use the syntax \"value1,value2,...\"."<<endl;
                    cout<<"Use \"*\" if you don't care about a parameter."<<endl;
                }

                string input_constraint = "";
                
                while(constraints_choice.compare("y") == 0)
                {
                    
                    cout<<endl<<"Please specify a combination to exclude or \"stop\" to terminate: ";
                    cin>>input_constraint;
                    //IF STRING "stop" is NOT used DURING CONSTRAINT SPECIFICATION
                    if(input_constraint.compare("stop") != 0)
                    {
                        parameter_file << endl << input_constraint;
                    }
                    else
                    {
                        break; //exit from while if word "stop" is used
                    }
                }
                parameter_file.close();
            }
            //IF FILE INPUT MODE IS CHOSEN
            else
            {
                cout<<"Please specify the parameter file path: ";
                string parameter_input_file_path = "";
                cin>>parameter_input_file_path;
                //---------COPY INPUT FILE IN THE OUTPUT DIRECTORY---------// 
                ifstream source(parameter_input_file_path, ios::binary);
                ofstream dest(PARAMETER_FILE, ios::binary);

                istreambuf_iterator<char> begin_source(source);
                istreambuf_iterator<char> end_source;
                ostreambuf_iterator<char> begin_dest(dest);

                copy(begin_source, end_source, begin_dest);

                source.close();
                dest.close();
                //---------COPY INPUT FILE IN THE OUTPUT DIRECTORY---------// 
            }

//----------------------------------------------------------------------------------------------------------------------------------------------------
            
            //GENERATE TEST CASES
            cout<<"\nPlease specify the order of combinations for \""<<method_name<<"\": ";
            int k_degree = 0;
            cin>>k_degree;

            bool is_k_degree_out_of_bound = ((k_degree) > 0) && ((k_degree) <= method_and_values.size());
            assert(("K_DEGREE IS INCORRECT!",is_k_degree_out_of_bound));

            test_generator(k_degree, PARAMETER_FILE, TEST_CASE_FILE);

//----------------------------------------------------------------------------------------------------------------------------------------------------

            //GET ALL POSSIBILE ORACLES
            ifstream test_case_input_file;
            test_case_input_file.open(TEST_CASE_FILE, std::ios_base::in);
            vector<string> oracle;
            string test_case = "";
            string test_case_oracle = "";

            cout<<"\n-----ORACLE: "<<prototype<<"-----"<<endl;
            cout<<"Please specify the oracle for the following possible combinations"<<endl;
            cout<<"For a range of numbers you can use the syntax \"expected_value:delta\""<<endl;

            while(!test_case_input_file.eof())
            {
                getline(test_case_input_file, test_case);
                cout<<method_name<<"("<<test_case<<"): ";
                cin>>test_case_oracle;
                oracle.push_back(test_case_oracle);
            }

            append_oracle_to_csv(oracle, TEST_CASE_FILE,"./JUnitTests/"+class_name+"/"+method_name+"_test.csv");
        }
    }

//----------------------------------------------------------------------------------------------------------------------------------------------------
    
    //CREATE JAVA TEST CLASS
    test_source_code_generate(source_code_path, "./JUnitTests/"+class_name+"/", class_name, prototypes_tested);

//----------------------------------------------------------------------------------------------------------------------------------------------------

    //CONCLUSION
    cout<<endl<<"Your tests have been generated, please check JUnitTests/"+class_name+"/"<<endl;
    cout<<"WARNING: Default constructor is used for class "<<class_name<<". If needed, complete it in the code."<<endl;

//----------------------------------------------------------------------------------------------------------------------------------------------------
    }

    else
    {
        string mode = "";

        mode = MODE;
        source_code_path = SOURCE;

        //TAKE PROTOTYPE FORM SOURCECODE
        vector<string> all_prototypes = get_prototypes(source_code_path);
        string prototype;

        bool is_out_of_bound = ((stoi(PARAMETER)) > 0) && ((stoi(PARAMETER)) <= all_prototypes.size());
        assert(("INDEX OF METHOD TO TEST IS INCORRECT!",is_out_of_bound));

        //TAKE THE METHOD TO TEST
        prototype = all_prototypes[stoi(PARAMETER)-1];

        //GET CLASS NAME
        string class_name = get_class_name(source_code_path);

        if(mode.compare(TEST_CASE_MODE) == 0)
        {
            string parameter_input_file_path = "";

            //CREATE DIRECTORY FOR CONTAINING FINAL FILES (.java class and .csv files)
            filesystem::create_directory("./JUnitTests/"+class_name);
 
            parameter_input_file_path = INPUT_FILE;

            //---------COPY INPUT FILE IN THE OUTPUT DIRECTORY---------// 
                ifstream source(parameter_input_file_path, ios::binary);
                ofstream dest(PARAMETER_FILE, ios::binary);

                istreambuf_iterator<char> begin_source(source);
                istreambuf_iterator<char> end_source;
                ostreambuf_iterator<char> begin_dest(dest);

                copy(begin_source, end_source, begin_dest);

                source.close();
                dest.close();
            //---------COPY INPUT FILE IN THE OUTPUT DIRECTORY---------//

            bool is_k_degree_out_of_bound = (stoi(K_DEGREE) > 0) && (stoi(K_DEGREE) <= (get_method_and_values_name(prototype).size()-1));
            assert(("K_DEGREE IS INCORRECT!",is_k_degree_out_of_bound));

            test_generator(stoi(K_DEGREE), PARAMETER_FILE, TEST_CASE_FILE);
            cout<<"Your test cases for \""<<prototype<<"\" have been generated, please check tmp/test_case.csv"<<endl;
        }
        
        else if(mode.compare(ORACLE_GENERATION_MODE) == 0)
        {
            vector<string> method_and_values = get_method_and_values_name(prototype);
            string method_name = method_and_values[0];
        
            //GET ALL POSSIBILE ORACLES
            ifstream test_case_input_file;
            
            test_case_input_file.open(INPUT_FILE, std::ios_base::in);
            vector<string> oracle;
            string test_case = "";
            string test_case_oracle = "";

            cout<<"\n-----ORACLE: "<<prototype<<"-----"<<endl;
            cout<<"Please specify the oracle for the following possible combinations"<<endl;
            cout<<"For a range of numbers you can use the syntax \"expected_value:delta\""<<endl;

            while(!test_case_input_file.eof())
            {
                getline(test_case_input_file, test_case);
                cout<<method_name<<"("<<test_case<<"): ";
                cin>>test_case_oracle;
                oracle.push_back(test_case_oracle);
            }

            append_oracle_to_csv(oracle, TEST_CASE_FILE,"./JUnitTests/"+class_name+"/"+method_name+"_test.csv");
            cout<<endl<<"Your CSV with Oracles has been generated, please check JUnitTests/"+class_name+"/"+method_name+"_test.csv"<<endl;
        }
    
        else if(mode.compare(JUNIT_TEST_CLASS_GENERATION_MODE) == 0)
        {
            vector<string> prototype_tested;
            prototype_tested.push_back(prototype);
            test_source_code_generate(source_code_path, "./JUnitTests/"+class_name+"/", class_name, prototype_tested);
            cout<<"Your test has been generated, please check JUnitTests/"+class_name+"/"<<endl;
            cout<<"WARNING: Default constructor is used for class "<<class_name<<". If needed, complete it in the code."<<endl;
        }
    }
    
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d90, %rsp           # imm = 0x1D90
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x1, -0x11(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x1a10(%rbp)
callq 0x79e0
movq -0x1a10(%rbp), %rdx
leaq 0x5bf7(%rip), %rsi      # 0x65c32
leaq -0x38(%rbp), %rdi
callq 0xd700
jmp 0x60046
leaq -0x39(%rbp), %rdi
callq 0x7660
cmpl $0x1, -0x8(%rbp)
je 0x60075
movb $0x0, -0x11(%rbp)
jmp 0x60075
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x7660
jmp 0x62f8d
testb $0x1, -0x11(%rbp)
je 0x6191a
movq 0x31f1a(%rip), %rdi     # 0x91fa0
leaq 0x5d11(%rip), %rsi      # 0x65d9e
callq 0x75d0
jmp 0x60094
movq 0x31f3d(%rip), %rdi     # 0x91fd8
leaq -0x38(%rbp), %rsi
callq 0x7760
jmp 0x600a6
leaq -0x250(%rbp), %rdi
callq 0x7970
jmp 0x600b4
leaq -0x288(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x600c6
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x35ee0
jmp 0x600db
leaq -0x288(%rbp), %rdi
callq 0x73e0
leaq -0x2a0(%rbp), %rdi
callq 0x32b00
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x1a18(%rbp)
callq 0x79e0
movq -0x1a18(%rbp), %rdx
leaq 0x5b1e(%rip), %rsi      # 0x65c32
leaq -0x2c0(%rbp), %rdi
callq 0xd700
jmp 0x60122
leaq -0x2c1(%rbp), %rdi
callq 0x7660
leaq -0x308(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x60140
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x35b50
jmp 0x60155
leaq -0x308(%rbp), %rdi
callq 0x73e0
leaq 0x5c48(%rip), %rsi      # 0x65db0
leaq -0x350(%rbp), %rdi
leaq -0x2e8(%rbp), %rdx
callq 0x5ebf0
jmp 0x6017d
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rsi
movl $0x2, %edx
callq 0x62fa0
jmp 0x60197
leaq -0x330(%rbp), %rdi
callq 0x7260
jmp 0x601a5
leaq -0x330(%rbp), %rdi
callq 0x63030
leaq -0x350(%rbp), %rdi
callq 0x73e0
leaq -0x268(%rbp), %rax
movq %rax, -0x358(%rbp)
movq -0x358(%rbp), %rdi
callq 0x33300
movq %rax, -0x360(%rbp)
movq -0x358(%rbp), %rdi
callq 0x33180
movq %rax, -0x368(%rbp)
leaq -0x360(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x34570
testb $0x1, %al
jne 0x6020d
jmp 0x6160b
leaq -0x360(%rbp), %rdi
callq 0x339f0
movq %rax, %rsi
leaq -0x388(%rbp), %rdi
callq 0x7270
jmp 0x6022a
leaq -0x3c0(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x7270
jmp 0x6023f
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x362a0
jmp 0x60254
leaq -0x3c0(%rbp), %rdi
callq 0x73e0
xorl %eax, %eax
movl %eax, %esi
leaq -0x3a0(%rbp), %rdi
callq 0x32c40
movq %rax, %rsi
leaq -0x3e0(%rbp), %rdi
callq 0x7270
jmp 0x60281
leaq -0x3a0(%rbp), %rdi
movq %rdi, -0x1a28(%rbp)
callq 0x33300
movq %rax, -0x3f0(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x630d0
movq -0x1a28(%rbp), %rdi
movq -0x3e8(%rbp), %rsi
callq 0x63060
movq %rax, -0x1a20(%rbp)
jmp 0x602ca
movq -0x1a20(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movq 0x31cc1(%rip), %rdi     # 0x91fa0
leaq 0x5ad8(%rip), %rsi      # 0x65dbe
callq 0x75d0
movq %rax, -0x1a30(%rbp)
jmp 0x602f4
movq -0x1a30(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x7560
movq %rax, -0x1a38(%rbp)
jmp 0x60310
movq -0x1a38(%rbp), %rdi
leaq 0x5aaf(%rip), %rsi      # 0x65dcd
callq 0x75d0
movq %rax, -0x1a40(%rbp)
jmp 0x6032c
movq -0x1a40(%rbp), %rdi
movq 0x31c26(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x60341
movq 0x31c58(%rip), %rdi     # 0x91fa0
leaq 0x5a84(%rip), %rsi      # 0x65dd3
callq 0x75d0
movq %rax, -0x1a48(%rbp)
jmp 0x6035d
movq -0x1a48(%rbp), %rdi
movq 0x31bf5(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x60372
leaq -0x419(%rbp), %rdi
movq %rdi, -0x1a50(%rbp)
callq 0x79e0
movq -0x1a50(%rbp), %rdx
leaq 0x5098(%rip), %rsi      # 0x6542b
leaq -0x418(%rbp), %rdi
callq 0xd700
jmp 0x603a1
leaq -0x419(%rbp), %rdi
callq 0x7660
movq 0x31bec(%rip), %rdi     # 0x91fa0
leaq 0x5a3d(%rip), %rsi      # 0x65df8
callq 0x75d0
jmp 0x603c2
movq 0x31c0f(%rip), %rdi     # 0x91fd8
leaq -0x418(%rbp), %rsi
callq 0x7760
jmp 0x603d7
jmp 0x603d9
leaq -0x418(%rbp), %rdi
leaq 0x5148(%rip), %rsi      # 0x6552f
callq 0x7190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1a51(%rbp)
je 0x6041a
leaq -0x418(%rbp), %rdi
leaq 0x5022(%rip), %rsi      # 0x6542b
callq 0x7190
cmpl $0x0, %eax
setne %al
movb %al, -0x1a51(%rbp)
movb -0x1a51(%rbp), %al
testb $0x1, %al
jne 0x603ad
leaq -0x418(%rbp), %rdi
leaq 0x4ff9(%rip), %rsi      # 0x6542b
callq 0x7190
cmpl $0x0, %eax
jne 0x61595
movq 0x31b59(%rip), %rdi     # 0x91fa0
movq 0x31b12(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1a60(%rbp)
jmp 0x6045c
movq -0x1a60(%rbp), %rdi
leaq 0x59ab(%rip), %rsi      # 0x65e15
callq 0x75d0
movq %rax, -0x1a68(%rbp)
jmp 0x60478
movq -0x1a68(%rbp), %rdi
movq 0x31ada(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6048d
leaq -0x441(%rbp), %rdi
movq %rdi, -0x1a70(%rbp)
callq 0x79e0
movq -0x1a70(%rbp), %rdx
leaq 0x4f7d(%rip), %rsi      # 0x6542b
leaq -0x440(%rbp), %rdi
callq 0xd700
jmp 0x604bc
leaq -0x441(%rbp), %rdi
callq 0x7660
movq 0x31ad1(%rip), %rdi     # 0x91fa0
leaq 0x5922(%rip), %rsi      # 0x65df8
callq 0x75d0
jmp 0x604dd
movq 0x31af4(%rip), %rdi     # 0x91fd8
leaq -0x440(%rbp), %rsi
callq 0x7760
jmp 0x604f2
jmp 0x604f4
leaq -0x440(%rbp), %rdi
leaq 0x502d(%rip), %rsi      # 0x6552f
callq 0x7190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1a71(%rbp)
je 0x60535
leaq -0x440(%rbp), %rdi
leaq 0x4f07(%rip), %rsi      # 0x6542b
callq 0x7190
cmpl $0x0, %eax
setne %al
movb %al, -0x1a71(%rbp)
movb -0x1a71(%rbp), %al
testb $0x1, %al
jne 0x604c8
leaq 0x58fd(%rip), %rsi      # 0x65e43
leaq -0x250(%rbp), %rdi
movl $0x10, %edx
callq 0x7090
jmp 0x60559
leaq -0x2a0(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x32b20
jmp 0x6056e
leaq -0x440(%rbp), %rdi
leaq 0x4eaf(%rip), %rsi      # 0x6542b
callq 0x7190
cmpl $0x0, %eax
jne 0x60ca6
leaq -0x3a0(%rbp), %rax
movq %rax, -0x450(%rbp)
movq -0x450(%rbp), %rdi
callq 0x33300
movq %rax, -0x458(%rbp)
movq -0x450(%rbp), %rdi
callq 0x33180
movq %rax, -0x460(%rbp)
leaq -0x458(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x34570
testb $0x1, %al
jne 0x605da
jmp 0x6094d
leaq -0x458(%rbp), %rdi
callq 0x339f0
movq %rax, %rsi
leaq -0x480(%rbp), %rdi
callq 0x7270
jmp 0x605f7
movq 0x319a2(%rip), %rdi     # 0x91fa0
movq 0x3195b(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1a80(%rbp)
jmp 0x60613
movq -0x1a80(%rbp), %rdi
leaq 0x5832(%rip), %rsi      # 0x65e53
callq 0x75d0
movq %rax, -0x1a88(%rbp)
jmp 0x6062f
movq -0x1a88(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x7560
movq %rax, -0x1a90(%rbp)
jmp 0x6064b
movq -0x1a90(%rbp), %rdi
leaq 0x5665(%rip), %rsi      # 0x65cbe
callq 0x75d0
movq %rax, -0x1a98(%rbp)
jmp 0x60667
movq -0x1a98(%rbp), %rdi
movq 0x318eb(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6067c
movq 0x3191d(%rip), %rdi     # 0x91fa0
leaq 0x5808(%rip), %rsi      # 0x65e92
callq 0x75d0
jmp 0x60691
movq 0x31940(%rip), %rdi     # 0x91fd8
leaq -0x2c0(%rbp), %rsi
callq 0x7760
jmp 0x606a6
leaq -0x3a0(%rbp), %rdi
callq 0x33970
movq %rax, %rsi
leaq -0x480(%rbp), %rdi
callq 0x7060
movl %eax, -0x1a9c(%rbp)
jmp 0x606c9
movl -0x1a9c(%rbp), %eax
cmpl $0x0, %eax
je 0x608e1
leaq -0x250(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x7560
movq %rax, -0x1aa8(%rbp)
jmp 0x606f4
movq -0x1aa8(%rbp), %rdi
leaq 0x441e(%rip), %rsi      # 0x64b20
callq 0x75d0
movq %rax, -0x1ab0(%rbp)
jmp 0x60710
movq -0x1ab0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7560
movq %rax, -0x1ab8(%rbp)
jmp 0x6072c
movq -0x1ab8(%rbp), %rdi
movq 0x31826(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x60741
jmp 0x60930
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62f84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61909
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x73e0
jmp 0x61909
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2c1(%rbp), %rdi
callq 0x7660
jmp 0x618f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x618e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x73e0
jmp 0x618e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x618d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60807
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x63030
leaq -0x350(%rbp), %rdi
callq 0x73e0
jmp 0x618d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x615fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x73e0
jmp 0x615fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x615ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x615e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x419(%rbp), %rdi
callq 0x7660
jmp 0x615e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x615d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x441(%rbp), %rdi
callq 0x7660
jmp 0x615d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x73e0
jmp 0x61587
leaq -0x250(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x7560
movq %rax, -0x1ac0(%rbp)
jmp 0x608fd
movq -0x1ac0(%rbp), %rdi
leaq 0x4215(%rip), %rsi      # 0x64b20
callq 0x75d0
movq %rax, -0x1ac8(%rbp)
jmp 0x60919
movq -0x1ac8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7560
jmp 0x6092e
jmp 0x60930
leaq -0x480(%rbp), %rdi
callq 0x73e0
leaq -0x458(%rbp), %rdi
callq 0x345d0
jmp 0x605be
movq 0x3164c(%rip), %rdi     # 0x91fa0
movq 0x31605(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1ad0(%rbp)
jmp 0x60969
movq -0x1ad0(%rbp), %rdi
leaq 0x555d(%rip), %rsi      # 0x65ed4
callq 0x75d0
movq %rax, -0x1ad8(%rbp)
jmp 0x60985
movq -0x1ad8(%rbp), %rdi
movq 0x315cd(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6099a
leaq -0x4a1(%rbp), %rdi
movq %rdi, -0x1ae0(%rbp)
callq 0x79e0
movq -0x1ae0(%rbp), %rdx
leaq 0x4a70(%rip), %rsi      # 0x6542b
leaq -0x4a0(%rbp), %rdi
callq 0xd700
jmp 0x609c9
leaq -0x4a1(%rbp), %rdi
callq 0x7660
movq 0x315c4(%rip), %rdi     # 0x91fa0
leaq 0x5415(%rip), %rsi      # 0x65df8
callq 0x75d0
jmp 0x609ea
movq 0x315e7(%rip), %rdi     # 0x91fd8
leaq -0x4a0(%rbp), %rsi
callq 0x7760
jmp 0x609ff
jmp 0x60a01
leaq -0x4a0(%rbp), %rdi
leaq 0x4b20(%rip), %rsi      # 0x6552f
callq 0x7190
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1ae1(%rbp)
je 0x60a42
leaq -0x4a0(%rbp), %rdi
leaq 0x49fa(%rip), %rsi      # 0x6542b
callq 0x7190
cmpl $0x0, %eax
setne %al
movb %al, -0x1ae1(%rbp)
movb -0x1ae1(%rbp), %al
testb $0x1, %al
jne 0x609d5
leaq -0x4a0(%rbp), %rdi
leaq 0x4ad5(%rip), %rsi      # 0x6552f
callq 0x7190
cmpl $0x0, %eax
jne 0x60b47
movq 0x314f1(%rip), %rsi     # 0x91f60
leaq -0x250(%rbp), %rdi
callq 0x7640
movq %rax, -0x1af0(%rbp)
jmp 0x60a84
movq -0x1af0(%rbp), %rdi
leaq 0x5474(%rip), %rsi      # 0x65f06
callq 0x75d0
jmp 0x60a99
movq 0x31500(%rip), %rdi     # 0x91fa0
movq 0x314b9(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1af8(%rbp)
jmp 0x60ab5
movq -0x1af8(%rbp), %rdi
leaq 0x5450(%rip), %rsi      # 0x65f13
callq 0x75d0
movq %rax, -0x1b00(%rbp)
jmp 0x60ad1
movq -0x1b00(%rbp), %rdi
movq 0x31481(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x60ae6
movq 0x314b3(%rip), %rdi     # 0x91fa0
leaq 0x5468(%rip), %rsi      # 0x65f5c
callq 0x75d0
movq %rax, -0x1b08(%rbp)
jmp 0x60b02
movq -0x1b08(%rbp), %rdi
movq 0x31450(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x60b17
jmp 0x60b47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4a1(%rbp), %rdi
callq 0x7660
jmp 0x61587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60c95
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x1b10(%rbp)
callq 0x79e0
movq -0x1b10(%rbp), %rdx
leaq 0x50ca(%rip), %rsi      # 0x65c32
leaq -0x4c8(%rbp), %rdi
callq 0xd700
jmp 0x60b76
leaq -0x4c9(%rbp), %rdi
callq 0x7660
leaq -0x4a0(%rbp), %rdi
leaq 0x499f(%rip), %rsi      # 0x6552f
callq 0x7190
cmpl $0x0, %eax
jne 0x60c6a
movq 0x313fb(%rip), %rdi     # 0x91fa0
movq 0x313b4(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1b18(%rbp)
jmp 0x60bba
movq -0x1b18(%rbp), %rdi
leaq 0x53c1(%rip), %rsi      # 0x65f89
callq 0x75d0
jmp 0x60bcf
movq 0x31402(%rip), %rdi     # 0x91fd8
leaq -0x4c8(%rbp), %rsi
callq 0x7760
jmp 0x60be4
leaq -0x4c8(%rbp), %rdi
leaq 0x53d8(%rip), %rsi      # 0x65fca
callq 0x7190
cmpl $0x0, %eax
je 0x60c63
movq 0x3135d(%rip), %rsi     # 0x91f60
leaq -0x250(%rbp), %rdi
callq 0x7640
movq %rax, -0x1b20(%rbp)
jmp 0x60c18
movq -0x1b20(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x7560
jmp 0x60c2d
jmp 0x60c65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4c9(%rbp), %rdi
callq 0x7660
jmp 0x60c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x73e0
jmp 0x60c95
jmp 0x60c6a
jmp 0x60b82
leaq -0x250(%rbp), %rdi
callq 0x7810
jmp 0x60c78
leaq -0x4c8(%rbp), %rdi
callq 0x73e0
leaq -0x4a0(%rbp), %rdi
callq 0x73e0
jmp 0x60ea1
leaq -0x4a0(%rbp), %rdi
callq 0x73e0
jmp 0x61587
movq 0x312f3(%rip), %rdi     # 0x91fa0
leaq 0x531b(%rip), %rsi      # 0x65fcf
callq 0x75d0
jmp 0x60cbb
leaq -0x4f1(%rbp), %rdi
movq %rdi, -0x1b28(%rbp)
callq 0x79e0
movq -0x1b28(%rbp), %rdx
leaq 0x4f56(%rip), %rsi      # 0x65c32
leaq -0x4f0(%rbp), %rdi
callq 0xd700
jmp 0x60cea
leaq -0x4f1(%rbp), %rdi
callq 0x7660
movq 0x312db(%rip), %rdi     # 0x91fd8
leaq -0x4f0(%rbp), %rsi
callq 0x7760
jmp 0x60d0b
leaq -0x700(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x4, %edx
callq 0x78c0
jmp 0x60d25
leaq 0x5117(%rip), %rsi      # 0x65e43
leaq -0x900(%rbp), %rdi
movl $0x4, %edx
callq 0x7670
jmp 0x60d3f
leaq -0x910(%rbp), %rdi
leaq -0x700(%rbp), %rsi
callq 0x63110
leaq -0x920(%rbp), %rdi
callq 0x63170
leaq -0x930(%rbp), %rdi
leaq -0x900(%rbp), %rsi
callq 0x631a0
movups -0x910(%rbp), %xmm0
movaps %xmm0, -0x940(%rbp)
movups -0x920(%rbp), %xmm0
movaps %xmm0, -0x950(%rbp)
movups -0x930(%rbp), %xmm0
movaps %xmm0, -0x960(%rbp)
movq -0x940(%rbp), %rdi
movl -0x938(%rbp), %esi
movq -0x950(%rbp), %rdx
movl -0x948(%rbp), %ecx
movq -0x960(%rbp), %r8
movl -0x958(%rbp), %r9d
callq 0x63210
movb %dl, -0x1b31(%rbp)
movq %rax, -0x1b30(%rbp)
jmp 0x60dd7
movb -0x1b31(%rbp), %al
movq -0x1b30(%rbp), %rcx
movq %rcx, -0x970(%rbp)
movb %al, -0x968(%rbp)
leaq -0x700(%rbp), %rdi
callq 0x7110
jmp 0x60dff
leaq -0x900(%rbp), %rdi
callq 0x7810
jmp 0x60e0d
leaq -0x900(%rbp), %rdi
callq 0x7850
leaq -0x700(%rbp), %rdi
callq 0x7140
leaq -0x4f0(%rbp), %rdi
callq 0x73e0
jmp 0x60ea1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x4f1(%rbp), %rdi
callq 0x7660
jmp 0x61587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60e90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60e84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x900(%rbp), %rdi
callq 0x7850
leaq -0x700(%rbp), %rdi
callq 0x7140
leaq -0x4f0(%rbp), %rdi
callq 0x73e0
jmp 0x61587
movq 0x310f8(%rip), %rdi     # 0x91fa0
leaq 0x5149(%rip), %rsi      # 0x65ff8
callq 0x75d0
movq %rax, -0x1b40(%rbp)
jmp 0x60ebd
movq -0x1b40(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x7560
movq %rax, -0x1b48(%rbp)
jmp 0x60ed9
movq -0x1b48(%rbp), %rdi
leaq 0x4fe9(%rip), %rsi      # 0x65ed0
callq 0x75d0
jmp 0x60eee
movl $0x0, -0x974(%rbp)
movq 0x310d9(%rip), %rdi     # 0x91fd8
leaq -0x974(%rbp), %rsi
callq 0x73d0
jmp 0x60f0d
xorl %eax, %eax
cmpl $0x0, -0x974(%rbp)
movb %al, -0x1b49(%rbp)
jle 0x60f4e
movslq -0x974(%rbp), %rax
movq %rax, -0x1b58(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x32c20
movq %rax, %rcx
movq -0x1b58(%rbp), %rax
cmpq %rcx, %rax
setbe %al
movb %al, -0x1b49(%rbp)
movb -0x1b49(%rbp), %al
andb $0x1, %al
movb %al, -0x975(%rbp)
testb $0x1, -0x975(%rbp)
je 0x60f67
jmp 0x60f86
leaq 0x50d1(%rip), %rdi      # 0x6603f
leaq 0x50fe(%rip), %rsi      # 0x66073
movl $0xb4, %edx
leaq 0x5107(%rip), %rcx      # 0x66088
callq 0x7450
movl -0x974(%rbp), %eax
movl %eax, -0x1b64(%rbp)
leaq -0x999(%rbp), %rdi
movq %rdi, -0x1b60(%rbp)
callq 0x79e0
movq -0x1b60(%rbp), %rdx
leaq 0x4e90(%rip), %rsi      # 0x65e43
leaq -0x998(%rbp), %rdi
callq 0xd700
jmp 0x60fc1
leaq -0x9c1(%rbp), %rdi
movq %rdi, -0x1b70(%rbp)
callq 0x79e0
movq -0x1b70(%rbp), %rdx
leaq 0x50bd(%rip), %rsi      # 0x6609f
leaq -0x9c0(%rbp), %rdi
callq 0xd700
jmp 0x60ff0
movl -0x1b64(%rbp), %edi
leaq -0x998(%rbp), %rsi
leaq -0x9c0(%rbp), %rdx
callq 0x5f520
jmp 0x6100b
leaq -0x9c0(%rbp), %rdi
callq 0x73e0
leaq -0x9c1(%rbp), %rdi
callq 0x7660
leaq -0x998(%rbp), %rdi
callq 0x73e0
leaq -0x999(%rbp), %rdi
callq 0x7660
leaq -0xbd0(%rbp), %rdi
callq 0x76d0
jmp 0x61049
leaq 0x504f(%rip), %rsi      # 0x6609f
leaq -0xbd0(%rbp), %rdi
movl $0x8, %edx
callq 0x7420
jmp 0x61063
leaq -0xbe8(%rbp), %rdi
callq 0x32b00
leaq -0xc09(%rbp), %rdi
movq %rdi, -0x1b78(%rbp)
callq 0x79e0
movq -0x1b78(%rbp), %rdx
leaq 0x4ba2(%rip), %rsi      # 0x65c32
leaq -0xc08(%rbp), %rdi
callq 0xd700
jmp 0x6109e
leaq -0xc09(%rbp), %rdi
callq 0x7660
leaq -0xc31(%rbp), %rdi
movq %rdi, -0x1b80(%rbp)
callq 0x79e0
movq -0x1b80(%rbp), %rdx
leaq 0x4b67(%rip), %rsi      # 0x65c32
leaq -0xc30(%rbp), %rdi
callq 0xd700
jmp 0x610d9
leaq -0xc31(%rbp), %rdi
callq 0x7660
movq 0x30eb4(%rip), %rdi     # 0x91fa0
leaq 0x4fc0(%rip), %rsi      # 0x660b3
callq 0x75d0
movq %rax, -0x1b88(%rbp)
jmp 0x61101
movq -0x1b88(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x7560
movq %rax, -0x1b90(%rbp)
jmp 0x6111d
movq -0x1b90(%rbp), %rdi
leaq 0x4ca2(%rip), %rsi      # 0x65dcd
callq 0x75d0
movq %rax, -0x1b98(%rbp)
jmp 0x61139
movq -0x1b98(%rbp), %rdi
movq 0x30e19(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6114e
movq 0x30e4b(%rip), %rdi     # 0x91fa0
leaq 0x4f66(%rip), %rsi      # 0x660c2
callq 0x75d0
movq %rax, -0x1ba0(%rbp)
jmp 0x6116a
movq -0x1ba0(%rbp), %rdi
movq 0x30de8(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6117f
movq 0x30e1a(%rip), %rdi     # 0x91fa0
leaq 0x4f77(%rip), %rsi      # 0x66104
callq 0x75d0
movq %rax, -0x1ba8(%rbp)
jmp 0x6119b
movq -0x1ba8(%rbp), %rdi
movq 0x30db7(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x611b0
jmp 0x611b2
movq -0xbd0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0xbd0(%rbp,%rax), %rdi
callq 0x7a30
movb %al, -0x1ba9(%rbp)
jmp 0x611d2
movb -0x1ba9(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x611e3
jmp 0x61349
leaq -0xbd0(%rbp), %rdi
leaq -0xc08(%rbp), %rsi
callq 0x70e0
jmp 0x611f8
movq 0x30da1(%rip), %rdi     # 0x91fa0
leaq -0x3e0(%rbp), %rsi
callq 0x7560
movq %rax, -0x1bb8(%rbp)
jmp 0x61214
movq -0x1bb8(%rbp), %rdi
leaq 0x4a8e(%rip), %rsi      # 0x65cb0
callq 0x75d0
movq %rax, -0x1bc0(%rbp)
jmp 0x61230
movq -0x1bc0(%rbp), %rdi
leaq -0xc08(%rbp), %rsi
callq 0x7560
movq %rax, -0x1bc8(%rbp)
jmp 0x6124c
movq -0x1bc8(%rbp), %rdi
leaq 0x4eef(%rip), %rsi      # 0x66149
callq 0x75d0
jmp 0x61261
movq 0x30d70(%rip), %rdi     # 0x91fd8
leaq -0xc30(%rbp), %rsi
callq 0x7760
jmp 0x61276
leaq -0xbe8(%rbp), %rdi
leaq -0xc30(%rbp), %rsi
callq 0x32b20
jmp 0x6128b
jmp 0x611b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x612dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x612c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x9c0(%rbp), %rdi
callq 0x73e0
leaq -0x9c1(%rbp), %rdi
callq 0x7660
leaq -0x998(%rbp), %rdi
callq 0x73e0
leaq -0x999(%rbp), %rdi
callq 0x7660
jmp 0x61587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6157b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc09(%rbp), %rdi
callq 0x7660
jmp 0x6156f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc31(%rbp), %rdi
callq 0x7660
jmp 0x61563
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61557
leaq -0xc50(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
callq 0x47fc0
jmp 0x6135e
leaq -0xc71(%rbp), %rdi
movq %rdi, -0x1bd0(%rbp)
callq 0x79e0
movq -0x1bd0(%rbp), %rdx
leaq 0x4d20(%rip), %rsi      # 0x6609f
leaq -0xc70(%rbp), %rdi
callq 0xd700
jmp 0x6138d
leaq 0x4a1c(%rip), %rsi      # 0x65db0
leaq -0xcf8(%rbp), %rdi
leaq -0x2e8(%rbp), %rdx
callq 0x5ebf0
jmp 0x613a9
leaq 0x485e(%rip), %rdx      # 0x65c0e
leaq -0xcd8(%rbp), %rdi
leaq -0xcf8(%rbp), %rsi
callq 0x5ea00
jmp 0x613c5
leaq -0xcb8(%rbp), %rdi
leaq -0xcd8(%rbp), %rsi
leaq -0x3e0(%rbp), %rdx
callq 0x5ea50
jmp 0x613e1
leaq 0x47e8(%rip), %rdx      # 0x65bd0
leaq -0xc98(%rbp), %rdi
leaq -0xcb8(%rbp), %rsi
callq 0x5ea00
jmp 0x613fd
leaq -0xc50(%rbp), %rdi
leaq -0xc70(%rbp), %rsi
leaq -0xc98(%rbp), %rdx
callq 0x5ef80
jmp 0x61419
leaq -0xc98(%rbp), %rdi
callq 0x73e0
leaq -0xcb8(%rbp), %rdi
callq 0x73e0
leaq -0xcd8(%rbp), %rdi
callq 0x73e0
leaq -0xcf8(%rbp), %rdi
callq 0x73e0
leaq -0xc70(%rbp), %rdi
callq 0x73e0
leaq -0xc71(%rbp), %rdi
callq 0x7660
leaq -0xc50(%rbp), %rdi
callq 0x32bc0
leaq -0xc30(%rbp), %rdi
callq 0x73e0
leaq -0xc08(%rbp), %rdi
callq 0x73e0
leaq -0xbe8(%rbp), %rdi
callq 0x32bc0
leaq -0xbd0(%rbp), %rdi
callq 0x7140
leaq -0x440(%rbp), %rdi
callq 0x73e0
jmp 0x61595
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6153f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61533
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61527
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6151b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6150f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc98(%rbp), %rdi
callq 0x73e0
leaq -0xcb8(%rbp), %rdi
callq 0x73e0
leaq -0xcd8(%rbp), %rdi
callq 0x73e0
leaq -0xcf8(%rbp), %rdi
callq 0x73e0
leaq -0xc70(%rbp), %rdi
callq 0x73e0
leaq -0xc71(%rbp), %rdi
callq 0x7660
leaq -0xc50(%rbp), %rdi
callq 0x32bc0
leaq -0xc30(%rbp), %rdi
callq 0x73e0
leaq -0xc08(%rbp), %rdi
callq 0x73e0
leaq -0xbe8(%rbp), %rdi
callq 0x32bc0
leaq -0xbd0(%rbp), %rdi
callq 0x7140
leaq -0x440(%rbp), %rdi
callq 0x73e0
jmp 0x615d6
leaq -0x418(%rbp), %rdi
callq 0x73e0
leaq -0x3e0(%rbp), %rdi
callq 0x73e0
leaq -0x3a0(%rbp), %rdi
callq 0x32bc0
leaq -0x388(%rbp), %rdi
callq 0x73e0
leaq -0x360(%rbp), %rdi
callq 0x345d0
jmp 0x601f1
leaq -0x418(%rbp), %rdi
callq 0x73e0
leaq -0x3e0(%rbp), %rdi
callq 0x73e0
leaq -0x3a0(%rbp), %rdi
callq 0x32bc0
leaq -0x388(%rbp), %rdi
callq 0x73e0
jmp 0x618d9
leaq -0xd18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x6161d
leaq 0x478c(%rip), %rsi      # 0x65db0
leaq -0xd58(%rbp), %rdi
leaq -0x2e8(%rbp), %rdx
callq 0x5ebf0
jmp 0x61639
leaq 0x45ce(%rip), %rdx      # 0x65c0e
leaq -0xd38(%rbp), %rdi
leaq -0xd58(%rbp), %rsi
callq 0x5ea00
jmp 0x61655
leaq -0xd78(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x7270
jmp 0x6166a
leaq -0xd90(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x47fc0
jmp 0x6167f
leaq -0xd18(%rbp), %rdi
leaq -0xd38(%rbp), %rsi
leaq -0xd78(%rbp), %rdx
leaq -0xd90(%rbp), %rcx
callq 0x5e480
jmp 0x616a2
leaq -0xd90(%rbp), %rdi
callq 0x32bc0
leaq -0xd78(%rbp), %rdi
callq 0x73e0
leaq -0xd38(%rbp), %rdi
callq 0x73e0
leaq -0xd58(%rbp), %rdi
callq 0x73e0
leaq -0xd18(%rbp), %rdi
callq 0x73e0
movq 0x308bb(%rip), %rdi     # 0x91fa0
movq 0x30874(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1bd8(%rbp)
jmp 0x616fa
leaq 0x4a4c(%rip), %rsi      # 0x6614d
leaq -0xdd0(%rbp), %rdi
leaq -0x2e8(%rbp), %rdx
callq 0x5ebf0
jmp 0x61716
leaq 0x44f1(%rip), %rdx      # 0x65c0e
leaq -0xdb0(%rbp), %rdi
leaq -0xdd0(%rbp), %rsi
callq 0x5ea00
jmp 0x61732
movq -0x1bd8(%rbp), %rdi
leaq -0xdb0(%rbp), %rsi
callq 0x7560
movq %rax, -0x1be0(%rbp)
jmp 0x6174e
movq -0x1be0(%rbp), %rdi
movq 0x30804(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x61763
leaq -0xdb0(%rbp), %rdi
callq 0x73e0
leaq -0xdd0(%rbp), %rdi
callq 0x73e0
movq 0x3081e(%rip), %rdi     # 0x91fa0
leaq 0x49fd(%rip), %rsi      # 0x66186
callq 0x75d0
movq %rax, -0x1be8(%rbp)
jmp 0x61797
movq -0x1be8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x7560
movq %rax, -0x1bf0(%rbp)
jmp 0x617b3
movq -0x1bf0(%rbp), %rdi
leaq 0x49f5(%rip), %rsi      # 0x661b6
callq 0x75d0
movq %rax, -0x1bf8(%rbp)
jmp 0x617cf
movq -0x1bf8(%rbp), %rdi
movq 0x30783(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x617e4
leaq -0x2e8(%rbp), %rdi
callq 0x73e0
leaq -0x2c0(%rbp), %rdi
callq 0x73e0
leaq -0x2a0(%rbp), %rdi
callq 0x32bc0
leaq -0x268(%rbp), %rdi
callq 0x32bc0
leaq -0x250(%rbp), %rdi
callq 0x7850
jmp 0x62f68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61899
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6188d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61881
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61875
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd90(%rbp), %rdi
callq 0x32bc0
leaq -0xd78(%rbp), %rdi
callq 0x73e0
leaq -0xd38(%rbp), %rdi
callq 0x73e0
leaq -0xd58(%rbp), %rdi
callq 0x73e0
leaq -0xd18(%rbp), %rdi
callq 0x73e0
jmp 0x618d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x618cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xdb0(%rbp), %rdi
callq 0x73e0
leaq -0xdd0(%rbp), %rdi
callq 0x73e0
leaq -0x2e8(%rbp), %rdi
callq 0x73e0
leaq -0x2c0(%rbp), %rdi
callq 0x73e0
leaq -0x2a0(%rbp), %rdi
callq 0x32bc0
leaq -0x268(%rbp), %rdi
callq 0x32bc0
leaq -0x250(%rbp), %rdi
callq 0x7850
jmp 0x62f84
leaq -0xdf1(%rbp), %rdi
movq %rdi, -0x1c00(%rbp)
callq 0x79e0
movq -0x1c00(%rbp), %rdx
leaq 0x42f7(%rip), %rsi      # 0x65c32
leaq -0xdf0(%rbp), %rdi
callq 0xd700
jmp 0x61949
leaq -0xdf1(%rbp), %rdi
callq 0x7660
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0xdf0(%rbp), %rdi
callq 0x77d0
jmp 0x6196b
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
leaq -0x38(%rbp), %rdi
callq 0x77d0
jmp 0x6197e
leaq -0xe30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x61990
leaq -0xe10(%rbp), %rdi
leaq -0xe30(%rbp), %rsi
callq 0x35ee0
jmp 0x619a5
leaq -0xe30(%rbp), %rdi
callq 0x73e0
leaq -0xe50(%rbp), %rdi
callq 0x77e0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x1c10(%rbp)
leaq -0xe79(%rbp), %rdi
movq %rdi, -0x1c08(%rbp)
callq 0x79e0
movq -0x1c10(%rbp), %rsi
movq -0x1c08(%rbp), %rdx
movb $0x0, -0xea2(%rbp)
movb $0x0, -0xea3(%rbp)
leaq -0xe78(%rbp), %rdi
callq 0xd700
jmp 0x61a09
xorl %eax, %eax
movl %eax, %esi
leaq -0xe78(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1c14(%rbp)
jmp 0x61a26
movl -0x1c14(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1c15(%rbp)
jle 0x61ad7
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x1c28(%rbp)
leaq -0xea1(%rbp), %rdi
movq %rdi, -0x1c20(%rbp)
callq 0x79e0
movq -0x1c28(%rbp), %rsi
movq -0x1c20(%rbp), %rdx
movb $0x1, -0xea2(%rbp)
leaq -0xea0(%rbp), %rdi
callq 0xd700
jmp 0x61a82
movb $0x1, -0xea3(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0xea0(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1c2c(%rbp)
jmp 0x61aa6
movl -0x1c2c(%rbp), %eax
cltq
movq %rax, -0x1c38(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x32c20
movq %rax, %rcx
movq -0x1c38(%rbp), %rax
cmpq %rcx, %rax
setbe %al
movb %al, -0x1c15(%rbp)
movb -0x1c15(%rbp), %al
movb %al, -0x1c39(%rbp)
testb $0x1, -0xea3(%rbp)
jne 0x61aee
jmp 0x61afa
leaq -0xea0(%rbp), %rdi
callq 0x73e0
testb $0x1, -0xea2(%rbp)
jne 0x61b05
jmp 0x61b11
leaq -0xea1(%rbp), %rdi
callq 0x7660
leaq -0xe78(%rbp), %rdi
callq 0x73e0
leaq -0xe79(%rbp), %rdi
callq 0x7660
movb -0x1c39(%rbp), %al
andb $0x1, %al
movb %al, -0xe51(%rbp)
testb $0x1, -0xe51(%rbp)
je 0x61b45
jmp 0x61c34
leaq 0x46b6(%rip), %rdi      # 0x66202
leaq 0x4520(%rip), %rsi      # 0x66073
movl $0xeb, %edx
leaq 0x4529(%rip), %rcx      # 0x66088
callq 0x7450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xdf1(%rbp), %rdi
callq 0x7660
jmp 0x62f84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62f5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xe30(%rbp), %rdi
callq 0x73e0
jmp 0x62f5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61c23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61c17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61bfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0xea3(%rbp)
jne 0x61bf0
jmp 0x61bfc
leaq -0xea0(%rbp), %rdi
callq 0x73e0
jmp 0x61bfe
testb $0x1, -0xea2(%rbp)
jne 0x61c09
jmp 0x61c15
leaq -0xea1(%rbp), %rdi
callq 0x7660
jmp 0x61c17
leaq -0xe78(%rbp), %rdi
callq 0x73e0
leaq -0xe79(%rbp), %rdi
callq 0x7660
jmp 0x62f42
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x1c50(%rbp)
leaq -0xec9(%rbp), %rdi
movq %rdi, -0x1c48(%rbp)
callq 0x79e0
movq -0x1c50(%rbp), %rsi
movq -0x1c48(%rbp), %rdx
leaq -0xec8(%rbp), %rdi
callq 0xd700
jmp 0x61c72
xorl %eax, %eax
movl %eax, %esi
leaq -0xec8(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1c54(%rbp)
jmp 0x61c8f
movl -0x1c54(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0xe10(%rbp), %rdi
callq 0x32c40
movq %rax, %rsi
leaq -0xe50(%rbp), %rdi
callq 0x7070
jmp 0x61cb7
leaq -0xec8(%rbp), %rdi
callq 0x73e0
leaq -0xec9(%rbp), %rdi
callq 0x7660
leaq -0xf10(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x61ce1
leaq -0xef0(%rbp), %rdi
leaq -0xf10(%rbp), %rsi
callq 0x35b50
jmp 0x61cf6
leaq -0xf10(%rbp), %rdi
callq 0x73e0
leaq -0xdf0(%rbp), %rdi
leaq 0x452c(%rip), %rsi      # 0x6623c
callq 0x7190
cmpl $0x0, %eax
jne 0x624ea
leaq -0xf31(%rbp), %rdi
movq %rdi, -0x1c60(%rbp)
callq 0x79e0
movq -0x1c60(%rbp), %rdx
leaq 0x3ef3(%rip), %rsi      # 0x65c32
leaq -0xf30(%rbp), %rdi
callq 0xd700
jmp 0x61d4d
leaq -0xf31(%rbp), %rdi
callq 0x7660
leaq 0x4050(%rip), %rsi      # 0x65db0
leaq -0xf80(%rbp), %rdi
leaq -0xef0(%rbp), %rdx
callq 0x5ebf0
jmp 0x61d75
leaq -0xf60(%rbp), %rdi
leaq -0xf80(%rbp), %rsi
movl $0x2, %edx
callq 0x62fa0
jmp 0x61d8f
leaq -0xf60(%rbp), %rdi
callq 0x7260
jmp 0x61d9d
leaq -0xf60(%rbp), %rdi
callq 0x63030
leaq -0xf80(%rbp), %rdi
callq 0x73e0
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
leaq -0xf30(%rbp), %rdi
callq 0x77d0
jmp 0x61dcb
leaq -0x1188(%rbp), %rdi
leaq -0xf30(%rbp), %rsi
movl $0x4, %edx
callq 0x78c0
jmp 0x61de5
leaq 0x4057(%rip), %rsi      # 0x65e43
leaq -0x1388(%rbp), %rdi
movl $0x4, %edx
callq 0x7670
jmp 0x61dff
leaq -0x1398(%rbp), %rdi
leaq -0x1188(%rbp), %rsi
callq 0x63110
leaq -0x13a8(%rbp), %rdi
callq 0x63170
leaq -0x13b8(%rbp), %rdi
leaq -0x1388(%rbp), %rsi
callq 0x631a0
movups -0x1398(%rbp), %xmm0
movaps %xmm0, -0x13d0(%rbp)
movups -0x13a8(%rbp), %xmm0
movaps %xmm0, -0x13e0(%rbp)
movups -0x13b8(%rbp), %xmm0
movaps %xmm0, -0x13f0(%rbp)
movq -0x13d0(%rbp), %rdi
movl -0x13c8(%rbp), %esi
movq -0x13e0(%rbp), %rdx
movl -0x13d8(%rbp), %ecx
movq -0x13f0(%rbp), %r8
movl -0x13e8(%rbp), %r9d
callq 0x63210
movb %dl, -0x1c69(%rbp)
movq %rax, -0x1c68(%rbp)
jmp 0x61e97
movb -0x1c69(%rbp), %al
movq -0x1c68(%rbp), %rcx
movq %rcx, -0x1400(%rbp)
movb %al, -0x13f8(%rbp)
leaq -0x1188(%rbp), %rdi
callq 0x7110
jmp 0x61ebf
leaq -0x1388(%rbp), %rdi
callq 0x7810
jmp 0x61ecd
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x1c80(%rbp)
leaq -0x1429(%rbp), %rdi
movq %rdi, -0x1c78(%rbp)
callq 0x79e0
movq -0x1c80(%rbp), %rsi
movq -0x1c78(%rbp), %rdx
movb $0x0, -0x1452(%rbp)
movb $0x0, -0x1453(%rbp)
movb $0x0, -0x1491(%rbp)
movb $0x0, -0x1492(%rbp)
leaq -0x1428(%rbp), %rdi
callq 0xd700
jmp 0x61f27
xorl %eax, %eax
movl %eax, %esi
leaq -0x1428(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1c84(%rbp)
jmp 0x61f44
movl -0x1c84(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1c85(%rbp)
jle 0x62031
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x1c98(%rbp)
leaq -0x1451(%rbp), %rdi
movq %rdi, -0x1c90(%rbp)
callq 0x79e0
movq -0x1c98(%rbp), %rsi
movq -0x1c90(%rbp), %rdx
movb $0x1, -0x1452(%rbp)
leaq -0x1450(%rbp), %rdi
callq 0xd700
jmp 0x61fa0
movb $0x1, -0x1453(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x1450(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1c9c(%rbp)
jmp 0x61fc4
movl -0x1c9c(%rbp), %eax
cltq
movq %rax, -0x1ca8(%rbp)
leaq -0x1490(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0x7270
jmp 0x61fe8
movb $0x1, -0x1491(%rbp)
leaq -0x1470(%rbp), %rdi
leaq -0x1490(%rbp), %rsi
callq 0x362a0
jmp 0x62004
movb $0x1, -0x1492(%rbp)
leaq -0x1470(%rbp), %rdi
callq 0x32c20
movq %rax, %rcx
movq -0x1ca8(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
setbe %al
movb %al, -0x1c85(%rbp)
movb -0x1c85(%rbp), %al
movb %al, -0x1ca9(%rbp)
testb $0x1, -0x1492(%rbp)
jne 0x62048
jmp 0x62054
leaq -0x1470(%rbp), %rdi
callq 0x32bc0
testb $0x1, -0x1491(%rbp)
jne 0x6205f
jmp 0x6206b
leaq -0x1490(%rbp), %rdi
callq 0x73e0
testb $0x1, -0x1453(%rbp)
jne 0x62076
jmp 0x62082
leaq -0x1450(%rbp), %rdi
callq 0x73e0
testb $0x1, -0x1452(%rbp)
jne 0x6208d
jmp 0x62099
leaq -0x1451(%rbp), %rdi
callq 0x7660
leaq -0x1428(%rbp), %rdi
callq 0x73e0
leaq -0x1429(%rbp), %rdi
callq 0x7660
movb -0x1ca9(%rbp), %al
andb $0x1, %al
movb %al, -0x1401(%rbp)
testb $0x1, -0x1401(%rbp)
je 0x620cd
jmp 0x62287
leaq 0x3f6b(%rip), %rdi      # 0x6603f
leaq 0x3f98(%rip), %rsi      # 0x66073
movl $0x10b, %edx            # imm = 0x10B
leaq 0x3fa1(%rip), %rcx      # 0x66088
callq 0x7450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62112
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xec8(%rbp), %rdi
callq 0x73e0
leaq -0xec9(%rbp), %rdi
callq 0x7660
jmp 0x62f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf10(%rbp), %rdi
callq 0x73e0
jmp 0x62f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf31(%rbp), %rdi
callq 0x7660
jmp 0x62f36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x624d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x621a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf60(%rbp), %rdi
callq 0x63030
leaq -0xf80(%rbp), %rdi
callq 0x73e0
jmp 0x624d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x624cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x624c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62276
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6226a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62251
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62238
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x1491(%rbp)
jne 0x6222a
jmp 0x62236
leaq -0x1490(%rbp), %rdi
callq 0x73e0
jmp 0x62238
testb $0x1, -0x1453(%rbp)
jne 0x62243
jmp 0x6224f
leaq -0x1450(%rbp), %rdi
callq 0x73e0
jmp 0x62251
testb $0x1, -0x1452(%rbp)
jne 0x6225c
jmp 0x62268
leaq -0x1451(%rbp), %rdi
callq 0x7660
jmp 0x6226a
leaq -0x1428(%rbp), %rdi
callq 0x73e0
leaq -0x1429(%rbp), %rdi
callq 0x7660
jmp 0x624c1
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x1cc0(%rbp)
leaq -0x14b9(%rbp), %rdi
movq %rdi, -0x1cb8(%rbp)
callq 0x79e0
movq -0x1cc0(%rbp), %rsi
movq -0x1cb8(%rbp), %rdx
leaq -0x14b8(%rbp), %rdi
callq 0xd700
jmp 0x622c5
xorl %eax, %eax
movl %eax, %esi
leaq -0x14b8(%rbp), %rdi
movl $0xa, %edx
callq 0x345f0
movl %eax, -0x1cc4(%rbp)
jmp 0x622e2
leaq -0x14e1(%rbp), %rdi
movq %rdi, -0x1cd0(%rbp)
callq 0x79e0
movq -0x1cd0(%rbp), %rdx
leaq 0x3b40(%rip), %rsi      # 0x65e43
leaq -0x14e0(%rbp), %rdi
callq 0xd700
jmp 0x62311
leaq -0x1509(%rbp), %rdi
movq %rdi, -0x1cd8(%rbp)
callq 0x79e0
movq -0x1cd8(%rbp), %rdx
leaq 0x3d6d(%rip), %rsi      # 0x6609f
leaq -0x1508(%rbp), %rdi
callq 0xd700
jmp 0x62340
movl -0x1cc4(%rbp), %edi
leaq -0x14e0(%rbp), %rsi
leaq -0x1508(%rbp), %rdx
callq 0x5f520
jmp 0x6235b
leaq -0x1508(%rbp), %rdi
callq 0x73e0
leaq -0x1509(%rbp), %rdi
callq 0x7660
leaq -0x14e0(%rbp), %rdi
callq 0x73e0
leaq -0x14e1(%rbp), %rdi
callq 0x7660
leaq -0x14b8(%rbp), %rdi
callq 0x73e0
leaq -0x14b9(%rbp), %rdi
callq 0x7660
movq 0x2fbf6(%rip), %rdi     # 0x91fa0
leaq 0x3e8e(%rip), %rsi      # 0x6623f
callq 0x75d0
movq %rax, -0x1ce0(%rbp)
jmp 0x623bf
movq -0x1ce0(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0x7560
movq %rax, -0x1ce8(%rbp)
jmp 0x623db
movq -0x1ce8(%rbp), %rdi
leaq 0x3e6c(%rip), %rsi      # 0x66255
callq 0x75d0
movq %rax, -0x1cf0(%rbp)
jmp 0x623f7
movq -0x1cf0(%rbp), %rdi
movq 0x2fb5b(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x6240c
leaq -0x1388(%rbp), %rdi
callq 0x7850
leaq -0x1188(%rbp), %rdi
callq 0x7140
leaq -0xf30(%rbp), %rdi
callq 0x73e0
jmp 0x62f04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x624b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x624a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6249d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62485
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1508(%rbp), %rdi
callq 0x73e0
leaq -0x1509(%rbp), %rdi
callq 0x7660
leaq -0x14e0(%rbp), %rdi
callq 0x73e0
leaq -0x14e1(%rbp), %rdi
callq 0x7660
leaq -0x14b8(%rbp), %rdi
callq 0x73e0
leaq -0x14b9(%rbp), %rdi
callq 0x7660
leaq -0x1388(%rbp), %rdi
callq 0x7850
leaq -0x1188(%rbp), %rdi
callq 0x7140
leaq -0xf30(%rbp), %rdi
callq 0x73e0
jmp 0x62f36
leaq -0xdf0(%rbp), %rdi
leaq 0x3d93(%rip), %rsi      # 0x6628b
callq 0x7190
cmpl $0x0, %eax
jne 0x62c1b
leaq -0x1548(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0x7270
jmp 0x6251b
leaq -0x1528(%rbp), %rdi
leaq -0x1548(%rbp), %rsi
callq 0x362a0
jmp 0x62530
leaq -0x1548(%rbp), %rdi
callq 0x73e0
xorl %eax, %eax
movl %eax, %esi
leaq -0x1528(%rbp), %rdi
callq 0x32c40
movq %rax, %rsi
leaq -0x1568(%rbp), %rdi
callq 0x7270
jmp 0x6255d
leaq -0x1770(%rbp), %rdi
callq 0x76d0
jmp 0x6256b
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
leaq -0x1770(%rbp), %rdi
movl $0x8, %edx
callq 0x7420
jmp 0x62586
leaq -0x1788(%rbp), %rdi
callq 0x32b00
leaq -0x17a9(%rbp), %rdi
movq %rdi, -0x1cf8(%rbp)
callq 0x79e0
movq -0x1cf8(%rbp), %rdx
leaq 0x367f(%rip), %rsi      # 0x65c32
leaq -0x17a8(%rbp), %rdi
callq 0xd700
jmp 0x625c1
leaq -0x17a9(%rbp), %rdi
callq 0x7660
leaq -0x17d1(%rbp), %rdi
movq %rdi, -0x1d00(%rbp)
callq 0x79e0
movq -0x1d00(%rbp), %rdx
leaq 0x3644(%rip), %rsi      # 0x65c32
leaq -0x17d0(%rbp), %rdi
callq 0xd700
jmp 0x625fc
leaq -0x17d1(%rbp), %rdi
callq 0x7660
movq 0x2f991(%rip), %rdi     # 0x91fa0
leaq 0x3a9d(%rip), %rsi      # 0x660b3
callq 0x75d0
movq %rax, -0x1d08(%rbp)
jmp 0x62624
movq -0x1d08(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d10(%rbp)
jmp 0x62640
movq -0x1d10(%rbp), %rdi
leaq 0x377f(%rip), %rsi      # 0x65dcd
callq 0x75d0
movq %rax, -0x1d18(%rbp)
jmp 0x6265c
movq -0x1d18(%rbp), %rdi
movq 0x2f8f6(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x62671
movq 0x2f928(%rip), %rdi     # 0x91fa0
leaq 0x3a43(%rip), %rsi      # 0x660c2
callq 0x75d0
movq %rax, -0x1d20(%rbp)
jmp 0x6268d
movq -0x1d20(%rbp), %rdi
movq 0x2f8c5(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x626a2
movq 0x2f8f7(%rip), %rdi     # 0x91fa0
leaq 0x3a54(%rip), %rsi      # 0x66104
callq 0x75d0
movq %rax, -0x1d28(%rbp)
jmp 0x626be
movq -0x1d28(%rbp), %rdi
movq 0x2f894(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x626d3
jmp 0x626d5
movq -0x1770(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1770(%rbp,%rax), %rdi
callq 0x7a30
movb %al, -0x1d29(%rbp)
jmp 0x626f5
movb -0x1d29(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x62706
jmp 0x6285f
leaq -0x1770(%rbp), %rdi
leaq -0x17a8(%rbp), %rsi
callq 0x70e0
jmp 0x6271b
movq 0x2f87e(%rip), %rdi     # 0x91fa0
leaq -0x1568(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d38(%rbp)
jmp 0x62737
movq -0x1d38(%rbp), %rdi
leaq 0x356b(%rip), %rsi      # 0x65cb0
callq 0x75d0
movq %rax, -0x1d40(%rbp)
jmp 0x62753
movq -0x1d40(%rbp), %rdi
leaq -0x17a8(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d48(%rbp)
jmp 0x6276f
movq -0x1d48(%rbp), %rdi
leaq 0x39cc(%rip), %rsi      # 0x66149
callq 0x75d0
jmp 0x62784
movq 0x2f84d(%rip), %rdi     # 0x91fd8
leaq -0x17d0(%rbp), %rsi
callq 0x7760
jmp 0x62799
leaq -0x1788(%rbp), %rdi
leaq -0x17d0(%rbp), %rsi
callq 0x32b20
jmp 0x627ae
jmp 0x626d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62f36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1548(%rbp), %rdi
callq 0x73e0
jmp 0x62f36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62c0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62bfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62bf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x17a9(%rbp), %rdi
callq 0x7660
jmp 0x62be6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x17d1(%rbp), %rdi
callq 0x7660
jmp 0x62bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62bce
leaq -0x17f0(%rbp), %rdi
leaq -0x1788(%rbp), %rsi
callq 0x47fc0
jmp 0x62874
leaq -0x1811(%rbp), %rdi
movq %rdi, -0x1d50(%rbp)
callq 0x79e0
movq -0x1d50(%rbp), %rdx
leaq 0x380a(%rip), %rsi      # 0x6609f
leaq -0x1810(%rbp), %rdi
callq 0xd700
jmp 0x628a3
leaq 0x3506(%rip), %rsi      # 0x65db0
leaq -0x1898(%rbp), %rdi
leaq -0xef0(%rbp), %rdx
callq 0x5ebf0
jmp 0x628bf
leaq 0x3348(%rip), %rdx      # 0x65c0e
leaq -0x1878(%rbp), %rdi
leaq -0x1898(%rbp), %rsi
callq 0x5ea00
jmp 0x628db
leaq -0x1858(%rbp), %rdi
leaq -0x1878(%rbp), %rsi
leaq -0x1568(%rbp), %rdx
callq 0x5ea50
jmp 0x628f7
leaq 0x32d2(%rip), %rdx      # 0x65bd0
leaq -0x1838(%rbp), %rdi
leaq -0x1858(%rbp), %rsi
callq 0x5ea00
jmp 0x62913
leaq -0x17f0(%rbp), %rdi
leaq -0x1810(%rbp), %rsi
leaq -0x1838(%rbp), %rdx
callq 0x5ef80
jmp 0x6292f
leaq -0x1838(%rbp), %rdi
callq 0x73e0
leaq -0x1858(%rbp), %rdi
callq 0x73e0
leaq -0x1878(%rbp), %rdi
callq 0x73e0
leaq -0x1898(%rbp), %rdi
callq 0x73e0
leaq -0x1810(%rbp), %rdi
callq 0x73e0
leaq -0x1811(%rbp), %rdi
callq 0x7660
leaq -0x17f0(%rbp), %rdi
callq 0x32bc0
movq 0x2f616(%rip), %rdi     # 0x91fa0
movq 0x2f5cf(%rip), %rsi     # 0x91f60
callq 0x7640
movq %rax, -0x1d58(%rbp)
jmp 0x6299f
leaq 0x38e8(%rip), %rsi      # 0x6628e
leaq -0x1918(%rbp), %rdi
leaq -0xef0(%rbp), %rdx
callq 0x5ebf0
jmp 0x629bb
leaq 0x324c(%rip), %rdx      # 0x65c0e
leaq -0x18f8(%rbp), %rdi
leaq -0x1918(%rbp), %rsi
callq 0x5ea00
jmp 0x629d7
leaq -0x18d8(%rbp), %rdi
leaq -0x18f8(%rbp), %rsi
leaq -0x1568(%rbp), %rdx
callq 0x5ea50
jmp 0x629f3
leaq 0x31d6(%rip), %rdx      # 0x65bd0
leaq -0x18b8(%rbp), %rdi
leaq -0x18d8(%rbp), %rsi
callq 0x5ea00
jmp 0x62a0f
movq -0x1d58(%rbp), %rdi
leaq -0x18b8(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d60(%rbp)
jmp 0x62a2b
movq -0x1d60(%rbp), %rdi
movq 0x2f527(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x62a40
leaq -0x18b8(%rbp), %rdi
callq 0x73e0
leaq -0x18d8(%rbp), %rdi
callq 0x73e0
leaq -0x18f8(%rbp), %rdi
callq 0x73e0
leaq -0x1918(%rbp), %rdi
callq 0x73e0
leaq -0x17d0(%rbp), %rdi
callq 0x73e0
leaq -0x17a8(%rbp), %rdi
callq 0x73e0
leaq -0x1788(%rbp), %rdi
callq 0x32bc0
leaq -0x1770(%rbp), %rdi
callq 0x7140
leaq -0x1568(%rbp), %rdi
callq 0x73e0
leaq -0x1528(%rbp), %rdi
callq 0x32bc0
jmp 0x62f02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62b4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62b42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62b36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62b2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62b1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1838(%rbp), %rdi
callq 0x73e0
leaq -0x1858(%rbp), %rdi
callq 0x73e0
leaq -0x1878(%rbp), %rdi
callq 0x73e0
leaq -0x1898(%rbp), %rdi
callq 0x73e0
leaq -0x1810(%rbp), %rdi
callq 0x73e0
leaq -0x1811(%rbp), %rdi
callq 0x7660
leaq -0x17f0(%rbp), %rdi
callq 0x32bc0
jmp 0x62bce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62bc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62bb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62baa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x18b8(%rbp), %rdi
callq 0x73e0
leaq -0x18d8(%rbp), %rdi
callq 0x73e0
leaq -0x18f8(%rbp), %rdi
callq 0x73e0
leaq -0x1918(%rbp), %rdi
callq 0x73e0
leaq -0x17d0(%rbp), %rdi
callq 0x73e0
leaq -0x17a8(%rbp), %rdi
callq 0x73e0
leaq -0x1788(%rbp), %rdi
callq 0x32bc0
leaq -0x1770(%rbp), %rdi
callq 0x7140
leaq -0x1568(%rbp), %rdi
callq 0x73e0
leaq -0x1528(%rbp), %rdi
callq 0x32bc0
jmp 0x62f36
leaq -0xdf0(%rbp), %rdi
leaq 0x36a8(%rip), %rsi      # 0x662d1
callq 0x7190
cmpl $0x0, %eax
jne 0x62f00
leaq -0x1930(%rbp), %rdi
movq %rdi, -0x1d68(%rbp)
callq 0x32b00
movq -0x1d68(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0x32b20
jmp 0x62c5f
leaq -0x1950(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7270
jmp 0x62c71
leaq 0x3138(%rip), %rsi      # 0x65db0
leaq -0x1990(%rbp), %rdi
leaq -0xef0(%rbp), %rdx
callq 0x5ebf0
jmp 0x62c8d
leaq 0x2f7a(%rip), %rdx      # 0x65c0e
leaq -0x1970(%rbp), %rdi
leaq -0x1990(%rbp), %rsi
callq 0x5ea00
jmp 0x62ca9
leaq -0x19b0(%rbp), %rdi
leaq -0xef0(%rbp), %rsi
callq 0x7270
jmp 0x62cbe
leaq -0x19c8(%rbp), %rdi
leaq -0x1930(%rbp), %rsi
callq 0x47fc0
jmp 0x62cd3
leaq -0x1950(%rbp), %rdi
leaq -0x1970(%rbp), %rsi
leaq -0x19b0(%rbp), %rdx
leaq -0x19c8(%rbp), %rcx
callq 0x5e480
jmp 0x62cf6
leaq -0x19c8(%rbp), %rdi
callq 0x32bc0
leaq -0x19b0(%rbp), %rdi
callq 0x73e0
leaq -0x1970(%rbp), %rdi
callq 0x73e0
leaq -0x1990(%rbp), %rdi
callq 0x73e0
leaq -0x1950(%rbp), %rdi
callq 0x73e0
leaq 0x359b(%rip), %rsi      # 0x662d4
leaq -0x1a08(%rbp), %rdi
leaq -0xef0(%rbp), %rdx
callq 0x5ebf0
jmp 0x62d4e
leaq 0x2eb9(%rip), %rdx      # 0x65c0e
leaq -0x19e8(%rbp), %rdi
leaq -0x1a08(%rbp), %rsi
callq 0x5ea00
jmp 0x62d6a
movq 0x2f22f(%rip), %rdi     # 0x91fa0
leaq -0x19e8(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d70(%rbp)
jmp 0x62d86
movq -0x1d70(%rbp), %rdi
movq 0x2f1cc(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x62d9b
leaq -0x19e8(%rbp), %rdi
callq 0x73e0
leaq -0x1a08(%rbp), %rdi
callq 0x73e0
movq 0x2f1e6(%rip), %rdi     # 0x91fa0
leaq 0x33c5(%rip), %rsi      # 0x66186
callq 0x75d0
movq %rax, -0x1d78(%rbp)
jmp 0x62dcf
movq -0x1d78(%rbp), %rdi
leaq -0xef0(%rbp), %rsi
callq 0x7560
movq %rax, -0x1d80(%rbp)
jmp 0x62deb
movq -0x1d80(%rbp), %rdi
leaq 0x33bd(%rip), %rsi      # 0x661b6
callq 0x75d0
movq %rax, -0x1d88(%rbp)
jmp 0x62e07
movq -0x1d88(%rbp), %rdi
movq 0x2f14b(%rip), %rsi     # 0x91f60
callq 0x7640
jmp 0x62e1c
leaq -0x1930(%rbp), %rdi
callq 0x32bc0
jmp 0x62f00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62ef2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62eb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62ea6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62e9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x19c8(%rbp), %rdi
callq 0x32bc0
leaq -0x19b0(%rbp), %rdi
callq 0x73e0
leaq -0x1970(%rbp), %rdi
callq 0x73e0
leaq -0x1990(%rbp), %rdi
callq 0x73e0
leaq -0x1950(%rbp), %rdi
callq 0x73e0
jmp 0x62ef2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62ee6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x19e8(%rbp), %rdi
callq 0x73e0
leaq -0x1a08(%rbp), %rdi
callq 0x73e0
leaq -0x1930(%rbp), %rdi
callq 0x32bc0
jmp 0x62f36
jmp 0x62f02
jmp 0x62f04
leaq -0xef0(%rbp), %rdi
callq 0x73e0
leaq -0xe50(%rbp), %rdi
callq 0x73e0
leaq -0xe10(%rbp), %rdi
callq 0x32bc0
leaq -0xdf0(%rbp), %rdi
callq 0x73e0
jmp 0x62f68
leaq -0xef0(%rbp), %rdi
callq 0x73e0
leaq -0xe50(%rbp), %rdi
callq 0x73e0
leaq -0xe10(%rbp), %rdi
callq 0x32bc0
leaq -0xdf0(%rbp), %rdi
callq 0x73e0
jmp 0x62f84
movl $0x0, -0x4(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x73e0
movl -0x4(%rbp), %eax
addq $0x1d90, %rsp           # imm = 0x1D90
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x73e0
movq -0x48(%rbp), %rdi
callq 0x79d0
nopw %cs:(%rax,%rax)