// File: GAStudyGroup[P]GPX2/src/main.cpp
// Function: initArgs(int, char**)
void initArgs(int argc, char *argv[]){
    string NAME = "name|n";
    string SIZE = "size|s";
    string LIB = "lib|l";
    string ID = "id";
    string LK = "lk";
    string NEW_POP = "newpop|np";
    string N_BEST = "nbest|nb";
    string BEST_FITNESS = "bestfitness|bf";
    string RESET = "reset|r";
    string GEN_NEW_TOUR = "newtour|nt";

    Arg arg(argc,argv);
    arg.setProgramName("GPX2");
    arg.setHelp();

    arg.newArgument(NAME,true,"name of the tour.");
    arg.newArgument(SIZE,true,"size of the pop.");
    arg.newArgument(LIB,false,"path to the .tsp file.");
    arg.newArgument(ID,false,"numeric id of the run.");
    arg.newArgument(LK,false,"percentage of population to be generated using linkern.");
    arg.newArgument(NEW_POP,false,"method to be used to generate the next generation.");
    arg.newArgument(N_BEST,false,"number of tours to be saved to the next generation.");
    arg.newArgument(BEST_FITNESS,false,"best fitness found to this tour.");
    arg.newArgument(RESET,false,"percentage of the population to reset each generation");
    arg.newArgument(GEN_NEW_TOUR,false,"mode to generate new tour, used to generate first population and reset");

    try{
        arg.validateArguments();
    }catch(std::runtime_error &e){
        std::cout<<e.what()<<endl;
        exit(0);
    }

    
    Config::NAME = arg.getOption(NAME);
    Config::POP_SIZE = stoi(arg.getOption(SIZE));
    string tmp = arg.getOption(LIB);
    Config::LIB_PATH = tmp.empty()?Config::LIB_PATH:tmp;
    tmp = arg.getOption(ID);
    Config::ID = tmp.empty()?Config::ID:stoi(tmp);
    tmp = arg.getOption(LK);
    Config::LK_PERCENTAGE = tmp.empty()?Config::LK_PERCENTAGE:stod(tmp);
    tmp = arg.getOption(NEW_POP);
    Config::NEW_POP_TYPE = tmp.empty()?Config::NEW_POP_TYPE:stoi(tmp);
    tmp = arg.getOption(N_BEST);
    Config::N_BEST = tmp.empty()?Config::N_BEST:stoi(tmp);
    tmp = arg.getOption(BEST_FITNESS);
    Config::BEST_FITNESS = tmp.empty()?Config::BEST_FITNESS:stoi(tmp);
    tmp = arg.getOption(RESET);
    Config::RESET_PERCENTAGE = tmp.empty()?Config::RESET_PERCENTAGE:stod(tmp);
    tmp = arg.getOption(GEN_NEW_TOUR);
    Config::NEW_TOUR_MODE = tmp.empty()?Config::NEW_TOUR_MODE:stod(tmp);
}

