// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xab8, %rsp            # imm = 0xAB8
movq %rdi, %r14
leaq 0xe66c(%rip), %rdi      # 0x16ca8
callq 0x7e24
testl %eax, %eax
je 0x867f
leaq 0x6d5a(%rip), %rsi      # 0xf3a6
leaq -0x3b8(%rbp), %rdi
leaq -0xae0(%rbp), %rdx
callq 0x3100
leaq -0x3b8(%rbp), %rdi
callq 0x7ee9
leaq -0x3b8(%rbp), %rdi
callq 0x3140
xorl %r14d, %r14d
jmp 0x8d2e
leaq 0x6d4b(%rip), %rsi      # 0xf3d1
leaq -0x438(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rdx
callq 0x7331
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x8343
leaq -0x438(%rbp), %rdi
callq 0x3140
leaq -0xae0(%rbp), %rdi
callq 0x32c0
leaq -0xf8(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0x388(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq -0x248(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %cl, (%rax)
movb %cl, (%rdx)
leaq -0x228(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
pushq $0x28
popq %rdi
callq 0x3290
pxor %xmm0, %xmm0
movdqu %xmm0, 0x10(%rax)
movdqu %xmm0, (%rax)
movq %rax, -0x68(%rbp)
andq $0x0, 0x20(%rax)
leaq -0xae0(%rbp), %rdi
pushq $0x8
popq %rdx
movq %r14, %rsi
callq 0x3240
movq %r14, -0x1e0(%rbp)
leaq 0xdc1d(%rip), %rax      # 0x16360
movq (%rax), %rbx
testq %rbx, %rbx
je 0x875b
movq %rbx, %rdi
callq 0x9f20
movq %rbx, %rdi
callq 0x3270
leaq -0x108(%rbp), %rbx
leaq -0x8d8(%rbp), %r15
leaq -0x5d8(%rbp), %r12
leaq -0x758(%rbp), %r13
leaq -0x398(%rbp), %r14
leaq -0xae0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3060
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x89f7
cmpq $0x0, -0x100(%rbp)
je 0x877e
movq %r15, %rdi
movq %rbx, %rsi
pushq $0x8
popq %rdx
callq 0x3410
movq %r15, %rdi
leaq -0x258(%rbp), %rsi
callq 0x3300
movq %rax, %rdi
leaq -0x238(%rbp), %rsi
callq 0x3300
movq %r12, %rdi
leaq -0x258(%rbp), %rsi
pushq $0x20
popq %rdx
callq 0x9fa0
movq %r13, %rdi
movq %r12, %rsi
leaq -0x238(%rbp), %rdx
callq 0x9f77
movq %r14, %rdi
movq %r13, %rsi
callq 0x32f0
movq %r13, %rdi
callq 0x3140
movq %r12, %rdi
callq 0x3140
movq %r14, %rdi
leaq 0x6bed(%rip), %rsi      # 0xf40b
callq 0x7486
testb %al, %al
jne 0x89de
movq %r14, %rdi
leaq 0x6bdb(%rip), %rsi      # 0xf410
callq 0x7486
testb %al, %al
je 0x8888
movq %r15, %rdi
leaq -0x60(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x54(%rbp), %rsi
callq 0x31c0
pushq $0x10
popq %rdi
callq 0x3290
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
andl $0x0, 0x8(%rax)
movl -0x54(%rbp), %ecx
movl %ecx, 0xc(%rax)
movq -0x68(%rbp), %rcx
movq %rax, 0x8(%rcx)
jmp 0x89de
movq %r14, %rdi
leaq 0x6b8c(%rip), %rsi      # 0xf41e
callq 0x7486
testb %al, %al
je 0x88e5
movq %r15, %rdi
leaq -0x60(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x54(%rbp), %rsi
callq 0x31c0
pushq $0x10
popq %rdi
callq 0x3290
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
andl $0x0, 0x8(%rax)
movl -0x54(%rbp), %ecx
movl %ecx, 0xc(%rax)
movq -0x68(%rbp), %rcx
movq %rax, 0x10(%rcx)
jmp 0x89de
movq %r14, %rdi
leaq 0x6b38(%rip), %rsi      # 0xf427
callq 0x7486
testb %al, %al
je 0x8942
movq %r15, %rdi
leaq -0x60(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x54(%rbp), %rsi
callq 0x31c0
pushq $0x10
popq %rdi
callq 0x3290
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
andl $0x0, 0x8(%rax)
movl -0x54(%rbp), %ecx
movl %ecx, 0xc(%rax)
movq -0x68(%rbp), %rcx
movq %rax, 0x18(%rcx)
jmp 0x89de
movq %r14, %rdi
leaq 0x6ae9(%rip), %rsi      # 0xf435
callq 0x7486
testb %al, %al
je 0x89a0
movq %r15, %rdi
leaq -0x60(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x58(%rbp), %rsi
callq 0x31c0
movq %rax, %rdi
leaq -0x54(%rbp), %rsi
callq 0x31c0
pushq $0x10
popq %rdi
callq 0x3290
movdqa -0x60(%rbp), %xmm0
movdqu %xmm0, (%rax)
movq -0x68(%rbp), %rcx
movq %rax, 0x20(%rcx)
jmp 0x89de
movq %r14, %rdi
leaq 0x6a9b(%rip), %rsi      # 0xf445
callq 0x7486
testb %al, %al
je 0x89eb
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3300
movq %rax, %rdi
leaq -0x60(%rbp), %rsi
callq 0x31c0
pushq $0x4
popq %rdi
callq 0x3290
movl -0x60(%rbp), %ecx
movl %ecx, (%rax)
movq -0x68(%rbp), %rcx
movq %rax, (%rcx)
movq %r15, %rdi
callq 0x3150
jmp 0x877e
leaq -0x8d8(%rbp), %rdi
callq 0x3150
movq -0x68(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x8cbd
cmpq $0x0, 0x18(%rax)
je 0x8cbd
cmpq $0x0, 0x8(%rax)
je 0x8cbd
cmpq $0x0, (%rax)
je 0x8cbd
cmpq $0x0, 0x20(%rax)
je 0x8cbd
leaq 0xd928(%rip), %rcx      # 0x16360
movq %rax, (%rcx)
leaq 0x6a29(%rip), %rsi      # 0xf46b
leaq -0x338(%rbp), %rdi
leaq -0x8d8(%rbp), %rdx
callq 0x3100
leaq -0x338(%rbp), %rdi
xorl %esi, %esi
callq 0x8343
leaq -0x338(%rbp), %rdi
callq 0x3140
leaq -0x138(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0xe217(%rip), %rax      # 0x16ca0
movq (%rax), %rdi
callq 0xe696
leaq -0xae0(%rbp), %rbx
leaq -0x108(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3060
movq -0x100(%rbp), %rsi
cmpq $0x4, %rsi
jb 0x8a9f
movq -0x108(%rbp), %rdi
addq %rdi, %rsi
leaq -0x8d8(%rbp), %rdx
movb $0x20, (%rdx)
callq 0xa2ae
leaq -0x108(%rbp), %rdi
movq (%rdi), %rdx
addq 0x8(%rdi), %rdx
movq %rax, %rsi
callq 0x3090
movq -0x108(%rbp), %rdi
movq -0x100(%rbp), %rsi
addq %rdi, %rsi
leaq -0x8d8(%rbp), %rdx
movb $0x9, (%rdx)
callq 0xa2ae
leaq -0x108(%rbp), %rdi
movq (%rdi), %rdx
addq 0x8(%rdi), %rdx
movq %rax, %rsi
callq 0x3090
leaq -0x8d8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
pushq $0x8
popq %rdx
callq 0x3410
leaq -0x148(%rbp), %rbx
leaq -0x8d8(%rbp), %rdi
movq %rbx, %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x8d47
movq %rbx, %rdi
pushq $0x3d
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %r14
movq %rbx, %rdi
pushq $0x46
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %r12
movq %rbx, %rdi
pushq $0x52
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %r14, %r15
notq %r15
cmpq $-0x1, %rax
je 0x8c2b
movq %rax, %r13
movq %rbx, %rdi
pushq $0x2e
popq %rsi
xorl %edx, %edx
callq 0x3330
cmpq $-0x1, %rax
jne 0x9a6f
movq %r14, %rdx
incq %rdx
addq -0x140(%rbp), %r15
leaq -0x758(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %r15, %rcx
callq 0x32a0
movq %r12, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
movl %eax, %r15d
movq %r12, %rdi
callq 0x3140
leaq 0xe0ab(%rip), %rax      # 0x16ca0
movq (%rax), %r12
leaq -0x418(%rbp), %rdi
leaq -0x148(%rbp), %rsi
movq %r13, %rdx
movq %r14, %rcx
callq 0x32a0
movq %r12, %rdi
leaq -0x418(%rbp), %rbx
movq %rbx, %rsi
movl %r15d, %edx
callq 0xe560
jmp 0x8cb0
cmpq $-0x1, %r12
je 0x9a9e
movq %r14, %rdx
incq %rdx
addq -0x140(%rbp), %r15
leaq -0x758(%rbp), %rbx
movq %rbx, %rdi
leaq -0x148(%rbp), %rsi
movq %r15, %rcx
callq 0x32a0
movq %rbx, %rdi
xorl %esi, %esi
callq 0x9ffc
movd %xmm0, -0x68(%rbp)
movq %rbx, %rdi
callq 0x3140
leaq 0xe027(%rip), %rax      # 0x16ca0
movq (%rax), %rbx
leaq -0x3f8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
movq %r12, %rdx
movq %r14, %rcx
callq 0x32a0
movd -0x68(%rbp), %xmm0
movd %xmm0, %edx
movq %rbx, %rdi
leaq -0x3f8(%rbp), %rbx
movq %rbx, %rsi
callq 0xe560
movq %rbx, %rdi
callq 0x3140
jmp 0x8b32
leaq 0x678d(%rip), %rsi      # 0xf451
leaq -0x358(%rbp), %rdi
leaq -0x8d8(%rbp), %rdx
callq 0x3100
leaq -0x358(%rbp), %rdi
callq 0x7ee9
leaq -0x358(%rbp), %rdi
callq 0x3140
xorl %r14d, %r14d
leaq -0x238(%rbp), %rdi
callq 0x3140
leaq -0x258(%rbp), %rdi
callq 0x3140
leaq -0x398(%rbp), %rdi
callq 0x3140
leaq -0x108(%rbp), %rdi
callq 0x3140
leaq -0xae0(%rbp), %rdi
callq 0x30b0
andb $0x1, %r14b
movl %r14d, %eax
addq $0xab8, %rsp            # imm = 0xAB8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6794(%rip), %rsi      # 0xf4e2
leaq -0x2d8(%rbp), %rdi
leaq -0x758(%rbp), %rdx
callq 0x3100
leaq -0x2d8(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x8343
leaq -0x2d8(%rbp), %rdi
callq 0x3140
leaq -0xae0(%rbp), %rbx
leaq -0x108(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3060
movq -0x100(%rbp), %rsi
cmpq $0x4, %rsi
jb 0x8d8a
movq -0x108(%rbp), %rdi
addq %rdi, %rsi
leaq -0x758(%rbp), %rdx
movb $0x20, (%rdx)
callq 0xa2ae
leaq -0x108(%rbp), %rdi
movq (%rdi), %rdx
addq 0x8(%rdi), %rdx
movq %rax, %rsi
callq 0x3090
movq -0x108(%rbp), %rdi
movq -0x100(%rbp), %rsi
addq %rdi, %rsi
leaq -0x758(%rbp), %rdx
movb $0x9, (%rdx)
callq 0xa2ae
leaq -0x108(%rbp), %rdi
movq (%rdi), %rdx
addq 0x8(%rdi), %rdx
movq %rax, %rsi
callq 0x3090
leaq -0x758(%rbp), %rdi
leaq -0x108(%rbp), %rsi
pushq $0x8
popq %rdx
callq 0x3410
leaq -0x148(%rbp), %r13
leaq -0x5d8(%rbp), %r14
leaq -0x758(%rbp), %rdi
movq %r13, %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x8f9b
movq %r13, %rdi
pushq $0x3d
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %rbx
movq %r13, %rdi
pushq $0x5b
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %r12
movq %r13, %rdi
pushq $0x5d
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %r15
movq %r13, %rdi
pushq $0x2e
popq %rsi
xorl %edx, %edx
callq 0x3330
leaq 0x1(%rbx), %rdx
notq %rbx
movq %r13, %rsi
movq %r12, %r13
notq %r13
cmpq $-0x1, %rax
je 0x8f1d
addq -0x140(%rbp), %rbx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32a0
movq %r14, %rdi
xorl %esi, %esi
callq 0x9ffc
movd %xmm0, -0x68(%rbp)
movq %r14, %rdi
callq 0x3140
movd -0x68(%rbp), %xmm0
movd %xmm0, -0x1d8(%rbp)
incq %r12
addq %r13, %r15
movq %r14, %rdi
leaq -0x148(%rbp), %r13
movq %r13, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x32a0
movq %r14, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
leaq 0xde26(%rip), %rdi      # 0x16d30
pushq $0x1
popq %rsi
movl %eax, %edx
leaq -0x1d8(%rbp), %rcx
callq 0xc56e
jmp 0x8f8e
addq -0x140(%rbp), %rbx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32a0
movq %r14, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
movl %eax, %ebx
movq %r14, %rdi
callq 0x3140
movl %ebx, -0x1d8(%rbp)
incq %r12
addq %r13, %r15
movq %r14, %rdi
leaq -0x148(%rbp), %r13
movq %r13, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x32a0
movq %r14, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
leaq 0xddb2(%rip), %rdi      # 0x16d30
xorl %esi, %esi
movl %eax, %edx
leaq -0x1d8(%rbp), %rcx
callq 0xc56e
movq %r14, %rdi
callq 0x3140
jmp 0x8e2b
leaq 0x6554(%rip), %rsi      # 0xf4f6
leaq -0x2b8(%rbp), %rdi
leaq -0x5d8(%rbp), %rdx
callq 0x3100
leaq -0x2b8(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x8343
leaq -0x2b8(%rbp), %rdi
callq 0x3140
leaq 0xd391(%rip), %rax      # 0x16368
movq (%rax), %rbx
testq %rbx, %rbx
je 0x8ff0
leaq 0x10(%rbx), %rdi
callq 0xa0e6
movq %rbx, %rdi
callq 0x3270
pxor %xmm0, %xmm0
leaq -0x200(%rbp), %rax
movdqa %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq -0x288(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %r15d, %r15d
movb %r15b, (%rax)
leaq -0x98(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq -0x78(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %r15b, (%rax)
movb %r15b, (%rcx)
leaq -0xd8(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq -0xb8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %r15b, (%rax)
movb %r15b, (%rcx)
leaq -0x118(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %r15b, (%rax)
leaq -0x1c8(%rbp), %rbx
movb $0x1, %r14b
leaq -0xae0(%rbp), %r12
leaq -0x108(%rbp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x3060
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x9986
cmpq $0x0, -0x100(%rbp)
je 0x908e
movq %rbx, -0x1d8(%rbp)
andq $0x0, -0x1d0(%rbp)
movb %r15b, -0x1c8(%rbp)
leaq -0x1a0(%rbp), %rax
movq %rax, -0x1b0(%rbp)
andq $0x0, -0x1a8(%rbp)
movb %r15b, -0x1a0(%rbp)
leaq -0x180(%rbp), %rax
movq %rax, -0x190(%rbp)
andq $0x0, -0x188(%rbp)
movb %r15b, -0x180(%rbp)
leaq -0x160(%rbp), %rax
movq %rax, -0x170(%rbp)
andq $0x0, -0x168(%rbp)
movb %r15b, -0x160(%rbp)
andq $0x0, -0x150(%rbp)
leaq -0x1d8(%rbp), %rdi
movq %r13, %rsi
callq 0x3190
leaq -0x5d8(%rbp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
pushq $0x8
popq %rdx
callq 0x3410
movq %rbx, %rdi
leaq -0x298(%rbp), %rbx
movq %rbx, %rsi
callq 0x3300
leaq -0x458(%rbp), %rdi
movq %rbx, %rsi
callq 0x3350
leaq -0x458(%rbp), %rbx
movq %rbx, %rdi
callq 0x84dc
movq %rbx, %rdi
movl %eax, %ebx
callq 0x3140
movl %ebx, %eax
leaq 0x61b3(%rip), %rcx      # 0xf344
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x5d8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xe8(%rbp), %rdx
addq -0xe0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xe8(%rbp), %rdx
addq -0xe0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movl %ebx, -0x1b8(%rbp)
leaq -0x1b0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3190
leaq -0x190(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3190
leaq -0x170(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3190
jmp 0x9945
leaq -0x5d8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movl %ebx, %r15d
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
leaq -0xc8(%rbp), %rbx
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xc8(%rbp), %rdx
addq -0xc0(%rbp), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3090
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xc8(%rbp), %rdx
addq -0xc0(%rbp), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3090
movl %r15d, -0x1b8(%rbp)
leaq -0x1b0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3190
leaq -0xc8(%rbp), %r15
movq %r15, %rdi
pushq $0x28
popq %rsi
xorl %edx, %edx
callq 0x3330
movq %rax, %rbx
movq %r15, %rdi
pushq $0x29
popq %rsi
xorl %edx, %edx
callq 0x3330
leaq 0x1(%rbx), %rdx
movq %rbx, %rcx
notq %rcx
addq %rax, %rcx
leaq -0x48(%rbp), %r15
movq %r15, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x32a0
leaq -0x190(%rbp), %rdi
movq %r15, %rsi
callq 0x32f0
movq %r15, %rdi
callq 0x3140
movq %r15, %rdi
leaq -0xc8(%rbp), %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x32a0
movq %r15, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
movl %eax, -0x14c(%rbp)
movq %r15, %rdi
callq 0x3140
xorl %r15d, %r15d
jmp 0x9945
leaq -0x5d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xe8(%rbp), %rdx
addq -0xe0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xc8(%rbp), %rdx
addq -0xc0(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xe8(%rbp), %rdx
addq -0xe0(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xc8(%rbp), %rdx
addq -0xc0(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movl %ebx, -0x1b8(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3190
leaq -0x170(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3190
leaq -0xc8(%rbp), %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
movl %eax, -0x14c(%rbp)
jmp 0x9945
movl $0xa, -0x1b8(%rbp)
jmp 0x9945
leaq -0x3d8(%rbp), %rdi
leaq 0x5dd1(%rip), %rsi      # 0xf50a
movq -0x1e0(%rbp), %rdx
callq 0x7331
leaq -0x3d8(%rbp), %rbx
movq %rbx, %rdi
callq 0x7ee9
movq %rbx, %rdi
callq 0x3140
xorl %ebx, %ebx
xorl %r14d, %r14d
jmp 0x995a
leaq -0x5d8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
leaq -0x5d8(%rbp), %rdi
leaq -0x128(%rbp), %rsi
pushq $0x2c
popq %rdx
callq 0x3470
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x128(%rbp), %rdi
movq -0x120(%rbp), %rsi
addq %rdi, %rsi
movb $0x20, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x128(%rbp), %rdx
addq -0x120(%rbp), %rdx
leaq -0x128(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0xa8(%rbp), %rdx
addq -0xa0(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x88(%rbp), %rdx
addq -0x80(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq -0x128(%rbp), %rdi
movq -0x120(%rbp), %rsi
addq %rdi, %rsi
movb $0x9, -0x48(%rbp)
leaq -0x48(%rbp), %rdx
callq 0xa2ae
movq -0x128(%rbp), %rdx
addq -0x120(%rbp), %rdx
leaq -0x128(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movl $0x4, -0x1b8(%rbp)
leaq -0x1b0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3190
leaq -0x190(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3190
leaq -0x128(%rbp), %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x9fdb
movl %eax, -0x150(%rbp)
movb $0x1, %bl
leaq -0x200(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0xa01a
leaq -0x5d8(%rbp), %rdi
callq 0x3150
leaq -0x1d8(%rbp), %rdi
callq 0xa058
testb %bl, %bl
leaq -0x1c8(%rbp), %rbx
jne 0x908e
jmp 0x9a0d
pushq $0x28
popq %rdi
callq 0x3290
movq %rax, %rbx
leaq -0x218(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0xa08a
leaq -0x218(%rbp), %rsi
movq %rbx, %rdi
callq 0xa754
leaq 0xc9ae(%rip), %rax      # 0x16368
movq %rbx, (%rax)
leaq -0x218(%rbp), %rdi
callq 0xa0e6
leaq 0x5b6d(%rip), %rsi      # 0xf53d
leaq -0x278(%rbp), %rdi
leaq -0x5d8(%rbp), %rdx
callq 0x3100
leaq -0x278(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x8343
leaq -0x278(%rbp), %rdi
callq 0x3140
movb $0x1, %r14b
leaq -0xae0(%rbp), %rdi
callq 0x3080
leaq -0x128(%rbp), %rdi
callq 0x3140
leaq -0xc8(%rbp), %rdi
callq 0x3140
leaq -0xe8(%rbp), %rdi
callq 0x3140
leaq -0x88(%rbp), %rdi
callq 0x3140
leaq -0xa8(%rbp), %rdi
callq 0x3140
leaq -0x298(%rbp), %rdi
callq 0x3140
leaq -0x200(%rbp), %rdi
callq 0xa0e6
leaq -0x758(%rbp), %rdi
callq 0x3150
jmp 0x9ad3
leaq 0x5a05(%rip), %rsi      # 0xf47b
leaq -0x318(%rbp), %rdi
leaq -0x758(%rbp), %rdx
callq 0x3100
leaq -0x318(%rbp), %rdi
callq 0x7ee9
leaq -0x318(%rbp), %rdi
jmp 0x9acb
leaq 0x5a08(%rip), %rsi      # 0xf4ad
leaq -0x2f8(%rbp), %rdi
leaq -0x758(%rbp), %rdx
callq 0x3100
leaq -0x2f8(%rbp), %rdi
callq 0x7ee9
leaq -0x2f8(%rbp), %rdi
callq 0x3140
movb $0x1, %r14b
leaq -0x8d8(%rbp), %rdi
callq 0x3150
leaq -0x148(%rbp), %rdi
callq 0x3140
jmp 0x8cf2
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
movq %rax, %r14
leaq -0x3d8(%rbp), %rdi
jmp 0x9b99
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0x3140
jmp 0x9cdf
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
movq %rax, %r14
leaq -0x2f8(%rbp), %rdi
jmp 0x9d48
jmp 0x9e58
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
jmp 0x9cdc
movq %rax, %r14
leaq -0x318(%rbp), %rdi
jmp 0x9d48
jmp 0x9e58
jmp 0x9c1d
movq %rax, %r14
jmp 0x9ceb
jmp 0x9cdc
movq %rax, %r14
leaq -0x278(%rbp), %rdi
callq 0x3140
jmp 0x9dfb
jmp 0x9df8
movq %rax, %r14
leaq -0x218(%rbp), %rdi
callq 0xa0e6
jmp 0x9c57
movq %rax, %r14
movq %rbx, %rdi
callq 0x3270
jmp 0x9dfb
movq %rax, %r14
leaq -0x2b8(%rbp), %rdi
jmp 0x9e83
jmp 0x9e51
jmp 0x9e58
jmp 0x9e58
jmp 0x9e58
jmp 0x9e58
jmp 0x9e58
movq %rax, %r14
leaq -0x2d8(%rbp), %rdi
jmp 0x9d48
jmp 0x9e58
jmp 0x9df8
jmp 0x9eae
jmp 0x9eae
jmp 0x9eae
jmp 0x9eae
jmp 0x9eae
jmp 0x9eae
movq %rax, %r14
leaq -0x338(%rbp), %rdi
jmp 0x9ea7
jmp 0x9ec8
movq %rax, %r14
leaq -0x5d8(%rbp), %rdi
callq 0x3150
leaq -0x1d8(%rbp), %rdi
callq 0xa058
jmp 0x9dfb
jmp 0x9e58
jmp 0x9d3e
movq %rax, %r14
leaq -0x3f8(%rbp), %rdi
jmp 0x9d48
jmp 0x9e51
jmp 0x9e79
jmp 0x9e51
movq %rax, %r14
leaq -0x358(%rbp), %rdi
jmp 0x9ea7
jmp 0x9ec8
movq %rax, %r14
leaq -0x418(%rbp), %rdi
jmp 0x9d48
movq %rax, %r14
leaq -0x758(%rbp), %rdi
callq 0x3140
jmp 0x9e94
jmp 0x9e58
jmp 0x9e51
jmp 0x9e79
jmp 0x9e51
movq %r14, %rbx
movq %rax, %r14
cmpl $0x1, %edx
jne 0x9edc
movq %r14, %rdi
callq 0x3110
leaq 0x5661(%rip), %rsi      # 0xf3e5
leaq -0x378(%rbp), %rdi
movq %rbx, %rdx
callq 0x7331
leaq -0x378(%rbp), %rdi
callq 0x7ee9
leaq -0x378(%rbp), %rdi
callq 0x3140
callq 0x33f0
jmp 0x8cef
jmp 0x9ec8
movq %rax, %r14
leaq -0x378(%rbp), %rdi
callq 0x3140
jmp 0x9dce
movq %rax, %r14
callq 0x33f0
jmp 0x9edc
movq %rax, %rdi
callq 0x73b4
jmp 0x9ec8
movq %rax, %r14
leaq -0x438(%rbp), %rdi
jmp 0x9e67
jmp 0x9e79
jmp 0x9e58
movq %rax, %r14
leaq -0x128(%rbp), %rdi
callq 0x3140
leaq -0xc8(%rbp), %rdi
callq 0x3140
leaq -0xe8(%rbp), %rdi
callq 0x3140
leaq -0x88(%rbp), %rdi
callq 0x3140
leaq -0xa8(%rbp), %rdi
callq 0x3140
leaq -0x298(%rbp), %rdi
callq 0x3140
leaq -0x200(%rbp), %rdi
callq 0xa0e6
jmp 0x9e88
movq %rax, %r14
jmp 0x9e88
jmp 0x9e58
movq %rax, %r14
jmp 0x9e94
movq %rax, %r14
leaq -0x3b8(%rbp), %rdi
callq 0x3140
jmp 0x9f18
movq %rax, %r14
jmp 0x9f18
movq %rax, %r14
leaq -0x5d8(%rbp), %rdi
callq 0x3140
leaq -0x758(%rbp), %rdi
callq 0x3150
leaq -0x8d8(%rbp), %rdi
callq 0x3150
leaq -0x148(%rbp), %rdi
callq 0x3140
jmp 0x9edc
movq %rax, %r14
jmp 0x9ea0
jmp 0x9ec8
jmp 0x9ecd
movq %rax, %r14
leaq -0x5d8(%rbp), %rdi
callq 0x3140
jmp 0x9ed0
movq %rax, %r14
jmp 0x9edc
movq %rax, %r14
leaq -0x8d8(%rbp), %rdi
callq 0x3150
leaq -0x238(%rbp), %rdi
callq 0x3140
leaq -0x258(%rbp), %rdi
callq 0x3140
leaq -0x398(%rbp), %rdi
callq 0x3140
leaq -0x108(%rbp), %rdi
callq 0x3140
leaq -0xae0(%rbp), %rdi
callq 0x30b0
movq %r14, %rdi
callq 0x3440