// File: Ziang95[P]Tomasulo_simulator/import.cpp
// Function: read_config_instrs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool read_config_instrs(string path)
{
    if (sys_clk.get_prog_cyc())
    {
        err_log("Unsafe config modification, CPU is running");
        return false;
    }
    msg_log("Reading input file " + path, 1);
    ifstream file;
    string line, h, h1, h2; //h = head
    int p[4]; //p = params
    config *cfg_ret = new config();
    try{file.open(path);}
    catch(const ifstream::failure& e)
    {
        err_log("Exception occurred when opening file "+path);
        return false;
    }
#pragma region read_CPU_config
    if (CPU_cfg)
        delete CPU_cfg;
    while(getline(file, line))
    {
        if (line.empty())
            continue;
        else
        {
            istringstream s(line);
            s>>h1>>h2;
            h = h1 + ' ' + h2;
            if (h == "# of")
                continue;
            if (h == "Integer adder")
            {
                s>>p[0]>>p[1]>>p[3];
                cfg_ret->int_add = new instr_param(p[0], p[1], 0, p[3]);
            }
            else if (h == "FP adder")
            {
                s>>p[0]>>p[1]>>p[3];
                cfg_ret->fp_add = new instr_param(p[0], p[1], 0, p[3]);
            }
            else if (h == "FP multiplier")
            {
                s>>p[0]>>p[1]>>p[3];
                cfg_ret->fp_mul = new instr_param(p[0], p[1], 0, p[3]);
            }
            else if (h == "Load/store unit")
            {
                s>>p[0]>>p[1]>>p[2]>>p[3];
                cfg_ret->ld_str = new instr_param(p[0], p[1], p[2], p[3]);
            }
            else if (h == "ROB entries")
            {
                s>>line>>p[0];
                cfg_ret->ROB_num = new int(p[0]);
            }
            else
                break;
        }
    }
    if (!cfg_ret->fp_add || !cfg_ret->fp_mul || !cfg_ret->int_add || !cfg_ret->ROB_num || !cfg_ret->ld_str)
    {
        err_log("Config file is incomplete");
        return false;
    }
    CPU_cfg = cfg_ret;
    msg_log("CPU config read", 0);
#pragma endregion
#pragma region read_ini_reg_values
    string tmp;
    reg->clear();
    do {getline(file, line);}while(line.empty()||line.size()<4);
    line.erase(remove(line.begin(),line.end(),' '),line.end());
    line.erase(remove(line.begin(),line.end(),'\t'),line.end());
    istringstream iss(line);
    while (getline(iss, tmp, ','))
    {
        size_t e = tmp.find('=');
        size_t f = tmp.find('F');
        size_t i = tmp.find('R');
        memCell val;
        if (i != string::npos)
        {
            if (tmp.find('.') != string::npos)
            {
                err_log("Error: Trying to assign float value to an int reg");
                return -1;
            }
            val.i = stoi(tmp.substr(e + 1, tmp.size() - e - 1));
            reg->set(tmp.substr(i, e), val);
        }
        else if (f != string::npos)
        {
            val.f = stof(tmp.substr(e + 1, tmp.size() - e - 1));
            reg->set(tmp.substr(f, e), val);
        }
        else
        {
            err_log("IDK what's going on, better check your reg init line");
            return -1;
        }
        
    }
    msg_log("Ini reg values read", 2);
#pragma endregion
#pragma region read_ini_mem_values
    do{getline(file, line);}while(line.empty()||line.size()<4);
    line.erase(remove(line.begin(),line.end(),' '),line.end());
    line.erase(remove(line.begin(),line.end(),'\t'),line.end());
    istringstream iss1(line);
    while (getline(iss1, tmp, ','))
    {
        size_t e = tmp.find('=');
        size_t lb = tmp.find('[');
        size_t rb = tmp.find(']');
        size_t flt = tmp.find('.');
        if (flt == string::npos)
        {
            int val = stoi(tmp.substr(e + 1, tmp.size() - e - 1));
            main_mem.setMem(INTGR, stoi(tmp.substr(lb+1, rb-lb-1)), &val);
        }
        else
        {
            float val = stof(tmp.substr(e + 1, tmp.size() - e - 1));
            main_mem.setMem(FLTP, stoi(tmp.substr(lb+1, rb-lb-1)), &val);
        }
    }
    msg_log("Ini mem values read", 2);
#pragma endregion
#pragma region read_instrs
    if (instr_Q)
        delete instr_Q;
    vector <instr> tmp_Q = {};
    string opName, dest, op1, op2, ofst, imm;
    while(getline(file, line))
    {
        if (line.empty())
            continue;
        else
        {
            instr tmp_i;
            tmp_i.name = line;
            istringstream s(line);
            s>>opName;
            opCode code = get_opcode(opName);
            switch (code)
            {
            case ADD:
            case ADD_D:
            case SUB:
            case SUB_D:
            case MUL_D:
            {
                getline(s, dest, ',');
                getline(s, op1, ',');
                getline(s, op2, ',');
                dest.erase(remove(dest.begin(), dest.end(), ' '), dest.end());
                op1.erase(remove(op1.begin(), op1.end(), ' '), op1.end());
                op2.erase(remove(op2.begin(), op2.end(), ' '), op2.end());
                dest.erase(remove(dest.begin(), dest.end(), '\t'), dest.end());
                op1.erase(remove(op1.begin(), op1.end(), '\t'), op1.end());
                op2.erase(remove(op2.begin(), op2.end(), '\t'), op2.end());
                tmp_i.code = code;
                tmp_i.dest = dest;
                tmp_i.oprnd1 = op1;
                tmp_i.oprnd2 = op2;
                break;
            }
            case ADDI:
            {
                getline(s, dest, ',');
                getline(s, op1, ',');
                getline(s, imm, ',');
                dest.erase(remove(dest.begin(), dest.end(), ' '), dest.end());
                op1.erase(remove(op1.begin(), op1.end(), ' '), op1.end());
                imm.erase(remove(imm.begin(), imm.end(), ' '), imm.end());
                dest.erase(remove(dest.begin(), dest.end(), '\t'), dest.end());
                op1.erase(remove(op1.begin(), op1.end(), '\t'), op1.end());
                imm.erase(remove(imm.begin(), imm.end(), '\t'), imm.end());
                tmp_i.code = code;
                tmp_i.dest = dest;
                tmp_i.oprnd1 = op1;
                tmp_i.imdt = stoi(imm);
                break;
            }
            case BNE:
            case BEQ:
            {
                getline(s, op1, ',');
                getline(s, op2, ',');
                getline(s, ofst, ',');
                op1.erase(remove(op1.begin(), op1.end(), ' '), op1.end());
                op2.erase(remove(op2.begin(), op2.end(), ' '), op2.end());
                ofst.erase(remove(ofst.begin(), ofst.end(), ' '), ofst.end());
                op1.erase(remove(op1.begin(), op1.end(), '\t'), op1.end());
                op2.erase(remove(op2.begin(), op2.end(), '\t'), op2.end());
                ofst.erase(remove(ofst.begin(), ofst.end(), '\t'), ofst.end());
                tmp_i.code = code;
                tmp_i.oprnd1 = op1;
                tmp_i.oprnd2 = op2;
                tmp_i.offset = stoi(ofst);
                break;
            }
            case LD:
            case SD:
            {
                getline(s, dest, ',');
                getline(s, ofst, ',');
                dest.erase(remove(dest.begin(), dest.end(), ' '), dest.end());
                ofst.erase(remove(ofst.begin(), ofst.end(), ' '), ofst.end());
                dest.erase(remove(dest.begin(), dest.end(), '\t'), dest.end());
                ofst.erase(remove(ofst.begin(), ofst.end(), '\t'), ofst.end());
                tmp_i.code = code;
                tmp_i.dest = dest;
                size_t lb = ofst.find('(');
                size_t rb = ofst.find(')');
                tmp_i.oprnd1 = ofst.substr(lb + 1, rb - lb - 1);
                tmp_i.offset = stoi(ofst.substr(0, lb));
                break;
            }
            case NOP:
            {
                tmp_i.code = NOP;
                break;
            }
            case ERR:
            {
                err_log("Instruction opCode error, please check input file " + path);
                return false;
                break;
            }
            default:
                break;
            }
            tmp_Q.push_back(tmp_i);
        }
    }
    instr_Q = new instr_queue(tmp_Q);
#pragma endregion
    msg_log("Read complete!", 1);
    file.close();
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a30, %rsp           # imm = 0x1A30
movq %rdi, -0x14b8(%rbp)
movq %rdi, -0x10(%rbp)
leaq 0x1d83b(%rip), %rdi     # 0x2fd98
callq 0x116c0
cmpl $0x0, %eax
je 0x125eb
leaq -0x31(%rbp), %rdi
movq %rdi, -0x14c0(%rbp)
callq 0x4600
movq -0x14c0(%rbp), %rdx
leaq 0xfe35(%rip), %rsi      # 0x223be
leaq -0x30(%rbp), %rdi
callq 0x44c0
jmp 0x12594
leaq -0x30(%rbp), %rdi
callq 0x11880
jmp 0x1259f
leaq -0x30(%rbp), %rdi
callq 0x4240
leaq -0x31(%rbp), %rdi
callq 0x43d0
movb $0x0, -0x1(%rbp)
jmp 0x15864
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x125dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4240
leaq -0x31(%rbp), %rdi
callq 0x43d0
jmp 0x15872
movq -0x14b8(%rbp), %rdx
leaq 0xfdf0(%rip), %rsi      # 0x223e9
leaq -0x68(%rbp), %rdi
movq %rdi, -0x14c8(%rbp)
callq 0xf080
movq -0x14c8(%rbp), %rdi
movl $0x1, %esi
callq 0x12060
jmp 0x1261c
leaq -0x68(%rbp), %rdi
callq 0x4240
leaq -0x270(%rbp), %rdi
callq 0x43f0
leaq -0x290(%rbp), %rdi
callq 0x44d0
leaq -0x2b0(%rbp), %rdi
callq 0x44d0
leaq -0x2d0(%rbp), %rdi
callq 0x44d0
leaq -0x2f0(%rbp), %rdi
callq 0x44d0
movl $0x28, %edi
callq 0x4380
movq %rax, -0x14d0(%rbp)
jmp 0x12674
movq -0x14d0(%rbp), %rdi
callq 0x15910
jmp 0x12682
movq -0x14b8(%rbp), %rsi
movq -0x14d0(%rbp), %rax
movq %rax, -0x308(%rbp)
leaq -0x270(%rbp), %rdi
movl $0x8, %edx
callq 0x4310
jmp 0x126aa
jmp 0x127a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4240
jmp 0x15872
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x15826
movq -0x14d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x15826
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x15826
movq -0x40(%rbp), %rdi
callq 0x4160
movq -0x14b8(%rbp), %rdx
movq %rax, -0x310(%rbp)
leaq 0xfccc(%rip), %rsi      # 0x223fd
leaq -0x330(%rbp), %rdi
callq 0xf080
jmp 0x1273f
leaq -0x330(%rbp), %rdi
callq 0x11880
jmp 0x1274d
leaq -0x330(%rbp), %rdi
callq 0x4240
movb $0x0, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
callq 0x4590
jmp 0x12796
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1279b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x4240
jmp 0x1279b
jmp 0x157e8
callq 0x4590
jmp 0x127a2
jmp 0x15826
leaq 0x1cca2(%rip), %rax     # 0x2f450
cmpq $0x0, (%rax)
je 0x127e5
leaq 0x1cc95(%rip), %rax     # 0x2f450
movq (%rax), %rax
movq %rax, -0x14d8(%rbp)
cmpq $0x0, %rax
je 0x127e3
movq -0x14d8(%rbp), %rdi
callq 0x15950
movq -0x14d8(%rbp), %rdi
callq 0x4350
jmp 0x127e5
jmp 0x127e7
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4090
movq %rax, -0x14e0(%rbp)
jmp 0x12803
movq -0x14e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4440
movb %al, -0x14e1(%rbp)
jmp 0x12821
movb -0x14e1(%rbp), %al
testb $0x1, %al
jne 0x12830
jmp 0x12df3
leaq -0x290(%rbp), %rdi
callq 0x45a0
testb $0x1, %al
jne 0x12842
jmp 0x12844
jmp 0x127e7
leaq -0x4b8(%rbp), %rdi
leaq -0x290(%rbp), %rsi
movl $0x8, %edx
callq 0x45b0
jmp 0x1285e
leaq -0x4b8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x4450
movq %rax, -0x14f0(%rbp)
jmp 0x1287a
movq -0x14f0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x4450
jmp 0x1288f
leaq -0x4f8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
movl $0x20, %edx
callq 0x15a80
jmp 0x128a9
leaq -0x4d8(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
callq 0x15a30
jmp 0x128c5
leaq -0x2b0(%rbp), %rdi
movq %rdi, -0x1500(%rbp)
leaq -0x4d8(%rbp), %rsi
movq %rsi, -0x1508(%rbp)
callq 0x4420
movq -0x1508(%rbp), %rdi
callq 0x4240
leaq -0x4f8(%rbp), %rdi
callq 0x4240
movq -0x1500(%rbp), %rdi
leaq 0xfb17(%rip), %rsi      # 0x22423
callq 0xfae0
movb %al, -0x14f1(%rbp)
jmp 0x12919
movb -0x14f1(%rbp), %al
testb $0x1, %al
jne 0x12925
jmp 0x12962
movl $0x2, -0x334(%rbp)
jmp 0x12daa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12ddd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x4240
jmp 0x12ddd
leaq 0xfabf(%rip), %rsi      # 0x22428
leaq -0x2b0(%rbp), %rdi
callq 0xfae0
movb %al, -0x1509(%rbp)
jmp 0x1297d
movb -0x1509(%rbp), %al
testb $0x1, %al
jne 0x1298c
jmp 0x12a43
leaq -0x4b8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4230
movq %rax, -0x1518(%rbp)
jmp 0x129a8
movq -0x1518(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x4230
movq %rax, -0x1520(%rbp)
jmp 0x129c4
movq -0x1520(%rbp), %rdi
leaq -0x2f4(%rbp), %rsi
callq 0x4230
jmp 0x129d9
movl $0x10, %edi
callq 0x4380
movq %rax, -0x1528(%rbp)
jmp 0x129ec
movq -0x1528(%rbp), %rdi
movl -0x300(%rbp), %esi
movl -0x2fc(%rbp), %edx
movl -0x2f4(%rbp), %r8d
xorl %ecx, %ecx
callq 0x15b00
jmp 0x12a0f
movq -0x1528(%rbp), %rcx
movq -0x308(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x12da0
movq -0x1528(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x12ddd
leaq 0xf9ec(%rip), %rsi      # 0x22436
leaq -0x2b0(%rbp), %rdi
callq 0xfae0
movb %al, -0x1529(%rbp)
jmp 0x12a5e
movb -0x1529(%rbp), %al
testb $0x1, %al
jne 0x12a6d
jmp 0x12b24
leaq -0x4b8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4230
movq %rax, -0x1538(%rbp)
jmp 0x12a89
movq -0x1538(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x4230
movq %rax, -0x1540(%rbp)
jmp 0x12aa5
movq -0x1540(%rbp), %rdi
leaq -0x2f4(%rbp), %rsi
callq 0x4230
jmp 0x12aba
movl $0x10, %edi
callq 0x4380
movq %rax, -0x1548(%rbp)
jmp 0x12acd
movq -0x1548(%rbp), %rdi
movl -0x300(%rbp), %esi
movl -0x2fc(%rbp), %edx
movl -0x2f4(%rbp), %r8d
xorl %ecx, %ecx
callq 0x15b00
jmp 0x12af0
movq -0x1548(%rbp), %rcx
movq -0x308(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x12d9e
movq -0x1548(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x12ddd
leaq 0xf914(%rip), %rsi      # 0x2243f
leaq -0x2b0(%rbp), %rdi
callq 0xfae0
movb %al, -0x1549(%rbp)
jmp 0x12b3f
movb -0x1549(%rbp), %al
testb $0x1, %al
jne 0x12b4e
jmp 0x12c05
leaq -0x4b8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4230
movq %rax, -0x1558(%rbp)
jmp 0x12b6a
movq -0x1558(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x4230
movq %rax, -0x1560(%rbp)
jmp 0x12b86
movq -0x1560(%rbp), %rdi
leaq -0x2f4(%rbp), %rsi
callq 0x4230
jmp 0x12b9b
movl $0x10, %edi
callq 0x4380
movq %rax, -0x1568(%rbp)
jmp 0x12bae
movq -0x1568(%rbp), %rdi
movl -0x300(%rbp), %esi
movl -0x2fc(%rbp), %edx
movl -0x2f4(%rbp), %r8d
xorl %ecx, %ecx
callq 0x15b00
jmp 0x12bd1
movq -0x1568(%rbp), %rcx
movq -0x308(%rbp), %rax
movq %rcx, 0x18(%rax)
jmp 0x12d9c
movq -0x1568(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x12ddd
leaq 0xf841(%rip), %rsi      # 0x2244d
leaq -0x2b0(%rbp), %rdi
callq 0xfae0
movb %al, -0x1569(%rbp)
jmp 0x12c20
movb -0x1569(%rbp), %al
testb $0x1, %al
jne 0x12c2f
jmp 0x12d06
leaq -0x4b8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4230
movq %rax, -0x1578(%rbp)
jmp 0x12c4b
movq -0x1578(%rbp), %rdi
leaq -0x2fc(%rbp), %rsi
callq 0x4230
movq %rax, -0x1580(%rbp)
jmp 0x12c67
movq -0x1580(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x4230
movq %rax, -0x1588(%rbp)
jmp 0x12c83
movq -0x1588(%rbp), %rdi
leaq -0x2f4(%rbp), %rsi
callq 0x4230
jmp 0x12c98
movl $0x10, %edi
callq 0x4380
movq %rax, -0x1590(%rbp)
jmp 0x12cab
movq -0x1590(%rbp), %rdi
movl -0x300(%rbp), %esi
movl -0x2fc(%rbp), %edx
movl -0x2f8(%rbp), %ecx
movl -0x2f4(%rbp), %r8d
callq 0x15b00
jmp 0x12cd2
movq -0x1590(%rbp), %rcx
movq -0x308(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0x12d9a
movq -0x1590(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x4350
jmp 0x12ddd
leaq 0xf750(%rip), %rsi      # 0x2245d
leaq -0x2b0(%rbp), %rdi
callq 0xfae0
movb %al, -0x1591(%rbp)
jmp 0x12d21
movb -0x1591(%rbp), %al
testb $0x1, %al
jne 0x12d2d
jmp 0x12d8c
leaq -0x4b8(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4450
movq %rax, -0x15a0(%rbp)
jmp 0x12d49
movq -0x15a0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4230
jmp 0x12d5e
movl $0x4, %edi
callq 0x4380
movq %rax, -0x15a8(%rbp)
jmp 0x12d71
movq -0x15a8(%rbp), %rcx
movl -0x300(%rbp), %eax
movl %eax, (%rcx)
movq -0x308(%rbp), %rax
movq %rcx, (%rax)
jmp 0x12d98
movl $0x3, -0x334(%rbp)
jmp 0x12daa
jmp 0x12d9a
jmp 0x12d9c
jmp 0x12d9e
jmp 0x12da0
movl $0x0, -0x334(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x41b0
movl -0x334(%rbp), %eax
movl %eax, -0x15ac(%rbp)
testl %eax, %eax
je 0x12ddb
jmp 0x12dc8
movl -0x15ac(%rbp), %eax
subl $0x2, %eax
je 0x127e7
jmp 0x12dd9
jmp 0x12df3
jmp 0x12dee
leaq -0x4b8(%rbp), %rdi
callq 0x41b0
jmp 0x15826
jmp 0x127e7
movq -0x308(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x12e3c
movq -0x308(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x12e3c
movq -0x308(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x12e3c
movq -0x308(%rbp), %rax
cmpq $0x0, (%rax)
je 0x12e3c
movq -0x308(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x12edb
leaq -0x519(%rbp), %rdi
movq %rdi, -0x15b8(%rbp)
callq 0x4600
movq -0x15b8(%rbp), %rdx
leaq 0xf60c(%rip), %rsi      # 0x22469
leaq -0x518(%rbp), %rdi
callq 0x44c0
jmp 0x12e6b
leaq -0x518(%rbp), %rdi
callq 0x11880
jmp 0x12e79
leaq -0x518(%rbp), %rdi
callq 0x4240
leaq -0x519(%rbp), %rdi
callq 0x43d0
movb $0x0, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
jmp 0x157e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12eca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x4240
leaq -0x519(%rbp), %rdi
callq 0x43d0
jmp 0x15826
movq -0x308(%rbp), %rcx
leaq 0x1c567(%rip), %rax     # 0x2f450
movq %rcx, (%rax)
leaq -0x541(%rbp), %rdi
movq %rdi, -0x15c0(%rbp)
callq 0x4600
movq -0x15c0(%rbp), %rdx
leaq 0xf576(%rip), %rsi      # 0x22483
leaq -0x540(%rbp), %rdi
callq 0x44c0
jmp 0x12f1b
leaq -0x540(%rbp), %rdi
xorl %esi, %esi
callq 0x12060
jmp 0x12f2b
leaq -0x540(%rbp), %rdi
callq 0x4240
leaq -0x541(%rbp), %rdi
callq 0x43d0
leaq -0x568(%rbp), %rdi
callq 0x44d0
leaq 0x1ce3a(%rip), %rax     # 0x2fd90
movq (%rax), %rdi
callq 0x20bc0
jmp 0x12f60
jmp 0x12f62
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4090
jmp 0x12f77
jmp 0x12f79
leaq -0x290(%rbp), %rdi
callq 0x45a0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x15c1(%rbp)
jne 0x12fad
leaq -0x290(%rbp), %rdi
callq 0x4270
cmpq $0x4, %rax
setb %al
movb %al, -0x15c1(%rbp)
movb -0x15c1(%rbp), %al
testb $0x1, %al
jne 0x12f62
leaq -0x290(%rbp), %rdi
movq %rdi, -0x15d8(%rbp)
callq 0x4320
movq -0x15d8(%rbp), %rdi
movq %rax, -0x580(%rbp)
callq 0x4200
movq %rax, -0x588(%rbp)
movb $0x20, -0x589(%rbp)
movq -0x580(%rbp), %rdi
movq -0x588(%rbp), %rsi
leaq -0x589(%rbp), %rdx
callq 0x15b40
movq %rax, -0x15d0(%rbp)
jmp 0x1300e
movq -0x15d0(%rbp), %rax
movq %rax, -0x578(%rbp)
leaq -0x570(%rbp), %rdi
leaq -0x578(%rbp), %rsi
callq 0x15b90
leaq -0x290(%rbp), %rdi
movq %rdi, -0x15e8(%rbp)
callq 0x4200
movq %rax, -0x5a0(%rbp)
leaq -0x598(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
callq 0x15b90
movq -0x15e8(%rbp), %rdi
movq -0x570(%rbp), %rsi
movq -0x598(%rbp), %rdx
callq 0x40c0
movq %rax, -0x15e0(%rbp)
jmp 0x1307f
movq -0x15e0(%rbp), %rax
movq %rax, -0x5a8(%rbp)
leaq -0x290(%rbp), %rdi
movq %rdi, -0x15f8(%rbp)
callq 0x4320
movq -0x15f8(%rbp), %rdi
movq %rax, -0x5c0(%rbp)
callq 0x4200
movq %rax, -0x5c8(%rbp)
movb $0x9, -0x5c9(%rbp)
movq -0x5c0(%rbp), %rdi
movq -0x5c8(%rbp), %rsi
leaq -0x5c9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x15f0(%rbp)
jmp 0x130e4
movq -0x15f0(%rbp), %rax
movq %rax, -0x5b8(%rbp)
leaq -0x5b0(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
callq 0x15b90
leaq -0x290(%rbp), %rdi
movq %rdi, -0x1608(%rbp)
callq 0x4200
movq %rax, -0x5e0(%rbp)
leaq -0x5d8(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
callq 0x15b90
movq -0x1608(%rbp), %rdi
movq -0x5b0(%rbp), %rsi
movq -0x5d8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1600(%rbp)
jmp 0x13155
movq -0x1600(%rbp), %rax
movq %rax, -0x5e8(%rbp)
leaq -0x768(%rbp), %rdi
leaq -0x290(%rbp), %rsi
movl $0x8, %edx
callq 0x45b0
jmp 0x1317d
jmp 0x1317f
leaq -0x768(%rbp), %rdi
leaq -0x568(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
movq %rax, -0x1610(%rbp)
jmp 0x131a0
movq -0x1610(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4440
movb %al, -0x1611(%rbp)
jmp 0x131be
movb -0x1611(%rbp), %al
testb $0x1, %al
jne 0x131cd
jmp 0x1364b
leaq -0x568(%rbp), %rdi
movl $0x3d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0x770(%rbp)
leaq -0x568(%rbp), %rdi
movl $0x46, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0x778(%rbp)
leaq -0x568(%rbp), %rdi
movl $0x52, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0x780(%rbp)
cmpq $-0x1, -0x780(%rbp)
je 0x1346e
leaq -0x568(%rbp), %rdi
movl $0x2e, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
cmpq $-0x1, %rax
je 0x13346
leaq -0x7a9(%rbp), %rdi
movq %rdi, -0x1620(%rbp)
callq 0x4600
movq -0x1620(%rbp), %rdx
leaq 0xf224(%rip), %rsi      # 0x22493
leaq -0x7a8(%rbp), %rdi
callq 0x44c0
jmp 0x1327d
leaq -0x7a8(%rbp), %rdi
callq 0x11880
jmp 0x1328b
leaq -0x7a8(%rbp), %rdi
callq 0x4240
leaq -0x7a9(%rbp), %rdi
callq 0x43d0
movb $0x1, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
jmp 0x157b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x132dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x4240
leaq -0x541(%rbp), %rdi
callq 0x43d0
jmp 0x15826
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x157da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x157ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x13335
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x7a8(%rbp), %rdi
callq 0x4240
leaq -0x7a9(%rbp), %rdi
callq 0x43d0
jmp 0x157ce
movq -0x770(%rbp), %rax
incq %rax
movq %rax, -0x1628(%rbp)
leaq -0x568(%rbp), %rdi
movq %rdi, -0x1630(%rbp)
callq 0x4270
movq -0x1630(%rbp), %rsi
movq -0x1628(%rbp), %rdx
movq -0x770(%rbp), %rcx
notq %rcx
addq %rax, %rcx
leaq -0x7d0(%rbp), %rdi
callq 0x4390
jmp 0x13393
xorl %eax, %eax
movl %eax, %esi
leaq -0x7d0(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x1634(%rbp)
jmp 0x133b0
movl -0x1634(%rbp), %eax
movl %eax, -0x784(%rbp)
leaq -0x7d0(%rbp), %rdi
callq 0x4240
leaq 0x1c9c1(%rip), %rax     # 0x2fd90
movq (%rax), %rax
movq %rax, -0x1640(%rbp)
movq -0x780(%rbp), %rdx
movq -0x770(%rbp), %rcx
leaq -0x7f0(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x4390
jmp 0x133fc
movq -0x1640(%rbp), %rdi
movl -0x784(%rbp), %eax
movl %eax, -0x7f4(%rbp)
movl -0x7f4(%rbp), %edx
leaq -0x7f0(%rbp), %rsi
callq 0x208f0
jmp 0x13423
leaq -0x7f0(%rbp), %rdi
callq 0x4240
jmp 0x13646
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x7d0(%rbp), %rdi
callq 0x4240
jmp 0x157ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x7f0(%rbp), %rdi
callq 0x4240
jmp 0x157ce
cmpq $-0x1, -0x778(%rbp)
je 0x135a5
movq -0x770(%rbp), %rax
incq %rax
movq %rax, -0x1648(%rbp)
leaq -0x568(%rbp), %rdi
movq %rdi, -0x1650(%rbp)
callq 0x4270
movq -0x1650(%rbp), %rsi
movq -0x1648(%rbp), %rdx
movq -0x770(%rbp), %rcx
notq %rcx
addq %rax, %rcx
leaq -0x818(%rbp), %rdi
callq 0x4390
jmp 0x134c9
xorl %eax, %eax
movl %eax, %esi
leaq -0x818(%rbp), %rdi
callq 0x15c10
movss %xmm0, -0x1654(%rbp)
jmp 0x134e3
movss -0x1654(%rbp), %xmm0
movss %xmm0, -0x784(%rbp)
leaq -0x818(%rbp), %rdi
callq 0x4240
leaq 0x1c88a(%rip), %rax     # 0x2fd90
movq (%rax), %rax
movq %rax, -0x1660(%rbp)
movq -0x778(%rbp), %rdx
movq -0x770(%rbp), %rcx
leaq -0x838(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x4390
jmp 0x13533
movq -0x1660(%rbp), %rdi
movl -0x784(%rbp), %eax
movl %eax, -0x83c(%rbp)
movl -0x83c(%rbp), %edx
leaq -0x838(%rbp), %rsi
callq 0x208f0
jmp 0x1355a
leaq -0x838(%rbp), %rdi
callq 0x4240
jmp 0x13644
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x818(%rbp), %rdi
callq 0x4240
jmp 0x157ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x838(%rbp), %rdi
callq 0x4240
jmp 0x157ce
leaq -0x861(%rbp), %rdi
movq %rdi, -0x1668(%rbp)
callq 0x4600
movq -0x1668(%rbp), %rdx
leaq 0xeeff(%rip), %rsi      # 0x224c5
leaq -0x860(%rbp), %rdi
callq 0x44c0
jmp 0x135d4
leaq -0x860(%rbp), %rdi
callq 0x11880
jmp 0x135e2
leaq -0x860(%rbp), %rdi
callq 0x4240
leaq -0x861(%rbp), %rdi
callq 0x43d0
movb $0x1, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
jmp 0x157b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x13633
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x860(%rbp), %rdi
callq 0x4240
leaq -0x861(%rbp), %rdi
callq 0x43d0
jmp 0x157ce
jmp 0x13646
jmp 0x1317f
leaq -0x889(%rbp), %rdi
movq %rdi, -0x1670(%rbp)
callq 0x4600
movq -0x1670(%rbp), %rdx
leaq 0xee8e(%rip), %rsi      # 0x224fa
leaq -0x888(%rbp), %rdi
callq 0x44c0
jmp 0x1367a
leaq -0x888(%rbp), %rdi
movl $0x2, %esi
callq 0x12060
jmp 0x1368d
leaq -0x888(%rbp), %rdi
callq 0x4240
leaq -0x889(%rbp), %rdi
callq 0x43d0
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4090
jmp 0x136ba
jmp 0x136bc
leaq -0x290(%rbp), %rdi
callq 0x45a0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1671(%rbp)
jne 0x136f0
leaq -0x290(%rbp), %rdi
callq 0x4270
cmpq $0x4, %rax
setb %al
movb %al, -0x1671(%rbp)
movb -0x1671(%rbp), %al
testb $0x1, %al
jne 0x136a5
leaq -0x290(%rbp), %rdi
movq %rdi, -0x1688(%rbp)
callq 0x4320
movq -0x1688(%rbp), %rdi
movq %rax, -0x8a8(%rbp)
callq 0x4200
movq %rax, -0x8b0(%rbp)
movb $0x20, -0x8b1(%rbp)
movq -0x8a8(%rbp), %rdi
movq -0x8b0(%rbp), %rsi
leaq -0x8b1(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1680(%rbp)
jmp 0x13751
movq -0x1680(%rbp), %rax
movq %rax, -0x8a0(%rbp)
leaq -0x898(%rbp), %rdi
leaq -0x8a0(%rbp), %rsi
callq 0x15b90
leaq -0x290(%rbp), %rdi
movq %rdi, -0x1698(%rbp)
callq 0x4200
movq %rax, -0x8c8(%rbp)
leaq -0x8c0(%rbp), %rdi
leaq -0x8c8(%rbp), %rsi
callq 0x15b90
movq -0x1698(%rbp), %rdi
movq -0x898(%rbp), %rsi
movq -0x8c0(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1690(%rbp)
jmp 0x137c2
movq -0x1690(%rbp), %rax
movq %rax, -0x8d0(%rbp)
leaq -0x290(%rbp), %rdi
movq %rdi, -0x16a8(%rbp)
callq 0x4320
movq -0x16a8(%rbp), %rdi
movq %rax, -0x8e8(%rbp)
callq 0x4200
movq %rax, -0x8f0(%rbp)
movb $0x9, -0x8f1(%rbp)
movq -0x8e8(%rbp), %rdi
movq -0x8f0(%rbp), %rsi
leaq -0x8f1(%rbp), %rdx
callq 0x15b40
movq %rax, -0x16a0(%rbp)
jmp 0x13827
movq -0x16a0(%rbp), %rax
movq %rax, -0x8e0(%rbp)
leaq -0x8d8(%rbp), %rdi
leaq -0x8e0(%rbp), %rsi
callq 0x15b90
leaq -0x290(%rbp), %rdi
movq %rdi, -0x16b8(%rbp)
callq 0x4200
movq %rax, -0x908(%rbp)
leaq -0x900(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0x15b90
movq -0x16b8(%rbp), %rdi
movq -0x8d8(%rbp), %rsi
movq -0x900(%rbp), %rdx
callq 0x40c0
movq %rax, -0x16b0(%rbp)
jmp 0x13898
movq -0x16b0(%rbp), %rax
movq %rax, -0x910(%rbp)
leaq -0xa90(%rbp), %rdi
leaq -0x290(%rbp), %rsi
movl $0x8, %edx
callq 0x45b0
jmp 0x138c0
jmp 0x138c2
leaq -0xa90(%rbp), %rdi
leaq -0x568(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
movq %rax, -0x16c0(%rbp)
jmp 0x138e3
movq -0x16c0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4440
movb %al, -0x16c1(%rbp)
jmp 0x13901
movb -0x16c1(%rbp), %al
testb $0x1, %al
jne 0x13910
jmp 0x13c48
leaq -0x568(%rbp), %rdi
movl $0x3d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0xa98(%rbp)
leaq -0x568(%rbp), %rdi
movl $0x5b, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0xaa0(%rbp)
leaq -0x568(%rbp), %rdi
movl $0x5d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0xaa8(%rbp)
leaq -0x568(%rbp), %rdi
movl $0x2e, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x4490
movq %rax, -0xab0(%rbp)
cmpq $-0x1, -0xab0(%rbp)
jne 0x13b0c
movq -0xa98(%rbp), %rax
incq %rax
movq %rax, -0x16d0(%rbp)
leaq -0x568(%rbp), %rdi
movq %rdi, -0x16d8(%rbp)
callq 0x4270
movq -0x16d8(%rbp), %rsi
movq -0x16d0(%rbp), %rdx
movq -0xa98(%rbp), %rcx
notq %rcx
addq %rax, %rcx
leaq -0xad8(%rbp), %rdi
callq 0x4390
jmp 0x139db
xorl %eax, %eax
movl %eax, %esi
leaq -0xad8(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x16dc(%rbp)
jmp 0x139f8
leaq -0xad8(%rbp), %rdi
callq 0x4240
movl -0x16dc(%rbp), %eax
movl %eax, -0xab4(%rbp)
movq -0xaa0(%rbp), %rcx
movq %rcx, %rdx
incq %rdx
movq -0xaa8(%rbp), %rax
notq %rcx
addq %rax, %rcx
leaq -0xaf8(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x4390
jmp 0x13a3f
xorl %eax, %eax
movl %eax, %esi
leaq -0xaf8(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x16e0(%rbp)
jmp 0x13a5c
movl -0x16e0(%rbp), %edx
leaq 0x1c3b7(%rip), %rdi     # 0x2fe20
xorl %esi, %esi
leaq -0xab4(%rbp), %rcx
callq 0x1b1f0
jmp 0x13a79
leaq -0xaf8(%rbp), %rdi
callq 0x4240
jmp 0x13c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x13ab0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x888(%rbp), %rdi
callq 0x4240
leaq -0x889(%rbp), %rdi
callq 0x43d0
jmp 0x157ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x157a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xad8(%rbp), %rdi
callq 0x4240
jmp 0x157a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xaf8(%rbp), %rdi
callq 0x4240
jmp 0x157a6
movq -0xa98(%rbp), %rax
incq %rax
movq %rax, -0x16e8(%rbp)
leaq -0x568(%rbp), %rdi
movq %rdi, -0x16f0(%rbp)
callq 0x4270
movq -0x16f0(%rbp), %rsi
movq -0x16e8(%rbp), %rdx
movq -0xa98(%rbp), %rcx
notq %rcx
addq %rax, %rcx
leaq -0xb20(%rbp), %rdi
callq 0x4390
jmp 0x13b59
xorl %eax, %eax
movl %eax, %esi
leaq -0xb20(%rbp), %rdi
callq 0x15c10
movss %xmm0, -0x16f4(%rbp)
jmp 0x13b73
leaq -0xb20(%rbp), %rdi
callq 0x4240
movss -0x16f4(%rbp), %xmm0
movss %xmm0, -0xafc(%rbp)
movq -0xaa0(%rbp), %rcx
movq %rcx, %rdx
incq %rdx
movq -0xaa8(%rbp), %rax
notq %rcx
addq %rax, %rcx
leaq -0xb40(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x4390
jmp 0x13bbe
xorl %eax, %eax
movl %eax, %esi
leaq -0xb40(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x16f8(%rbp)
jmp 0x13bdb
movl -0x16f8(%rbp), %edx
leaq 0x1c238(%rip), %rdi     # 0x2fe20
movl $0x1, %esi
leaq -0xafc(%rbp), %rcx
callq 0x1b1f0
jmp 0x13bfb
leaq -0xb40(%rbp), %rdi
callq 0x4240
jmp 0x13c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb20(%rbp), %rdi
callq 0x4240
jmp 0x157a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb40(%rbp), %rdi
callq 0x4240
jmp 0x157a6
jmp 0x138c2
leaq -0xb61(%rbp), %rdi
movq %rdi, -0x1700(%rbp)
callq 0x4600
movq -0x1700(%rbp), %rdx
leaq 0xe8a5(%rip), %rsi      # 0x2250e
leaq -0xb60(%rbp), %rdi
callq 0x44c0
jmp 0x13c77
leaq -0xb60(%rbp), %rdi
movl $0x2, %esi
callq 0x12060
jmp 0x13c8a
leaq -0xb60(%rbp), %rdi
callq 0x4240
leaq -0xb61(%rbp), %rdi
callq 0x43d0
leaq 0x1b7af(%rip), %rax     # 0x2f458
cmpq $0x0, (%rax)
je 0x13d17
leaq 0x1b7a2(%rip), %rax     # 0x2f458
movq (%rax), %rax
movq %rax, -0x1708(%rbp)
cmpq $0x0, %rax
je 0x13cde
movq -0x1708(%rbp), %rdi
callq 0x15c50
movq -0x1708(%rbp), %rdi
callq 0x4350
jmp 0x13d17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x13d06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb60(%rbp), %rdi
callq 0x4240
leaq -0xb61(%rbp), %rdi
callq 0x43d0
jmp 0x157a6
leaq -0xb80(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x41e0
leaq -0xb80(%rbp), %rdi
callq 0x15c70
leaq -0xba0(%rbp), %rdi
callq 0x44d0
leaq -0xbc0(%rbp), %rdi
callq 0x44d0
leaq -0xbe0(%rbp), %rdi
callq 0x44d0
leaq -0xc00(%rbp), %rdi
callq 0x44d0
leaq -0xc20(%rbp), %rdi
callq 0x44d0
leaq -0xc40(%rbp), %rdi
callq 0x44d0
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4090
movq %rax, -0x1710(%rbp)
jmp 0x13d9a
movq -0x1710(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4440
movb %al, -0x1711(%rbp)
jmp 0x13db8
movb -0x1711(%rbp), %al
testb $0x1, %al
jne 0x13dc7
jmp 0x1559a
leaq -0x290(%rbp), %rdi
callq 0x45a0
testb $0x1, %al
jne 0x13dd9
jmp 0x13dec
jmp 0x13d7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x15752
leaq -0xcd0(%rbp), %rdi
movq %rdi, -0x1720(%rbp)
callq 0x15c90
movq -0x1720(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x4050
jmp 0x13e14
leaq -0xe50(%rbp), %rdi
leaq -0x290(%rbp), %rsi
movl $0x8, %edx
callq 0x45b0
jmp 0x13e2e
leaq -0xe50(%rbp), %rdi
leaq -0xba0(%rbp), %rsi
callq 0x4450
jmp 0x13e43
leaq -0xe78(%rbp), %rdi
leaq -0xba0(%rbp), %rsi
callq 0x4180
jmp 0x13e58
leaq -0xe78(%rbp), %rdi
callq 0x12350
movl %eax, -0x1724(%rbp)
jmp 0x13e6c
leaq -0xe78(%rbp), %rdi
callq 0x4240
movl -0x1724(%rbp), %eax
movl %eax, -0xe54(%rbp)
movl -0xe54(%rbp), %eax
movq %rax, -0x1730(%rbp)
subq $0xb, %rax
ja 0x1552d
movq -0x1730(%rbp), %rax
leaq 0xe4a3(%rip), %rcx      # 0x2234c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x15584
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x15578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe78(%rbp), %rdi
callq 0x4240
jmp 0x15578
leaq -0xe50(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x13f0b
leaq -0xe50(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x13f25
leaq -0xe50(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x13f3f
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1740(%rbp)
callq 0x4320
movq -0x1740(%rbp), %rdi
movq %rax, -0xe90(%rbp)
callq 0x4200
movq %rax, -0xe98(%rbp)
movb $0x20, -0xe99(%rbp)
movq -0xe90(%rbp), %rdi
movq -0xe98(%rbp), %rsi
leaq -0xe99(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1738(%rbp)
jmp 0x13f96
movq -0x1738(%rbp), %rax
movq %rax, -0xe88(%rbp)
leaq -0xe80(%rbp), %rdi
leaq -0xe88(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1750(%rbp)
callq 0x4200
movq %rax, -0xeb0(%rbp)
leaq -0xea8(%rbp), %rdi
leaq -0xeb0(%rbp), %rsi
callq 0x15b90
movq -0x1750(%rbp), %rdi
movq -0xe80(%rbp), %rsi
movq -0xea8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1748(%rbp)
jmp 0x14007
movq -0x1748(%rbp), %rax
movq %rax, -0xeb8(%rbp)
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1760(%rbp)
callq 0x4320
movq -0x1760(%rbp), %rdi
movq %rax, -0xed0(%rbp)
callq 0x4200
movq %rax, -0xed8(%rbp)
movb $0x20, -0xed9(%rbp)
movq -0xed0(%rbp), %rdi
movq -0xed8(%rbp), %rsi
leaq -0xed9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1758(%rbp)
jmp 0x1406c
movq -0x1758(%rbp), %rax
movq %rax, -0xec8(%rbp)
leaq -0xec0(%rbp), %rdi
leaq -0xec8(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1770(%rbp)
callq 0x4200
movq %rax, -0xef0(%rbp)
leaq -0xee8(%rbp), %rdi
leaq -0xef0(%rbp), %rsi
callq 0x15b90
movq -0x1770(%rbp), %rdi
movq -0xec0(%rbp), %rsi
movq -0xee8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1768(%rbp)
jmp 0x140dd
movq -0x1768(%rbp), %rax
movq %rax, -0xef8(%rbp)
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x1780(%rbp)
callq 0x4320
movq -0x1780(%rbp), %rdi
movq %rax, -0xf10(%rbp)
callq 0x4200
movq %rax, -0xf18(%rbp)
movb $0x20, -0xf19(%rbp)
movq -0xf10(%rbp), %rdi
movq -0xf18(%rbp), %rsi
leaq -0xf19(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1778(%rbp)
jmp 0x14142
movq -0x1778(%rbp), %rax
movq %rax, -0xf08(%rbp)
leaq -0xf00(%rbp), %rdi
leaq -0xf08(%rbp), %rsi
callq 0x15b90
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x1790(%rbp)
callq 0x4200
movq %rax, -0xf30(%rbp)
leaq -0xf28(%rbp), %rdi
leaq -0xf30(%rbp), %rsi
callq 0x15b90
movq -0x1790(%rbp), %rdi
movq -0xf00(%rbp), %rsi
movq -0xf28(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1788(%rbp)
jmp 0x141b3
movq -0x1788(%rbp), %rax
movq %rax, -0xf38(%rbp)
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x17a0(%rbp)
callq 0x4320
movq -0x17a0(%rbp), %rdi
movq %rax, -0xf50(%rbp)
callq 0x4200
movq %rax, -0xf58(%rbp)
movb $0x9, -0xf59(%rbp)
movq -0xf50(%rbp), %rdi
movq -0xf58(%rbp), %rsi
leaq -0xf59(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1798(%rbp)
jmp 0x14218
movq -0x1798(%rbp), %rax
movq %rax, -0xf48(%rbp)
leaq -0xf40(%rbp), %rdi
leaq -0xf48(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x17b0(%rbp)
callq 0x4200
movq %rax, -0xf70(%rbp)
leaq -0xf68(%rbp), %rdi
leaq -0xf70(%rbp), %rsi
callq 0x15b90
movq -0x17b0(%rbp), %rdi
movq -0xf40(%rbp), %rsi
movq -0xf68(%rbp), %rdx
callq 0x40c0
movq %rax, -0x17a8(%rbp)
jmp 0x14289
movq -0x17a8(%rbp), %rax
movq %rax, -0xf78(%rbp)
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x17c0(%rbp)
callq 0x4320
movq -0x17c0(%rbp), %rdi
movq %rax, -0xf90(%rbp)
callq 0x4200
movq %rax, -0xf98(%rbp)
movb $0x9, -0xf99(%rbp)
movq -0xf90(%rbp), %rdi
movq -0xf98(%rbp), %rsi
leaq -0xf99(%rbp), %rdx
callq 0x15b40
movq %rax, -0x17b8(%rbp)
jmp 0x142ee
movq -0x17b8(%rbp), %rax
movq %rax, -0xf88(%rbp)
leaq -0xf80(%rbp), %rdi
leaq -0xf88(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x17d0(%rbp)
callq 0x4200
movq %rax, -0xfb0(%rbp)
leaq -0xfa8(%rbp), %rdi
leaq -0xfb0(%rbp), %rsi
callq 0x15b90
movq -0x17d0(%rbp), %rdi
movq -0xf80(%rbp), %rsi
movq -0xfa8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x17c8(%rbp)
jmp 0x1435f
movq -0x17c8(%rbp), %rax
movq %rax, -0xfb8(%rbp)
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x17e0(%rbp)
callq 0x4320
movq -0x17e0(%rbp), %rdi
movq %rax, -0xfd0(%rbp)
callq 0x4200
movq %rax, -0xfd8(%rbp)
movb $0x9, -0xfd9(%rbp)
movq -0xfd0(%rbp), %rdi
movq -0xfd8(%rbp), %rsi
leaq -0xfd9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x17d8(%rbp)
jmp 0x143c4
movq -0x17d8(%rbp), %rax
movq %rax, -0xfc8(%rbp)
leaq -0xfc0(%rbp), %rdi
leaq -0xfc8(%rbp), %rsi
callq 0x15b90
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x17f0(%rbp)
callq 0x4200
movq %rax, -0xff0(%rbp)
leaq -0xfe8(%rbp), %rdi
leaq -0xff0(%rbp), %rsi
callq 0x15b90
movq -0x17f0(%rbp), %rdi
movq -0xfc0(%rbp), %rsi
movq -0xfe8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x17e8(%rbp)
jmp 0x14435
movq -0x17e8(%rbp), %rax
movq %rax, -0xff8(%rbp)
movl -0xe54(%rbp), %eax
movl %eax, -0xcb0(%rbp)
leaq -0xca8(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x4050
jmp 0x14464
leaq -0xc88(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x4050
jmp 0x14479
leaq -0xc68(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
callq 0x4050
jmp 0x1448e
jmp 0x1552f
leaq -0xe50(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x144ad
leaq -0xe50(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x144c7
leaq -0xe50(%rbp), %rdi
leaq -0xc40(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x144e1
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1800(%rbp)
callq 0x4320
movq -0x1800(%rbp), %rdi
movq %rax, -0x1010(%rbp)
callq 0x4200
movq %rax, -0x1018(%rbp)
movb $0x20, -0x1019(%rbp)
movq -0x1010(%rbp), %rdi
movq -0x1018(%rbp), %rsi
leaq -0x1019(%rbp), %rdx
callq 0x15b40
movq %rax, -0x17f8(%rbp)
jmp 0x14538
movq -0x17f8(%rbp), %rax
movq %rax, -0x1008(%rbp)
leaq -0x1000(%rbp), %rdi
leaq -0x1008(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1810(%rbp)
callq 0x4200
movq %rax, -0x1030(%rbp)
leaq -0x1028(%rbp), %rdi
leaq -0x1030(%rbp), %rsi
callq 0x15b90
movq -0x1810(%rbp), %rdi
movq -0x1000(%rbp), %rsi
movq -0x1028(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1808(%rbp)
jmp 0x145a9
movq -0x1808(%rbp), %rax
movq %rax, -0x1038(%rbp)
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1820(%rbp)
callq 0x4320
movq -0x1820(%rbp), %rdi
movq %rax, -0x1050(%rbp)
callq 0x4200
movq %rax, -0x1058(%rbp)
movb $0x20, -0x1059(%rbp)
movq -0x1050(%rbp), %rdi
movq -0x1058(%rbp), %rsi
leaq -0x1059(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1818(%rbp)
jmp 0x1460e
movq -0x1818(%rbp), %rax
movq %rax, -0x1048(%rbp)
leaq -0x1040(%rbp), %rdi
leaq -0x1048(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1830(%rbp)
callq 0x4200
movq %rax, -0x1070(%rbp)
leaq -0x1068(%rbp), %rdi
leaq -0x1070(%rbp), %rsi
callq 0x15b90
movq -0x1830(%rbp), %rdi
movq -0x1040(%rbp), %rsi
movq -0x1068(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1828(%rbp)
jmp 0x1467f
movq -0x1828(%rbp), %rax
movq %rax, -0x1078(%rbp)
leaq -0xc40(%rbp), %rdi
movq %rdi, -0x1840(%rbp)
callq 0x4320
movq -0x1840(%rbp), %rdi
movq %rax, -0x1090(%rbp)
callq 0x4200
movq %rax, -0x1098(%rbp)
movb $0x20, -0x1099(%rbp)
movq -0x1090(%rbp), %rdi
movq -0x1098(%rbp), %rsi
leaq -0x1099(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1838(%rbp)
jmp 0x146e4
movq -0x1838(%rbp), %rax
movq %rax, -0x1088(%rbp)
leaq -0x1080(%rbp), %rdi
leaq -0x1088(%rbp), %rsi
callq 0x15b90
leaq -0xc40(%rbp), %rdi
movq %rdi, -0x1850(%rbp)
callq 0x4200
movq %rax, -0x10b0(%rbp)
leaq -0x10a8(%rbp), %rdi
leaq -0x10b0(%rbp), %rsi
callq 0x15b90
movq -0x1850(%rbp), %rdi
movq -0x1080(%rbp), %rsi
movq -0x10a8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1848(%rbp)
jmp 0x14755
movq -0x1848(%rbp), %rax
movq %rax, -0x10b8(%rbp)
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1860(%rbp)
callq 0x4320
movq -0x1860(%rbp), %rdi
movq %rax, -0x10d0(%rbp)
callq 0x4200
movq %rax, -0x10d8(%rbp)
movb $0x9, -0x10d9(%rbp)
movq -0x10d0(%rbp), %rdi
movq -0x10d8(%rbp), %rsi
leaq -0x10d9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1858(%rbp)
jmp 0x147ba
movq -0x1858(%rbp), %rax
movq %rax, -0x10c8(%rbp)
leaq -0x10c0(%rbp), %rdi
leaq -0x10c8(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1870(%rbp)
callq 0x4200
movq %rax, -0x10f0(%rbp)
leaq -0x10e8(%rbp), %rdi
leaq -0x10f0(%rbp), %rsi
callq 0x15b90
movq -0x1870(%rbp), %rdi
movq -0x10c0(%rbp), %rsi
movq -0x10e8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1868(%rbp)
jmp 0x1482b
movq -0x1868(%rbp), %rax
movq %rax, -0x10f8(%rbp)
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1880(%rbp)
callq 0x4320
movq -0x1880(%rbp), %rdi
movq %rax, -0x1110(%rbp)
callq 0x4200
movq %rax, -0x1118(%rbp)
movb $0x9, -0x1119(%rbp)
movq -0x1110(%rbp), %rdi
movq -0x1118(%rbp), %rsi
leaq -0x1119(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1878(%rbp)
jmp 0x14890
movq -0x1878(%rbp), %rax
movq %rax, -0x1108(%rbp)
leaq -0x1100(%rbp), %rdi
leaq -0x1108(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1890(%rbp)
callq 0x4200
movq %rax, -0x1130(%rbp)
leaq -0x1128(%rbp), %rdi
leaq -0x1130(%rbp), %rsi
callq 0x15b90
movq -0x1890(%rbp), %rdi
movq -0x1100(%rbp), %rsi
movq -0x1128(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1888(%rbp)
jmp 0x14901
movq -0x1888(%rbp), %rax
movq %rax, -0x1138(%rbp)
leaq -0xc40(%rbp), %rdi
movq %rdi, -0x18a0(%rbp)
callq 0x4320
movq -0x18a0(%rbp), %rdi
movq %rax, -0x1150(%rbp)
callq 0x4200
movq %rax, -0x1158(%rbp)
movb $0x9, -0x1159(%rbp)
movq -0x1150(%rbp), %rdi
movq -0x1158(%rbp), %rsi
leaq -0x1159(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1898(%rbp)
jmp 0x14966
movq -0x1898(%rbp), %rax
movq %rax, -0x1148(%rbp)
leaq -0x1140(%rbp), %rdi
leaq -0x1148(%rbp), %rsi
callq 0x15b90
leaq -0xc40(%rbp), %rdi
movq %rdi, -0x18b0(%rbp)
callq 0x4200
movq %rax, -0x1170(%rbp)
leaq -0x1168(%rbp), %rdi
leaq -0x1170(%rbp), %rsi
callq 0x15b90
movq -0x18b0(%rbp), %rdi
movq -0x1140(%rbp), %rsi
movq -0x1168(%rbp), %rdx
callq 0x40c0
movq %rax, -0x18a8(%rbp)
jmp 0x149d7
movq -0x18a8(%rbp), %rax
movq %rax, -0x1178(%rbp)
movl -0xe54(%rbp), %eax
movl %eax, -0xcb0(%rbp)
leaq -0xca8(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x4050
jmp 0x14a06
leaq -0xc88(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x4050
jmp 0x14a1b
xorl %eax, %eax
movl %eax, %esi
leaq -0xc40(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x18b4(%rbp)
jmp 0x14a38
movl -0x18b4(%rbp), %eax
movl %eax, -0xc48(%rbp)
jmp 0x1552f
leaq -0xe50(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x14a63
leaq -0xe50(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x14a7d
leaq -0xe50(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x14a97
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x18c8(%rbp)
callq 0x4320
movq -0x18c8(%rbp), %rdi
movq %rax, -0x1190(%rbp)
callq 0x4200
movq %rax, -0x1198(%rbp)
movb $0x20, -0x1199(%rbp)
movq -0x1190(%rbp), %rdi
movq -0x1198(%rbp), %rsi
leaq -0x1199(%rbp), %rdx
callq 0x15b40
movq %rax, -0x18c0(%rbp)
jmp 0x14aee
movq -0x18c0(%rbp), %rax
movq %rax, -0x1188(%rbp)
leaq -0x1180(%rbp), %rdi
leaq -0x1188(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x18d8(%rbp)
callq 0x4200
movq %rax, -0x11b0(%rbp)
leaq -0x11a8(%rbp), %rdi
leaq -0x11b0(%rbp), %rsi
callq 0x15b90
movq -0x18d8(%rbp), %rdi
movq -0x1180(%rbp), %rsi
movq -0x11a8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x18d0(%rbp)
jmp 0x14b5f
movq -0x18d0(%rbp), %rax
movq %rax, -0x11b8(%rbp)
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x18e8(%rbp)
callq 0x4320
movq -0x18e8(%rbp), %rdi
movq %rax, -0x11d0(%rbp)
callq 0x4200
movq %rax, -0x11d8(%rbp)
movb $0x20, -0x11d9(%rbp)
movq -0x11d0(%rbp), %rdi
movq -0x11d8(%rbp), %rsi
leaq -0x11d9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x18e0(%rbp)
jmp 0x14bc4
movq -0x18e0(%rbp), %rax
movq %rax, -0x11c8(%rbp)
leaq -0x11c0(%rbp), %rdi
leaq -0x11c8(%rbp), %rsi
callq 0x15b90
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x18f8(%rbp)
callq 0x4200
movq %rax, -0x11f0(%rbp)
leaq -0x11e8(%rbp), %rdi
leaq -0x11f0(%rbp), %rsi
callq 0x15b90
movq -0x18f8(%rbp), %rdi
movq -0x11c0(%rbp), %rsi
movq -0x11e8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x18f0(%rbp)
jmp 0x14c35
movq -0x18f0(%rbp), %rax
movq %rax, -0x11f8(%rbp)
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1908(%rbp)
callq 0x4320
movq -0x1908(%rbp), %rdi
movq %rax, -0x1210(%rbp)
callq 0x4200
movq %rax, -0x1218(%rbp)
movb $0x20, -0x1219(%rbp)
movq -0x1210(%rbp), %rdi
movq -0x1218(%rbp), %rsi
leaq -0x1219(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1900(%rbp)
jmp 0x14c9a
movq -0x1900(%rbp), %rax
movq %rax, -0x1208(%rbp)
leaq -0x1200(%rbp), %rdi
leaq -0x1208(%rbp), %rsi
callq 0x15b90
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1918(%rbp)
callq 0x4200
movq %rax, -0x1230(%rbp)
leaq -0x1228(%rbp), %rdi
leaq -0x1230(%rbp), %rsi
callq 0x15b90
movq -0x1918(%rbp), %rdi
movq -0x1200(%rbp), %rsi
movq -0x1228(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1910(%rbp)
jmp 0x14d0b
movq -0x1910(%rbp), %rax
movq %rax, -0x1238(%rbp)
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1928(%rbp)
callq 0x4320
movq -0x1928(%rbp), %rdi
movq %rax, -0x1250(%rbp)
callq 0x4200
movq %rax, -0x1258(%rbp)
movb $0x9, -0x1259(%rbp)
movq -0x1250(%rbp), %rdi
movq -0x1258(%rbp), %rsi
leaq -0x1259(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1920(%rbp)
jmp 0x14d70
movq -0x1920(%rbp), %rax
movq %rax, -0x1248(%rbp)
leaq -0x1240(%rbp), %rdi
leaq -0x1248(%rbp), %rsi
callq 0x15b90
leaq -0xbe0(%rbp), %rdi
movq %rdi, -0x1938(%rbp)
callq 0x4200
movq %rax, -0x1270(%rbp)
leaq -0x1268(%rbp), %rdi
leaq -0x1270(%rbp), %rsi
callq 0x15b90
movq -0x1938(%rbp), %rdi
movq -0x1240(%rbp), %rsi
movq -0x1268(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1930(%rbp)
jmp 0x14de1
movq -0x1930(%rbp), %rax
movq %rax, -0x1278(%rbp)
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x1948(%rbp)
callq 0x4320
movq -0x1948(%rbp), %rdi
movq %rax, -0x1290(%rbp)
callq 0x4200
movq %rax, -0x1298(%rbp)
movb $0x9, -0x1299(%rbp)
movq -0x1290(%rbp), %rdi
movq -0x1298(%rbp), %rsi
leaq -0x1299(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1940(%rbp)
jmp 0x14e46
movq -0x1940(%rbp), %rax
movq %rax, -0x1288(%rbp)
leaq -0x1280(%rbp), %rdi
leaq -0x1288(%rbp), %rsi
callq 0x15b90
leaq -0xc00(%rbp), %rdi
movq %rdi, -0x1958(%rbp)
callq 0x4200
movq %rax, -0x12b0(%rbp)
leaq -0x12a8(%rbp), %rdi
leaq -0x12b0(%rbp), %rsi
callq 0x15b90
movq -0x1958(%rbp), %rdi
movq -0x1280(%rbp), %rsi
movq -0x12a8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1950(%rbp)
jmp 0x14eb7
movq -0x1950(%rbp), %rax
movq %rax, -0x12b8(%rbp)
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1968(%rbp)
callq 0x4320
movq -0x1968(%rbp), %rdi
movq %rax, -0x12d0(%rbp)
callq 0x4200
movq %rax, -0x12d8(%rbp)
movb $0x9, -0x12d9(%rbp)
movq -0x12d0(%rbp), %rdi
movq -0x12d8(%rbp), %rsi
leaq -0x12d9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1960(%rbp)
jmp 0x14f1c
movq -0x1960(%rbp), %rax
movq %rax, -0x12c8(%rbp)
leaq -0x12c0(%rbp), %rdi
leaq -0x12c8(%rbp), %rsi
callq 0x15b90
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1978(%rbp)
callq 0x4200
movq %rax, -0x12f0(%rbp)
leaq -0x12e8(%rbp), %rdi
leaq -0x12f0(%rbp), %rsi
callq 0x15b90
movq -0x1978(%rbp), %rdi
movq -0x12c0(%rbp), %rsi
movq -0x12e8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1970(%rbp)
jmp 0x14f8d
movq -0x1970(%rbp), %rax
movq %rax, -0x12f8(%rbp)
movl -0xe54(%rbp), %eax
movl %eax, -0xcb0(%rbp)
leaq -0xc88(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x4050
jmp 0x14fbc
leaq -0xc68(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
callq 0x4050
jmp 0x14fd1
xorl %eax, %eax
movl %eax, %esi
leaq -0xc20(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x197c(%rbp)
jmp 0x14fee
movl -0x197c(%rbp), %eax
movl %eax, -0xc44(%rbp)
jmp 0x1552f
leaq -0xe50(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x15019
leaq -0xe50(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
movl $0x2c, %edx
callq 0x4640
jmp 0x15033
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x1990(%rbp)
callq 0x4320
movq -0x1990(%rbp), %rdi
movq %rax, -0x1310(%rbp)
callq 0x4200
movq %rax, -0x1318(%rbp)
movb $0x20, -0x1319(%rbp)
movq -0x1310(%rbp), %rdi
movq -0x1318(%rbp), %rsi
leaq -0x1319(%rbp), %rdx
callq 0x15b40
movq %rax, -0x1988(%rbp)
jmp 0x1508a
movq -0x1988(%rbp), %rax
movq %rax, -0x1308(%rbp)
leaq -0x1300(%rbp), %rdi
leaq -0x1308(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x19a0(%rbp)
callq 0x4200
movq %rax, -0x1330(%rbp)
leaq -0x1328(%rbp), %rdi
leaq -0x1330(%rbp), %rsi
callq 0x15b90
movq -0x19a0(%rbp), %rdi
movq -0x1300(%rbp), %rsi
movq -0x1328(%rbp), %rdx
callq 0x40c0
movq %rax, -0x1998(%rbp)
jmp 0x150fb
movq -0x1998(%rbp), %rax
movq %rax, -0x1338(%rbp)
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x19b0(%rbp)
callq 0x4320
movq -0x19b0(%rbp), %rdi
movq %rax, -0x1350(%rbp)
callq 0x4200
movq %rax, -0x1358(%rbp)
movb $0x20, -0x1359(%rbp)
movq -0x1350(%rbp), %rdi
movq -0x1358(%rbp), %rsi
leaq -0x1359(%rbp), %rdx
callq 0x15b40
movq %rax, -0x19a8(%rbp)
jmp 0x15160
movq -0x19a8(%rbp), %rax
movq %rax, -0x1348(%rbp)
leaq -0x1340(%rbp), %rdi
leaq -0x1348(%rbp), %rsi
callq 0x15b90
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x19c0(%rbp)
callq 0x4200
movq %rax, -0x1370(%rbp)
leaq -0x1368(%rbp), %rdi
leaq -0x1370(%rbp), %rsi
callq 0x15b90
movq -0x19c0(%rbp), %rdi
movq -0x1340(%rbp), %rsi
movq -0x1368(%rbp), %rdx
callq 0x40c0
movq %rax, -0x19b8(%rbp)
jmp 0x151d1
movq -0x19b8(%rbp), %rax
movq %rax, -0x1378(%rbp)
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x19d0(%rbp)
callq 0x4320
movq -0x19d0(%rbp), %rdi
movq %rax, -0x1390(%rbp)
callq 0x4200
movq %rax, -0x1398(%rbp)
movb $0x9, -0x1399(%rbp)
movq -0x1390(%rbp), %rdi
movq -0x1398(%rbp), %rsi
leaq -0x1399(%rbp), %rdx
callq 0x15b40
movq %rax, -0x19c8(%rbp)
jmp 0x15236
movq -0x19c8(%rbp), %rax
movq %rax, -0x1388(%rbp)
leaq -0x1380(%rbp), %rdi
leaq -0x1388(%rbp), %rsi
callq 0x15b90
leaq -0xbc0(%rbp), %rdi
movq %rdi, -0x19e0(%rbp)
callq 0x4200
movq %rax, -0x13b0(%rbp)
leaq -0x13a8(%rbp), %rdi
leaq -0x13b0(%rbp), %rsi
callq 0x15b90
movq -0x19e0(%rbp), %rdi
movq -0x1380(%rbp), %rsi
movq -0x13a8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x19d8(%rbp)
jmp 0x152a7
movq -0x19d8(%rbp), %rax
movq %rax, -0x13b8(%rbp)
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x19f0(%rbp)
callq 0x4320
movq -0x19f0(%rbp), %rdi
movq %rax, -0x13d0(%rbp)
callq 0x4200
movq %rax, -0x13d8(%rbp)
movb $0x9, -0x13d9(%rbp)
movq -0x13d0(%rbp), %rdi
movq -0x13d8(%rbp), %rsi
leaq -0x13d9(%rbp), %rdx
callq 0x15b40
movq %rax, -0x19e8(%rbp)
jmp 0x1530c
movq -0x19e8(%rbp), %rax
movq %rax, -0x13c8(%rbp)
leaq -0x13c0(%rbp), %rdi
leaq -0x13c8(%rbp), %rsi
callq 0x15b90
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1a00(%rbp)
callq 0x4200
movq %rax, -0x13f0(%rbp)
leaq -0x13e8(%rbp), %rdi
leaq -0x13f0(%rbp), %rsi
callq 0x15b90
movq -0x1a00(%rbp), %rdi
movq -0x13c0(%rbp), %rsi
movq -0x13e8(%rbp), %rdx
callq 0x40c0
movq %rax, -0x19f8(%rbp)
jmp 0x1537d
movq -0x19f8(%rbp), %rax
movq %rax, -0x13f8(%rbp)
movl -0xe54(%rbp), %eax
movl %eax, -0xcb0(%rbp)
leaq -0xca8(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x4050
jmp 0x153ac
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x1a10(%rbp)
leaq -0xc20(%rbp), %rdi
movq %rdi, -0x1a08(%rbp)
movl $0x28, %esi
callq 0x4490
movq -0x1a10(%rbp), %rdx
movq -0x1a08(%rbp), %rdi
movq %rax, -0x1400(%rbp)
movl $0x29, %esi
callq 0x4490
movq -0x1a08(%rbp), %rsi
movq %rax, -0x1408(%rbp)
movq -0x1400(%rbp), %rcx
movq %rcx, %rdx
incq %rdx
movq -0x1408(%rbp), %rax
notq %rcx
addq %rax, %rcx
leaq -0x1428(%rbp), %rdi
callq 0x4390
jmp 0x15424
leaq -0xc88(%rbp), %rdi
leaq -0x1428(%rbp), %rsi
movq %rsi, -0x1a18(%rbp)
callq 0x4420
movq -0x1a18(%rbp), %rdi
callq 0x4240
movq -0x1400(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x1448(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
callq 0x4390
jmp 0x1546a
xorl %eax, %eax
movl %eax, %esi
leaq -0x1448(%rbp), %rdi
movl $0xa, %edx
callq 0x15bd0
movl %eax, -0x1a1c(%rbp)
jmp 0x15487
movl -0x1a1c(%rbp), %eax
movl %eax, -0xc44(%rbp)
leaq -0x1448(%rbp), %rdi
callq 0x4240
jmp 0x1552f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1448(%rbp), %rdi
callq 0x4240
jmp 0x15578
movl $0xa, -0xcb0(%rbp)
jmp 0x1552f
movq -0x14b8(%rbp), %rdx
leaq 0xd047(%rip), %rsi      # 0x22522
leaq -0x1468(%rbp), %rdi
callq 0xf080
jmp 0x154e9
leaq -0x1468(%rbp), %rdi
callq 0x11880
jmp 0x154f7
leaq -0x1468(%rbp), %rdi
callq 0x4240
movb $0x0, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
jmp 0x1554e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1468(%rbp), %rdi
callq 0x4240
jmp 0x15578
jmp 0x1552f
leaq -0xb80(%rbp), %rdi
leaq -0xcd0(%rbp), %rsi
callq 0x15cf0
jmp 0x15544
movl $0x0, -0x334(%rbp)
leaq -0xe50(%rbp), %rdi
callq 0x41b0
leaq -0xcd0(%rbp), %rdi
callq 0x15d60
movl -0x334(%rbp), %eax
testl %eax, %eax
jne 0x156f0
jmp 0x15576
jmp 0x15595
leaq -0xe50(%rbp), %rdi
callq 0x41b0
leaq -0xcd0(%rbp), %rdi
callq 0x15d60
jmp 0x15752
jmp 0x13d7e
movl $0x28, %edi
callq 0x4380
movq %rax, -0x1a28(%rbp)
jmp 0x155ad
movb $0x1, -0x1481(%rbp)
leaq -0x1480(%rbp), %rdi
leaq -0xb80(%rbp), %rsi
callq 0x15db0
jmp 0x155c9
movq -0x1a28(%rbp), %rdi
leaq -0x1480(%rbp), %rsi
callq 0x177a0
jmp 0x155de
movq -0x1a28(%rbp), %rcx
movb $0x0, -0x1481(%rbp)
leaq 0x19e65(%rip), %rax     # 0x2f458
movq %rcx, (%rax)
leaq -0x1480(%rbp), %rdi
callq 0x15ea0
leaq -0x14a9(%rbp), %rdi
movq %rdi, -0x1a30(%rbp)
callq 0x4600
movq -0x1a30(%rbp), %rdx
leaq 0xcf32(%rip), %rsi      # 0x22555
leaq -0x14a8(%rbp), %rdi
callq 0x44c0
jmp 0x15631
leaq -0x14a8(%rbp), %rdi
movl $0x1, %esi
callq 0x12060
jmp 0x15644
leaq -0x14a8(%rbp), %rdi
callq 0x4240
leaq -0x14a9(%rbp), %rdi
callq 0x43d0
leaq -0x270(%rbp), %rdi
callq 0x40b0
jmp 0x1566a
movb $0x1, -0x1(%rbp)
movl $0x1, -0x334(%rbp)
jmp 0x156f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x156a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1480(%rbp), %rdi
callq 0x15ea0
testb $0x1, -0x1481(%rbp)
jne 0x156ab
jmp 0x156b7
movq -0x1a28(%rbp), %rdi
callq 0x4350
jmp 0x15752
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x156e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x14a8(%rbp), %rdi
callq 0x4240
leaq -0x14a9(%rbp), %rdi
callq 0x43d0
jmp 0x15752
leaq -0xc40(%rbp), %rdi
callq 0x4240
leaq -0xc20(%rbp), %rdi
callq 0x4240
leaq -0xc00(%rbp), %rdi
callq 0x4240
leaq -0xbe0(%rbp), %rdi
callq 0x4240
leaq -0xbc0(%rbp), %rdi
callq 0x4240
leaq -0xba0(%rbp), %rdi
callq 0x4240
leaq -0xb80(%rbp), %rdi
callq 0x15ea0
leaq -0xa90(%rbp), %rdi
callq 0x41b0
jmp 0x157b4
leaq -0xc40(%rbp), %rdi
callq 0x4240
leaq -0xc20(%rbp), %rdi
callq 0x4240
leaq -0xc00(%rbp), %rdi
callq 0x4240
leaq -0xbe0(%rbp), %rdi
callq 0x4240
leaq -0xbc0(%rbp), %rdi
callq 0x4240
leaq -0xba0(%rbp), %rdi
callq 0x4240
leaq -0xb80(%rbp), %rdi
callq 0x15ea0
leaq -0xa90(%rbp), %rdi
callq 0x41b0
jmp 0x157ce
leaq -0x768(%rbp), %rdi
callq 0x41b0
leaq -0x568(%rbp), %rdi
callq 0x4240
jmp 0x157e8
leaq -0x768(%rbp), %rdi
callq 0x41b0
leaq -0x568(%rbp), %rdi
callq 0x4240
jmp 0x15826
leaq -0x2f0(%rbp), %rdi
callq 0x4240
leaq -0x2d0(%rbp), %rdi
callq 0x4240
leaq -0x2b0(%rbp), %rdi
callq 0x4240
leaq -0x290(%rbp), %rdi
callq 0x4240
leaq -0x270(%rbp), %rdi
callq 0x40e0
jmp 0x15864
leaq -0x2f0(%rbp), %rdi
callq 0x4240
leaq -0x2d0(%rbp), %rdi
callq 0x4240
leaq -0x2b0(%rbp), %rdi
callq 0x4240
leaq -0x290(%rbp), %rdi
callq 0x4240
leaq -0x270(%rbp), %rdi
callq 0x40e0
jmp 0x15872
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1a30, %rsp           # imm = 0x1A30
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x45f0
movq %rax, %rdi
callq 0x9350
nopw %cs:(%rax,%rax)
nopl (%rax)