// Assembly:
subq $0x898, %rsp            # imm = 0x898
movl %edi, 0x894(%rsp)
movq %rsi, 0x888(%rsp)
leaq 0x867(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0x6860
movq 0x110(%rsp), %rdx
leaq 0x6ce60(%rip), %rsi     # 0x7408a
leaq 0x868(%rsp), %rdi
callq 0x92b0
jmp 0x7239
leaq 0x867(%rsp), %rdi
callq 0x6520
leaq 0x82f(%rsp), %rdi
movq %rdi, 0x108(%rsp)
callq 0x6860
movq 0x108(%rsp), %rdx
leaq 0x6ce27(%rip), %rsi     # 0x74091
leaq 0x830(%rsp), %rdi
callq 0x92b0
jmp 0x7279
leaq 0x82f(%rsp), %rdi
callq 0x6520
leaq 0x807(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq 0x6860
movq 0x100(%rsp), %rdx
leaq 0x6cdee(%rip), %rsi     # 0x74098
leaq 0x808(%rsp), %rdi
callq 0x92b0
jmp 0x72b9
leaq 0x807(%rsp), %rdi
callq 0x6520
leaq 0x7df(%rsp), %rdi
movq %rdi, 0xf8(%rsp)
callq 0x6860
movq 0xf8(%rsp), %rdx
leaq 0x6cfb8(%rip), %rsi     # 0x742a2
leaq 0x7e0(%rsp), %rdi
callq 0x92b0
jmp 0x72f9
leaq 0x7df(%rsp), %rdi
callq 0x6520
leaq 0x7b7(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x6860
movq 0xf0(%rsp), %rdx
leaq 0x6cd74(%rip), %rsi     # 0x7409e
leaq 0x7b8(%rsp), %rdi
callq 0x92b0
jmp 0x7339
leaq 0x7b7(%rsp), %rdi
callq 0x6520
leaq 0x78f(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x6860
movq 0xe8(%rsp), %rdx
leaq 0x6cd37(%rip), %rsi     # 0x740a1
leaq 0x790(%rsp), %rdi
callq 0x92b0
jmp 0x7379
leaq 0x78f(%rsp), %rdi
callq 0x6520
leaq 0x767(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x6860
movq 0xe0(%rsp), %rdx
leaq 0x6cd01(%rip), %rsi     # 0x740ab
leaq 0x768(%rsp), %rdi
callq 0x92b0
jmp 0x73b9
leaq 0x767(%rsp), %rdi
callq 0x6520
leaq 0x73f(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0x6860
movq 0xd8(%rsp), %rdx
leaq 0x6ccca(%rip), %rsi     # 0x740b4
leaq 0x740(%rsp), %rdi
callq 0x92b0
jmp 0x73f9
leaq 0x73f(%rsp), %rdi
callq 0x6520
leaq 0x717(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x6860
movq 0xd0(%rsp), %rdx
leaq 0x6cc99(%rip), %rsi     # 0x740c3
leaq 0x718(%rsp), %rdi
callq 0x92b0
jmp 0x7439
leaq 0x717(%rsp), %rdi
callq 0x6520
leaq 0x6ef(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x6860
movq 0xc8(%rsp), %rdx
leaq 0x6cc61(%rip), %rsi     # 0x740cb
leaq 0x6f0(%rsp), %rdi
callq 0x92b0
jmp 0x7479
leaq 0x6ef(%rsp), %rdi
callq 0x6520
movl 0x894(%rsp), %esi
movq 0x888(%rsp), %rdx
leaq 0x698(%rsp), %rdi
callq 0x47800
jmp 0x74a4
leaq 0x677(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x6860
movq 0xc0(%rsp), %rdx
leaq 0x6cc0e(%rip), %rsi     # 0x740d6
leaq 0x678(%rsp), %rdi
callq 0x92b0
jmp 0x74d7
leaq 0x698(%rsp), %rdi
leaq 0x678(%rsp), %rsi
callq 0x49490
jmp 0x74ee
leaq 0x678(%rsp), %rdi
callq 0x6988
leaq 0x677(%rsp), %rdi
callq 0x6520
leaq 0x698(%rsp), %rdi
callq 0x494c0
jmp 0x7517
leaq 0x650(%rsp), %rdi
leaq 0x868(%rsp), %rsi
callq 0x6200
jmp 0x752e
leaq 0x62f(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x6860
movq 0xb8(%rsp), %rdx
leaq 0x6cb89(%rip), %rsi     # 0x740db
leaq 0x630(%rsp), %rdi
callq 0x92b0
jmp 0x7561
leaq 0x698(%rsp), %rdi
leaq 0x650(%rsp), %rsi
movl $0x1, %edx
leaq 0x630(%rsp), %rcx
callq 0x478a0
jmp 0x7585
leaq 0x630(%rsp), %rdi
callq 0x6988
leaq 0x62f(%rsp), %rdi
callq 0x6520
leaq 0x650(%rsp), %rdi
callq 0x6988
leaq 0x608(%rsp), %rdi
leaq 0x830(%rsp), %rsi
callq 0x6200
jmp 0x75c3
leaq 0x5e7(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x6860
movq 0xb0(%rsp), %rdx
leaq 0x6cb06(%rip), %rsi     # 0x740ed
leaq 0x5e8(%rsp), %rdi
callq 0x92b0
jmp 0x75f6
leaq 0x698(%rsp), %rdi
leaq 0x608(%rsp), %rsi
movl $0x1, %edx
leaq 0x5e8(%rsp), %rcx
callq 0x478a0
jmp 0x761a
leaq 0x5e8(%rsp), %rdi
callq 0x6988
leaq 0x5e7(%rsp), %rdi
callq 0x6520
leaq 0x608(%rsp), %rdi
callq 0x6988
leaq 0x5c0(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x6200
jmp 0x7658
leaq 0x59f(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x6860
movq 0xa8(%rsp), %rdx
leaq 0x6ca82(%rip), %rsi     # 0x740fe
leaq 0x5a0(%rsp), %rdi
callq 0x92b0
jmp 0x768b
leaq 0x698(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
xorl %edx, %edx
leaq 0x5a0(%rsp), %rcx
callq 0x478a0
jmp 0x76ac
leaq 0x5a0(%rsp), %rdi
callq 0x6988
leaq 0x59f(%rsp), %rdi
callq 0x6520
leaq 0x5c0(%rsp), %rdi
callq 0x6988
leaq 0x578(%rsp), %rdi
leaq 0x7e0(%rsp), %rsi
callq 0x6200
jmp 0x76ea
leaq 0x557(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x6860
movq 0xa0(%rsp), %rdx
leaq 0x6ca07(%rip), %rsi     # 0x74115
leaq 0x558(%rsp), %rdi
callq 0x92b0
jmp 0x771d
leaq 0x698(%rsp), %rdi
leaq 0x578(%rsp), %rsi
xorl %edx, %edx
leaq 0x558(%rsp), %rcx
callq 0x478a0
jmp 0x773e
leaq 0x558(%rsp), %rdi
callq 0x6988
leaq 0x557(%rsp), %rdi
callq 0x6520
leaq 0x578(%rsp), %rdi
callq 0x6988
leaq 0x530(%rsp), %rdi
leaq 0x7b8(%rsp), %rsi
callq 0x6200
jmp 0x777c
leaq 0x50f(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x6860
movq 0x98(%rsp), %rdx
leaq 0x6c98c(%rip), %rsi     # 0x7412c
leaq 0x510(%rsp), %rdi
callq 0x92b0
jmp 0x77af
leaq 0x698(%rsp), %rdi
leaq 0x530(%rsp), %rsi
xorl %edx, %edx
leaq 0x510(%rsp), %rcx
callq 0x478a0
jmp 0x77d0
leaq 0x510(%rsp), %rdi
callq 0x6988
leaq 0x50f(%rsp), %rdi
callq 0x6520
leaq 0x530(%rsp), %rdi
callq 0x6988
leaq 0x4e8(%rsp), %rdi
leaq 0x790(%rsp), %rsi
callq 0x6200
jmp 0x780e
leaq 0x4c7(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x6860
movq 0x90(%rsp), %rdx
leaq 0x6c932(%rip), %rsi     # 0x74164
leaq 0x4c8(%rsp), %rdi
callq 0x92b0
jmp 0x7841
leaq 0x698(%rsp), %rdi
leaq 0x4e8(%rsp), %rsi
xorl %edx, %edx
leaq 0x4c8(%rsp), %rcx
callq 0x478a0
jmp 0x7862
leaq 0x4c8(%rsp), %rdi
callq 0x6988
leaq 0x4c7(%rsp), %rdi
callq 0x6520
leaq 0x4e8(%rsp), %rdi
callq 0x6988
leaq 0x4a0(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x6200
jmp 0x78a0
leaq 0x47f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x6860
movq 0x88(%rsp), %rdx
leaq 0x6c8d3(%rip), %rsi     # 0x74197
leaq 0x480(%rsp), %rdi
callq 0x92b0
jmp 0x78d3
leaq 0x698(%rsp), %rdi
leaq 0x4a0(%rsp), %rsi
xorl %edx, %edx
leaq 0x480(%rsp), %rcx
callq 0x478a0
jmp 0x78f4
leaq 0x480(%rsp), %rdi
callq 0x6988
leaq 0x47f(%rsp), %rdi
callq 0x6520
leaq 0x4a0(%rsp), %rdi
callq 0x6988
leaq 0x458(%rsp), %rdi
leaq 0x740(%rsp), %rsi
callq 0x6200
jmp 0x7932
leaq 0x437(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x6860
movq 0x80(%rsp), %rdx
leaq 0x6c875(%rip), %rsi     # 0x741cb
leaq 0x438(%rsp), %rdi
callq 0x92b0
jmp 0x7965
leaq 0x698(%rsp), %rdi
leaq 0x458(%rsp), %rsi
xorl %edx, %edx
leaq 0x438(%rsp), %rcx
callq 0x478a0
jmp 0x7986
leaq 0x438(%rsp), %rdi
callq 0x6988
leaq 0x437(%rsp), %rdi
callq 0x6520
leaq 0x458(%rsp), %rdi
callq 0x6988
leaq 0x410(%rsp), %rdi
leaq 0x718(%rsp), %rsi
callq 0x6200
jmp 0x79c4
leaq 0x3ef(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x6860
movq 0x78(%rsp), %rdx
leaq 0x6c80a(%rip), %rsi     # 0x741ec
leaq 0x3f0(%rsp), %rdi
callq 0x92b0
jmp 0x79f1
leaq 0x698(%rsp), %rdi
leaq 0x410(%rsp), %rsi
xorl %edx, %edx
leaq 0x3f0(%rsp), %rcx
callq 0x478a0
jmp 0x7a12
leaq 0x3f0(%rsp), %rdi
callq 0x6988
leaq 0x3ef(%rsp), %rdi
callq 0x6520
leaq 0x410(%rsp), %rdi
callq 0x6988
leaq 0x3c8(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x6200
jmp 0x7a50
leaq 0x3a7(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x6860
movq 0x70(%rsp), %rdx
leaq 0x6c7b4(%rip), %rsi     # 0x74222
leaq 0x3a8(%rsp), %rdi
callq 0x92b0
jmp 0x7a7d
leaq 0x698(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
xorl %edx, %edx
leaq 0x3a8(%rsp), %rcx
callq 0x478a0
jmp 0x7a9e
leaq 0x3a8(%rsp), %rdi
callq 0x6988
leaq 0x3a7(%rsp), %rdi
callq 0x6520
leaq 0x3c8(%rsp), %rdi
callq 0x6988
leaq 0x698(%rsp), %rdi
callq 0x47be0
jmp 0x7ad4
jmp 0x80ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x867(%rsp), %rdi
callq 0x6520
jmp 0x8a50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x82f(%rsp), %rdi
callq 0x6520
jmp 0x8a43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x807(%rsp), %rdi
callq 0x6520
jmp 0x8a36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x7df(%rsp), %rdi
callq 0x6520
jmp 0x8a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x7b7(%rsp), %rdi
callq 0x6520
jmp 0x8a1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x78f(%rsp), %rdi
callq 0x6520
jmp 0x8a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x767(%rsp), %rdi
callq 0x6520
jmp 0x8a02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x73f(%rsp), %rdi
callq 0x6520
jmp 0x89f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x717(%rsp), %rdi
callq 0x6520
jmp 0x89e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x6ef(%rsp), %rdi
callq 0x6520
jmp 0x89db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x89ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7ca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x678(%rsp), %rdi
callq 0x6988
leaq 0x677(%rsp), %rdi
callq 0x6520
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7d07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x630(%rsp), %rdi
callq 0x6988
leaq 0x62f(%rsp), %rdi
callq 0x6520
leaq 0x650(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7d5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x5e8(%rsp), %rdi
callq 0x6988
leaq 0x5e7(%rsp), %rdi
callq 0x6520
leaq 0x608(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7db3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x5a0(%rsp), %rdi
callq 0x6988
leaq 0x59f(%rsp), %rdi
callq 0x6520
leaq 0x5c0(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7e09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x558(%rsp), %rdi
callq 0x6988
leaq 0x557(%rsp), %rdi
callq 0x6520
leaq 0x578(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7e5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x510(%rsp), %rdi
callq 0x6988
leaq 0x50f(%rsp), %rdi
callq 0x6520
leaq 0x530(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7eb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x4c8(%rsp), %rdi
callq 0x6988
leaq 0x4c7(%rsp), %rdi
callq 0x6520
leaq 0x4e8(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7f0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x480(%rsp), %rdi
callq 0x6988
leaq 0x47f(%rsp), %rdi
callq 0x6520
leaq 0x4a0(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7f61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x438(%rsp), %rdi
callq 0x6988
leaq 0x437(%rsp), %rdi
callq 0x6520
leaq 0x458(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x7fb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x3f0(%rsp), %rdi
callq 0x6988
leaq 0x3ef(%rsp), %rdi
callq 0x6520
leaq 0x410(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x800d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x3a8(%rsp), %rdi
callq 0x6988
leaq 0x3a7(%rsp), %rdi
callq 0x6520
leaq 0x3c8(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
movl 0x854(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x89c1
movq 0x858(%rsp), %rdi
callq 0x61c0
movq %rax, 0x398(%rsp)
movq 0x398(%rsp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
movq 0x93f14(%rip), %rdi     # 0x9bf98
callq 0x64a0
movq %rax, 0x68(%rsp)
jmp 0x8090
movq 0x68(%rsp), %rdi
movq 0x93eb4(%rip), %rsi     # 0x9bf50
callq 0x6500
jmp 0x80a3
xorl %edi, %edi
callq 0x65c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
callq 0x6790
jmp 0x80c5
jmp 0x89c1
leaq 0x358(%rsp), %rdi
leaq 0x868(%rsp), %rsi
callq 0x6200
jmp 0x80e1
leaq 0x378(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x358(%rsp), %rdx
callq 0x493c0
jmp 0x8100
leaq 0x948b1(%rip), %rdi     # 0x9c9b8
leaq 0x378(%rsp), %rsi
movq %rsi, 0x60(%rsp)
callq 0x65d0
movq 0x60(%rsp), %rdi
callq 0x6988
leaq 0x358(%rsp), %rdi
callq 0x6988
leaq 0x318(%rsp), %rdi
leaq 0x830(%rsp), %rsi
callq 0x6200
jmp 0x8147
leaq 0x338(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x318(%rsp), %rdx
callq 0x493c0
jmp 0x8166
xorl %eax, %eax
movl %eax, %esi
leaq 0x338(%rsp), %rdi
movl $0xa, %edx
callq 0x9460
movl %eax, 0x5c(%rsp)
jmp 0x8182
movl 0x5c(%rsp), %ecx
leaq 0x94873(%rip), %rax     # 0x9ca00
movl %ecx, (%rax)
leaq 0x338(%rsp), %rdi
callq 0x6988
leaq 0x318(%rsp), %rdi
callq 0x6988
leaq 0x2d8(%rsp), %rdi
leaq 0x808(%rsp), %rsi
callq 0x6200
jmp 0x81c0
leaq 0x2f8(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x2d8(%rsp), %rdx
callq 0x493c0
jmp 0x81df
leaq 0x2d8(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x81ff
jmp 0x820d
leaq 0x947d2(%rip), %rax     # 0x9c9d8
movq %rax, 0x50(%rsp)
jmp 0x821c
leaq 0x2f8(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x821c
movq 0x50(%rsp), %rsi
leaq 0x947b0(%rip), %rdi     # 0x9c9d8
callq 0x6070
jmp 0x822f
leaq 0x298(%rsp), %rdi
leaq 0x7e0(%rsp), %rsi
callq 0x6200
jmp 0x8246
leaq 0x2b8(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x298(%rsp), %rdx
callq 0x493c0
jmp 0x8265
leaq 0x2f8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0x65d0
leaq 0x2b8(%rsp), %rdi
callq 0x6988
leaq 0x298(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x82a7
jmp 0x82b6
leaq 0x94702(%rip), %rax     # 0x9c9b0
movl (%rax), %eax
movl %eax, 0x4c(%rsp)
jmp 0x82dc
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
movl $0xa, %edx
callq 0x9460
movl %eax, 0x48(%rsp)
jmp 0x82d2
movl 0x48(%rsp), %eax
movl %eax, 0x4c(%rsp)
jmp 0x82dc
movl 0x4c(%rsp), %ecx
leaq 0x946c9(%rip), %rax     # 0x9c9b0
movl %ecx, (%rax)
leaq 0x258(%rsp), %rdi
leaq 0x7b8(%rsp), %rsi
callq 0x6200
jmp 0x8300
leaq 0x278(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x258(%rsp), %rdx
callq 0x493c0
jmp 0x831f
leaq 0x2f8(%rsp), %rdi
leaq 0x278(%rsp), %rsi
callq 0x65d0
leaq 0x278(%rsp), %rdi
callq 0x6988
leaq 0x258(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x8361
jmp 0x8374
leaq 0x94690(%rip), %rax     # 0x9c9f8
movsd (%rax), %xmm0
movsd %xmm0, 0x40(%rsp)
jmp 0x839b
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
callq 0x94b0
movsd %xmm0, 0x38(%rsp)
jmp 0x838d
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
jmp 0x839b
movsd 0x40(%rsp), %xmm0
leaq 0x94650(%rip), %rax     # 0x9c9f8
movsd %xmm0, (%rax)
leaq 0x218(%rsp), %rdi
leaq 0x790(%rsp), %rsi
callq 0x6200
jmp 0x83c3
leaq 0x238(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x493c0
jmp 0x83e2
leaq 0x2f8(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x65d0
leaq 0x238(%rsp), %rdi
callq 0x6988
leaq 0x218(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x8424
jmp 0x8433
leaq 0x944b9(%rip), %rax     # 0x9c8e4
movl (%rax), %eax
movl %eax, 0x34(%rsp)
jmp 0x8459
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
movl $0xa, %edx
callq 0x9460
movl %eax, 0x30(%rsp)
jmp 0x844f
movl 0x30(%rsp), %eax
movl %eax, 0x34(%rsp)
jmp 0x8459
movl 0x34(%rsp), %ecx
leaq 0x94480(%rip), %rax     # 0x9c8e4
movl %ecx, (%rax)
leaq 0x1d8(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x6200
jmp 0x847d
leaq 0x1f8(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x493c0
jmp 0x849c
leaq 0x2f8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x65d0
leaq 0x1f8(%rsp), %rdi
callq 0x6988
leaq 0x1d8(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x84de
jmp 0x84ed
leaq 0x943fb(%rip), %rax     # 0x9c8e0
movl (%rax), %eax
movl %eax, 0x2c(%rsp)
jmp 0x8513
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
movl $0xa, %edx
callq 0x9460
movl %eax, 0x28(%rsp)
jmp 0x8509
movl 0x28(%rsp), %eax
movl %eax, 0x2c(%rsp)
jmp 0x8513
movl 0x2c(%rsp), %ecx
leaq 0x943c2(%rip), %rax     # 0x9c8e0
movl %ecx, (%rax)
leaq 0x198(%rsp), %rdi
leaq 0x740(%rsp), %rsi
callq 0x6200
jmp 0x8537
leaq 0x1b8(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x493c0
jmp 0x8556
leaq 0x2f8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x65d0
leaq 0x1b8(%rsp), %rdi
callq 0x6988
leaq 0x198(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x8598
jmp 0x85a7
leaq 0x94465(%rip), %rax     # 0x9ca04
movl (%rax), %eax
movl %eax, 0x24(%rsp)
jmp 0x85cd
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
movl $0xa, %edx
callq 0x9460
movl %eax, 0x20(%rsp)
jmp 0x85c3
movl 0x20(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x85cd
movl 0x24(%rsp), %ecx
leaq 0x9442c(%rip), %rax     # 0x9ca04
movl %ecx, (%rax)
leaq 0x158(%rsp), %rdi
leaq 0x718(%rsp), %rsi
callq 0x6200
jmp 0x85f1
leaq 0x178(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x493c0
jmp 0x8610
leaq 0x2f8(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x65d0
leaq 0x178(%rsp), %rdi
callq 0x6988
leaq 0x158(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x8652
jmp 0x8665
leaq 0x94297(%rip), %rax     # 0x9c8f0
movsd (%rax), %xmm0
movsd %xmm0, 0x18(%rsp)
jmp 0x868c
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
callq 0x94b0
movsd %xmm0, 0x10(%rsp)
jmp 0x867e
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
jmp 0x868c
movsd 0x18(%rsp), %xmm0
leaq 0x94257(%rip), %rax     # 0x9c8f0
movsd %xmm0, (%rax)
leaq 0x118(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x6200
jmp 0x86b4
leaq 0x138(%rsp), %rdi
leaq 0x698(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0x493c0
jmp 0x86d3
leaq 0x2f8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x65d0
leaq 0x138(%rsp), %rdi
callq 0x6988
leaq 0x118(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x67b0
testb $0x1, %al
jne 0x8715
jmp 0x872b
leaq 0x941dc(%rip), %rax     # 0x9c8f8
movl (%rax), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x8(%rsp)
jmp 0x8750
xorl %eax, %eax
movl %eax, %esi
leaq 0x2f8(%rsp), %rdi
callq 0x94b0
movsd %xmm0, (%rsp)
jmp 0x8743
movsd (%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
jmp 0x8750
movsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %rax
movl %eax, %ecx
leaq 0x94194(%rip), %rax     # 0x9c8f8
movl %ecx, (%rax)
leaq 0x2f8(%rsp), %rdi
callq 0x6988
leaq 0x698(%rsp), %rdi
callq 0x94f0
leaq 0x6f0(%rsp), %rdi
callq 0x6988
leaq 0x718(%rsp), %rdi
callq 0x6988
leaq 0x740(%rsp), %rdi
callq 0x6988
leaq 0x768(%rsp), %rdi
callq 0x6988
leaq 0x790(%rsp), %rdi
callq 0x6988
leaq 0x7b8(%rsp), %rdi
callq 0x6988
leaq 0x7e0(%rsp), %rdi
callq 0x6988
leaq 0x808(%rsp), %rdi
callq 0x6988
leaq 0x830(%rsp), %rdi
callq 0x6988
leaq 0x868(%rsp), %rdi
callq 0x6988
addq $0x898, %rsp            # imm = 0x898
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x358(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x8867
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x338(%rsp), %rdi
callq 0x6988
leaq 0x318(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x2d8(%rsp), %rdi
callq 0x6988
jmp 0x89c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6988
jmp 0x89b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x858(%rsp)
movl %eax, 0x854(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x6988
leaq 0x2f8(%rsp), %rdi
callq 0x6988
leaq 0x698(%rsp), %rdi
callq 0x94f0
leaq 0x6f0(%rsp), %rdi
callq 0x6988
leaq 0x718(%rsp), %rdi
callq 0x6988
leaq 0x740(%rsp), %rdi
callq 0x6988
leaq 0x768(%rsp), %rdi
callq 0x6988
leaq 0x790(%rsp), %rdi
callq 0x6988
leaq 0x7b8(%rsp), %rdi
callq 0x6988
leaq 0x7e0(%rsp), %rdi
callq 0x6988
leaq 0x808(%rsp), %rdi
callq 0x6988
leaq 0x830(%rsp), %rdi
callq 0x6988
leaq 0x868(%rsp), %rdi
callq 0x6988
movq 0x858(%rsp), %rdi
callq 0x6850
movq %rax, %rdi
callq 0x9450
nopw %cs:(%rax,%rax)