// File: /workspace/github_cpp_makefile_star2_O1/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x5b8, %rsp            # imm = 0x5B8
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2aeb0(%rip), %rsi     # 0x3109a
leaq 0x2aeaf(%rip), %rdx     # 0x310a0
leaq 0x68(%rsp), %rdi
callq 0x823c
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2ae96(%rip), %rsi     # 0x310a1
leaq 0x2ae95(%rip), %rdx     # 0x310a7
leaq 0x48(%rsp), %rdi
callq 0x823c
leaq 0x178(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2ae79(%rip), %rsi     # 0x310a8
leaq 0x2ae77(%rip), %rdx     # 0x310ad
leaq 0x168(%rsp), %rdi
callq 0x823c
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2b05c(%rip), %rsi     # 0x312b2
leaq 0x2b057(%rip), %rdx     # 0x312b4
leaq 0x148(%rsp), %rdi
callq 0x823c
leaq 0x138(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2ae31(%rip), %rsi     # 0x310ae
leaq 0x2ae2c(%rip), %rdx     # 0x310b0
leaq 0x128(%rsp), %rdi
callq 0x823c
leaq 0x118(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2ae0d(%rip), %rsi     # 0x310b1
leaq 0x2ae0f(%rip), %rdx     # 0x310ba
leaq 0x108(%rsp), %rdi
callq 0x823c
leaq 0xf8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2adf0(%rip), %rsi     # 0x310bb
leaq 0x2adf1(%rip), %rdx     # 0x310c3
leaq 0xe8(%rsp), %rdi
callq 0x823c
leaq 0xd8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2add2(%rip), %rsi     # 0x310c4
leaq 0x2add9(%rip), %rdx     # 0x310d2
leaq 0xc8(%rsp), %rdi
callq 0x823c
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2adba(%rip), %rsi     # 0x310d3
leaq 0x2adba(%rip), %rdx     # 0x310da
leaq 0xa8(%rsp), %rdi
callq 0x823c
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2ad9b(%rip), %rsi     # 0x310db
leaq 0x2ad9e(%rip), %rdx     # 0x310e5
leaq 0x88(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x1f73c
leaq 0x5a8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2ad6d(%rip), %rsi     # 0x310e6
leaq 0x2ad6a(%rip), %rdx     # 0x310ea
leaq 0x598(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x598(%rsp), %rsi
callq 0x20e90
movq 0x598(%rsp), %rdi
cmpq %rbx, %rdi
je 0x63bf
movq 0x5a8(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x188(%rsp), %rdi
callq 0x20e9a
leaq 0x588(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x578(%rsp), %rdi
callq 0x82cc
leaq 0x568(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2ace6(%rip), %rsi     # 0x310eb
leaq 0x2acf0(%rip), %rdx     # 0x310fc
leaq 0x558(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x578(%rsp), %rsi
leaq 0x558(%rsp), %rcx
movl $0x1, %edx
callq 0x1f7be
movq 0x558(%rsp), %rdi
cmpq %r15, %rdi
je 0x6458
movq 0x568(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x578(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6475
movq 0x588(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x548(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x538(%rsp), %rdi
callq 0x82cc
leaq 0x528(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2ac4f(%rip), %rsi     # 0x310fd
leaq 0x2ac58(%rip), %rdx     # 0x3110d
leaq 0x518(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x538(%rsp), %rsi
leaq 0x518(%rsp), %rcx
movl $0x1, %edx
callq 0x1f7be
movq 0x518(%rsp), %rdi
cmpq %r15, %rdi
je 0x6501
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x538(%rsp), %rdi
cmpq %rbx, %rdi
je 0x651e
movq 0x548(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x508(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x168(%rsp), %rsi
movq 0x170(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4f8(%rsp), %rdi
callq 0x82cc
leaq 0x4e8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2abb1(%rip), %rsi     # 0x3110e
leaq 0x2abc0(%rip), %rdx     # 0x31124
leaq 0x4d8(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
leaq 0x4d8(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x4d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x65ad
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x4f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x65ca
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x4c8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4b8(%rsp), %rdi
callq 0x82cc
leaq 0x4a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2ab1c(%rip), %rsi     # 0x31125
leaq 0x2ab2b(%rip), %rdx     # 0x3113b
leaq 0x498(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
leaq 0x498(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x498(%rsp), %rdi
cmpq %r15, %rdi
je 0x6659
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x4b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6676
movq 0x4c8(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x488(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
leaq 0x478(%rsp), %rdi
callq 0x82cc
leaq 0x468(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2aa87(%rip), %rsi     # 0x3113c
leaq 0x2aab7(%rip), %rdx     # 0x31173
leaq 0x458(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x478(%rsp), %rsi
leaq 0x458(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x458(%rsp), %rdi
cmpq %r15, %rdi
je 0x6705
movq 0x468(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x478(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6722
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x448(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x438(%rsp), %rdi
callq 0x82cc
leaq 0x428(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2aa13(%rip), %rsi     # 0x31174
leaq 0x2aa3e(%rip), %rdx     # 0x311a6
leaq 0x418(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x438(%rsp), %rsi
leaq 0x418(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x418(%rsp), %rdi
cmpq %r15, %rdi
je 0x67b1
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x438(%rsp), %rdi
cmpq %rbx, %rdi
je 0x67ce
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x408(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3f8(%rsp), %rdi
callq 0x82cc
leaq 0x3e8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2a99a(%rip), %rsi     # 0x311a7
leaq 0x2a9c6(%rip), %rdx     # 0x311da
leaq 0x3d8(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
leaq 0x3d8(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x3d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x685d
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x3f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x687a
movq 0x408(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x3c8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3b8(%rsp), %rdi
callq 0x82cc
leaq 0x3a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2a922(%rip), %rsi     # 0x311db
leaq 0x2a93b(%rip), %rdx     # 0x311fb
leaq 0x398(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
leaq 0x398(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x398(%rsp), %rdi
cmpq %r15, %rdi
je 0x6909
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6926
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x388(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x378(%rsp), %rdi
callq 0x82cc
leaq 0x368(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2a897(%rip), %rsi     # 0x311fc
leaq 0x2a8c5(%rip), %rdx     # 0x31231
leaq 0x358(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x358(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x358(%rsp), %rdi
cmpq %r15, %rdi
je 0x69b5
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x378(%rsp), %rdi
cmpq %rbx, %rdi
je 0x69d2
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x348(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x338(%rsp), %rdi
callq 0x82cc
leaq 0x328(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2a821(%rip), %rsi     # 0x31232
leaq 0x2a860(%rip), %rdx     # 0x31278
leaq 0x318(%rsp), %rdi
callq 0x823c
leaq 0x188(%rsp), %rdi
leaq 0x338(%rsp), %rsi
leaq 0x318(%rsp), %rcx
xorl %edx, %edx
callq 0x1f7be
movq 0x318(%rsp), %rdi
cmpq %r15, %rdi
je 0x6a61
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x338(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6a7e
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x188(%rsp), %rdi
callq 0x1fa76
leaq 0x308(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2f8(%rsp), %rdi
callq 0x82cc
leaq 0x8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x2f8(%rsp), %rdx
callq 0x20dd8
leaq 0x3bdc6(%rip), %rdi     # 0x42898
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x5490
movq (%rbx), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6af9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x2f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6b16
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x2e8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2d8(%rsp), %rdi
callq 0x82cc
leaq 0x8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x2d8(%rsp), %rdx
callq 0x20dd8
movq 0x8(%rsp), %r14
callq 0x5060
movq %rax, %rbx
movl (%rax), %r13d
movl $0x0, (%rax)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5510
cmpq %r14, (%r15)
je 0x74cb
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x74d7
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x74d7
testl %ecx, %ecx
jne 0x6ba9
movl %r13d, (%rbx)
leaq 0x3bd30(%rip), %rcx     # 0x428e0
movl %eax, (%rcx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6bce
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x2d8(%rsp), %rdi
cmpq %r12, %rdi
je 0x6beb
movq 0x2e8(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x2c8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x168(%rsp), %rsi
movq 0x170(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2b8(%rsp), %rdi
callq 0x82cc
leaq 0x8(%rsp), %r14
leaq 0x188(%rsp), %rsi
leaq 0x2b8(%rsp), %rdx
movq %r14, %rdi
callq 0x20dd8
movq 0x2b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6c51
movq 0x2c8(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
leaq 0x3bc5a(%rip), %rdi     # 0x428b8
cmoveq %rdi, %r14
movq %r14, %rsi
callq 0x5210
leaq 0x2a8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
addq %rsi, %rdx
leaq 0x298(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x298(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
leaq 0x38(%rsp), %r12
cmpq %r12, %rdi
je 0x6cdc
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x298(%rsp), %rdi
cmpq %r15, %rdi
je 0x6cf9
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x53c0
movabsq $-0x100000000, %r13     # imm = 0xFFFFFFFF00000000
cmpq $0x0, 0x10(%rsp)
je 0x6d59
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5510
cmpq %r14, (%r15)
je 0x74e3
leaq -0x80000000(%rax), %rcx
cmpq %r13, %rcx
jb 0x74ef
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x74ef
testl %ecx, %ecx
jne 0x6d62
movl %ebp, (%rbx)
jmp 0x6d62
leaq 0x3bb30(%rip), %rax     # 0x42890
movl (%rax), %eax
leaq 0x3bb27(%rip), %rcx     # 0x42890
movl %eax, (%rcx)
leaq 0x288(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
leaq 0x278(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x278(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x6dd8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0x6df5
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x6e3a
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x52e0
cmpq %r14, (%r15)
je 0x74fb
movl (%rbx), %eax
testl %eax, %eax
je 0x6e47
cmpl $0x22, %eax
jne 0x6e49
leaq 0x2a451(%rip), %rdi     # 0x31286
callq 0x5550
leaq 0x3ba97(%rip), %rax     # 0x428d8
movsd (%rax), %xmm0
jmp 0x6e49
movl %ebp, (%rbx)
leaq 0x3ba88(%rip), %rax     # 0x428d8
movsd %xmm0, (%rax)
leaq 0x268(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x258(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x258(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x6ec1
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x258(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ede
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x6f34
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5510
cmpq %r14, (%r15)
je 0x7507
leaq -0x80000000(%rax), %rcx
cmpq %r13, %rcx
jb 0x7513
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x7513
testl %ecx, %ecx
jne 0x6f3d
movl %ebp, (%rbx)
jmp 0x6f3d
leaq 0x3b889(%rip), %rax     # 0x427c4
movl (%rax), %eax
leaq 0x3b880(%rip), %rcx     # 0x427c4
movl %eax, (%rcx)
leaq 0x248(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x238(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x238(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x6fb3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x238(%rsp), %rdi
cmpq %r15, %rdi
je 0x6fd0
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x7026
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5510
cmpq %r14, (%r15)
je 0x751f
leaq -0x80000000(%rax), %rcx
cmpq %r13, %rcx
jb 0x752b
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x752b
testl %ecx, %ecx
jne 0x702f
movl %ebp, (%rbx)
jmp 0x702f
leaq 0x3b793(%rip), %rax     # 0x427c0
movl (%rax), %eax
leaq 0x3b78a(%rip), %rcx     # 0x427c0
movl %eax, (%rcx)
leaq 0x228(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x218(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x70a5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x218(%rsp), %rdi
cmpq %r15, %rdi
je 0x70c2
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x7118
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5510
cmpq %r14, (%r15)
je 0x7537
leaq -0x80000000(%rax), %rcx
cmpq %r13, %rcx
jb 0x7543
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x7543
testl %ecx, %ecx
jne 0x7121
movl %ebp, (%rbx)
jmp 0x7121
leaq 0x3b7c5(%rip), %rax     # 0x428e4
movl (%rax), %eax
leaq 0x3b7bc(%rip), %rcx     # 0x428e4
movl %eax, (%rcx)
leaq 0x208(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1f8(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x7197
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x1f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x71b4
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x71f9
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x52e0
cmpq %r14, (%r15)
je 0x754f
movl (%rbx), %eax
testl %eax, %eax
je 0x7206
cmpl $0x22, %eax
jne 0x7208
leaq 0x2a092(%rip), %rdi     # 0x31286
callq 0x5550
leaq 0x3b5d0(%rip), %rax     # 0x427d0
movsd (%rax), %xmm0
jmp 0x7208
movl %ebp, (%rbx)
leaq 0x3b5c1(%rip), %rax     # 0x427d0
movsd %xmm0, (%rax)
leaq 0x1e8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1d8(%rsp), %rdi
callq 0x82cc
leaq 0x28(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x20dd8
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x5490
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x7280
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x1d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x729d
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x53c0
cmpq $0x0, 0x10(%rsp)
je 0x72ec
movq 0x8(%rsp), %r14
movl (%rbx), %ebp
movl $0x0, (%rbx)
leaq 0x28(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x52e0
cmpq %r14, (%r15)
je 0x755b
movl (%rbx), %eax
testl %eax, %eax
je 0x72ff
cmpl $0x22, %eax
leaq 0x78(%rsp), %r14
leaq 0x58(%rsp), %r15
jne 0x730b
leaq 0x29f9f(%rip), %rdi     # 0x31286
callq 0x5550
leaq 0x3b4e5(%rip), %rax     # 0x427d8
movl (%rax), %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
jmp 0x7301
movl %ebp, (%rbx)
leaq 0x78(%rsp), %r14
leaq 0x58(%rsp), %r15
cvttsd2si %xmm0, %rax
leaq 0x3b4c1(%rip), %rcx     # 0x427d8
movl %eax, (%rcx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7335
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7356
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x188(%rsp), %rdi
callq 0x8150
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x7388
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x73ad
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x73d2
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x73f7
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x741c
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x7441
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7466
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x748b
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x74a2
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x74b9
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x53c0
addq $0x5b8, %rsp            # imm = 0x5B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x29daf(%rip), %rdi     # 0x31281
callq 0x5240
leaq 0x29da3(%rip), %rdi     # 0x31281
callq 0x5550
leaq 0x29d97(%rip), %rdi     # 0x31281
callq 0x5240
leaq 0x29d8b(%rip), %rdi     # 0x31281
callq 0x5550
leaq 0x29d84(%rip), %rdi     # 0x31286
callq 0x5240
leaq 0x29d73(%rip), %rdi     # 0x31281
callq 0x5240
leaq 0x29d67(%rip), %rdi     # 0x31281
callq 0x5550
leaq 0x29d5b(%rip), %rdi     # 0x31281
callq 0x5240
leaq 0x29d4f(%rip), %rdi     # 0x31281
callq 0x5550
leaq 0x29d43(%rip), %rdi     # 0x31281
callq 0x5240
leaq 0x29d37(%rip), %rdi     # 0x31281
callq 0x5550
leaq 0x29d30(%rip), %rdi     # 0x31286
callq 0x5240
leaq 0x29d24(%rip), %rdi     # 0x31286
callq 0x5240
jmp 0x7a46
jmp 0x7a46
jmp 0x7a46
movq %rax, %r14
movq 0x1d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x1e8(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x1f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x208(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x218(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x228(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x238(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x248(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x258(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x268(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x288(%rsp), %rsi
jmp 0x7664
jmp 0x7673
movq %rax, %r14
movq 0x298(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a50
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7a50
jmp 0x7673
movq %rax, %r14
jmp 0x7a50
movq %rax, %r14
movq 0x2b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7aaf
movq 0x2c8(%rsp), %rsi
jmp 0x7a64
jmp 0x7aac
movq %rax, %r14
jmp 0x7a95
jmp 0x7aac
movq %rax, %r14
movq 0x2f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7aaf
movq 0x308(%rsp), %rsi
jmp 0x7a64
jmp 0x7aac
movq %rax, %r14
cmpl $0x1, %edx
jne 0x7aaf
movq %r14, %rdi
callq 0x5170
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
movq 0x3a8a8(%rip), %rdi     # 0x41fa0
movq %rax, %rsi
callq 0x53a0
movq %rax, %rdi
callq 0x51b0
xorl %edi, %edi
callq 0x5480
movq %rax, %r14
callq 0x55f0
jmp 0x7aaf
movq %rax, %rdi
callq 0x80d0
movq %rax, %r14
movq 0x318(%rsp), %rdi
cmpq %r15, %rdi
je 0x7749
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7749
movq %rax, %r14
movq 0x338(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x348(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x358(%rsp), %rdi
cmpq %r15, %rdi
je 0x778c
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x778c
movq %rax, %r14
movq 0x378(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x388(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x398(%rsp), %rdi
cmpq %r15, %rdi
je 0x77cf
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x77cf
movq %rax, %r14
movq 0x3b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x3c8(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x3d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7812
movq 0x3e8(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7812
movq %rax, %r14
movq 0x3f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x408(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x418(%rsp), %rdi
cmpq %r15, %rdi
je 0x7855
movq 0x428(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7855
movq %rax, %r14
movq 0x438(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x448(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x458(%rsp), %rdi
cmpq %r15, %rdi
je 0x7898
movq 0x468(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7898
movq %rax, %r14
movq 0x478(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x488(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x498(%rsp), %rdi
cmpq %r15, %rdi
je 0x78db
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x78db
movq %rax, %r14
movq 0x4b8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x4c8(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x4d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x791e
movq 0x4e8(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x791e
movq %rax, %r14
movq 0x4f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x508(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x518(%rsp), %rdi
cmpq %r15, %rdi
je 0x7961
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7961
movq %rax, %r14
movq 0x538(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x548(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x558(%rsp), %rdi
cmpq %r15, %rdi
je 0x79a4
movq 0x568(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x79a4
movq %rax, %r14
movq 0x578(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x588(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
movq 0x598(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7aaf
movq 0x5a8(%rsp), %rsi
jmp 0x7a64
jmp 0x7aac
movq %rax, %r14
jmp 0x7abc
movq %rax, %r14
jmp 0x7ae1
movq %rax, %r14
jmp 0x7b06
movq %rax, %r14
jmp 0x7b2b
movq %rax, %r14
jmp 0x7b50
movq %rax, %r14
jmp 0x7b75
movq %rax, %r14
jmp 0x7b9a
movq %rax, %r14
jmp 0x7bbf
movq %rax, %r14
jmp 0x7be4
movq %rax, %r14
jmp 0x7c00
movq %rax, %r14
jmp 0x7c1c
jmp 0x7a46
jmp 0x7a46
jmp 0x7a46
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x7a50
movl %ebp, (%rbx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7aaf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
jmp 0x7aaf
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x7a79
movl %r13d, (%rbx)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x7a95
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x2d8(%rsp), %rdi
cmpq %r12, %rdi
je 0x7aaf
movq 0x2e8(%rsp), %rsi
jmp 0x7a64
movq %rax, %r14
leaq 0x188(%rsp), %rdi
callq 0x80dc
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x7ae1
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x7b06
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x7b2b
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x7b50
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x7b75
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x7b9a
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x7bbf
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x7be4
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x7c00
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x7c1c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x53c0
movq %r14, %rdi
callq 0x5670