// File: SunriseFox[P]very-simple-c-compiler/./src/asm.cpp
// Function: handleExprNode[abi:cxx11](TreeNode*)
string handleExprNode(TreeNode* node) {
    Symbol* ownSymbol = static_cast<ExprNode*>(node)->symbol;
    cerr << "symbol is: " << ownSymbol << ", " << ownSymbol->value << endl;

    if (node->nodeType == TreeNode::NODE_EXPRESSION) {
        cerr << "exprnode" << endl;
        if (ownSymbol->symbolType == Symbol::SYMBOL_CONSTANT) {
            if (ownSymbol->type == Symbol::VALUE_INT) {
                return string("$") + ownSymbol->value;
            }
            if (ownSymbol->type == Symbol::VALUE_CHAR) {
                return string("$") + to_string(ownSymbol->value[0]);
            }
        }
        return getSymbolMemory(ownSymbol);
    }

    if (node->nodeType == TreeNode::NODE_OPERATOR) {
        TreeNode* child[3];
        child[0] = node->child;
        child[1] = child[0] ? child[0]->sibling : nullptr;
        child[2] = child[1] ? child[1]->sibling : nullptr;

        auto opType = static_cast<OperatorNode*>(node)->type;

        string op = handleExprNode(child[0]);

        if (opType == OperatorNode::OP_TADDR) {
            string reg = getTmpReg(8);
            of << "\tleaq\t" << op << ", " << reg << "\n";
            return reg;
        } else if (opType == OperatorNode::OP_DEC) {
            of << "\tdecl\t" << op << "\n";
            return op;
        } else if (opType == OperatorNode::OP_INC) {
            of << "\tincl\t" << op << "\n";
            return op;
        }

        string reg;

        if (getRegNum(op) == -1) { // 不是寄存器
            reg = getTmpReg(4);
            of << "\tmovl\t" << op << ", " << reg << "\n";
        } else {
            reg = op;
        }

        if (opType == OperatorNode::OP_NOT) {
            of << "\ttestl\t" << reg << ", " << reg << "\n";
            of << "\tsete\t" << get2RegName(getRegNum(reg)) << "\n";
            of << "\tmovzbl\t"<< get2RegName(getRegNum(reg)) << ", " << reg << "\n";
            return reg;
        }

        protectRegByName(reg);

        op = handleExprNode(child[1]);
        releaseRegByName(reg);

        string target;

        if(opType == OperatorNode::OP_LAND) {
            string Lfail = getNextLabel();
            string Lend = getNextLabel();
            of << "\ttest\t" << reg << ", " << reg << "\n";
            of << "\tje\t" << Lfail << "\n";
            of << "\tmovl\t" << op << ", " << reg << "\n";
            of << "\ttest\t" << reg << ", " << reg << "\n";
            of << "\tje\t" << Lfail << "\n";
            of << "\tmovl\t$1, " << reg << "\n";
            of << "\tjmp\t" << Lend << "\n";
            of << Lfail << ":\n";
            of << "\tmovl\t$0, " << reg << "\n";
            of << Lend << ":\n";
            return reg;
        } else if (opType == OperatorNode::OP_LOR) {
            string L2 = getNextLabel();
            string L3 = getNextLabel();
            string Lend = getNextLabel();
            of << "\ttest\t" << reg << ", " << reg << "\n";
            of << "\tjne\t" << L2 << "\n";
            of << "\tmovl\t" << op << ", " << reg << "\n";
            of << "\ttest\t" << reg << ", " << reg << "\n";
            of << "\tje\t" << L3 << "\n";
            of << L2 << ":\n";
            of << "\tmovl\t$1, " << reg << "\n";
            of << "\tjmp\t" << Lend << "\n";
            of << L3 << ":\n";
            of << "\tmovl\t$0, " << reg << "\n";
            of << Lend << ":\n";
            return reg;
        }
        switch (opType) {
        case OperatorNode::OP_ADD:
            of << "\taddl\t" << op << ", " << reg << "\n";
            return reg;
        case OperatorNode::OP_SUB:
            of << "\tsubl\t" << op << ", " << reg << "\n";
            return reg;
        case OperatorNode::OP_ASSIGN:
            of << "\tmovl\t" << reg << ", " << op << "\n";
            return reg;
        case OperatorNode::OP_MULAS:
            of << "\timull\t" << op << ", " << reg << "\n";
            of << "\tmovl\t" << reg << ", " << op << "\n";
            return "";
        case OperatorNode::OP_MORE:
        case OperatorNode::OP_MOREEQ:
        case OperatorNode::OP_LESS:
        case OperatorNode::OP_LESSEQ:
            target = getTmpReg(2);
            string what;
            switch (opType) {
            case OperatorNode::OP_MORE:
                what = "le"; break;
            case OperatorNode::OP_MOREEQ:
                what = "l"; break;
            case OperatorNode::OP_LESS:
                what = "ge"; break;
            case OperatorNode::OP_LESSEQ:
                what = "g"; break;
            default: break;
            }
            of << "\tcmpl\t" << op << ", " << reg << "\n";
            of << "\tset" << what << "\t" << target << "\n";
            reg = getTmpReg(4);
            of << "\tmovzbl\t" << target << ", " << reg << "\n";
            return reg;
        }
        cerr << "++++ operator not handled" << endl;
        return getSymbolMemory(ownSymbol);
    }

    if (node->nodeType == TreeNode::NODE_FUNCCALL) {
        handleFuncCall(node);
        return "%eax";
    }

    return "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x690, %rsp            # imm = 0x690
movq %rdi, -0x2c0(%rbp)
movq %rdi, %rax
movq %rax, -0x2b8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
movq 0x1afe9(%rip), %rdi     # 0x20ff0
leaq 0x11324(%rip), %rsi     # 0x17332
callq 0x3240
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x31e0
movq %rax, %rdi
leaq 0x1136e(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, %rdi
movq -0x18(%rbp), %rsi
addq $0x8, %rsi
callq 0x3230
movq %rax, %rdi
movq 0x1af60(%rip), %rsi     # 0x20fa8
callq 0x3290
movq -0x10(%rbp), %rax
cmpl $0x3, 0x10(%rax)
jne 0x6229
movq 0x1af8e(%rip), %rdi     # 0x20ff0
leaq 0x112d5(%rip), %rsi     # 0x1733e
callq 0x3240
movq %rax, %rdi
movq 0x1af30(%rip), %rsi     # 0x20fa8
callq 0x3290
movq -0x18(%rbp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x6214
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x6123
leaq -0x39(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x3490
movq -0x2c8(%rbp), %rdx
leaq 0x11291(%rip), %rsi     # 0x17347
leaq -0x38(%rbp), %rdi
callq 0x8910
jmp 0x60c1
movq -0x2c0(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x8, %rdx
leaq -0x38(%rbp), %rsi
callq 0x8e40
jmp 0x60db
leaq -0x38(%rbp), %rdi
callq 0x3180
leaq -0x39(%rbp), %rdi
callq 0x32c0
jmp 0x78e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6115
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3180
leaq -0x39(%rbp), %rdi
callq 0x32c0
jmp 0x78f6
movq -0x18(%rbp), %rax
cmpl $0x5, (%rax)
jne 0x6212
leaq -0x71(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0x3490
movq -0x2d0(%rbp), %rdx
leaq 0x111f9(%rip), %rsi     # 0x17347
leaq -0x70(%rbp), %rdi
callq 0x8910
jmp 0x6159
movq -0x18(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3500
movq %rax, -0x2d8(%rbp)
jmp 0x6173
movq -0x2d8(%rbp), %rax
movsbl (%rax), %esi
leaq -0x98(%rbp), %rdi
callq 0x8bc0
jmp 0x618b
movq -0x2c0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x8af0
jmp 0x61a4
leaq -0x98(%rbp), %rdi
callq 0x3180
leaq -0x70(%rbp), %rdi
callq 0x3180
leaq -0x71(%rbp), %rdi
callq 0x32c0
jmp 0x78e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6204
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x3180
leaq -0x70(%rbp), %rdi
callq 0x3180
leaq -0x71(%rbp), %rdi
callq 0x32c0
jmp 0x78f6
jmp 0x6214
movq -0x2c0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x4c80
jmp 0x78e6
movq -0x10(%rbp), %rax
cmpl $0x4, 0x10(%rax)
jne 0x7825
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xb0(%rbp)
cmpq $0x0, -0xb0(%rbp)
je 0x6264
movq -0xb0(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x2e0(%rbp)
jmp 0x626f
xorl %eax, %eax
movq %rax, -0x2e0(%rbp)
jmp 0x626f
movq -0x2e0(%rbp), %rax
movq %rax, -0xa8(%rbp)
cmpq $0x0, -0xa8(%rbp)
je 0x629b
movq -0xa8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x2e8(%rbp)
jmp 0x62a6
xorl %eax, %eax
movq %rax, -0x2e8(%rbp)
jmp 0x62a6
movq -0x2e8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0xb4(%rbp)
movq -0xb0(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x5fd0
cmpl $0xd, -0xb4(%rbp)
jne 0x63db
movq -0x2c0(%rbp), %rdi
movb $0x0, -0xd9(%rbp)
movl $0x8, %esi
callq 0x4780
jmp 0x62fb
leaq 0x1afee(%rip), %rdi     # 0x212f0
leaq 0x10fd7(%rip), %rsi     # 0x172e0
callq 0x3240
movq %rax, -0x2f0(%rbp)
jmp 0x6317
movq -0x2f0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x2f8(%rbp)
jmp 0x6333
movq -0x2f8(%rbp), %rdi
leaq 0x11056(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x300(%rbp)
jmp 0x634f
movq -0x2c0(%rbp), %rsi
movq -0x300(%rbp), %rdi
callq 0x3230
movq %rax, -0x308(%rbp)
jmp 0x636b
movq -0x308(%rbp), %rdi
leaq 0x1116b(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6380
movb $0x1, -0xd9(%rbp)
movl $0x1, -0xe0(%rbp)
testb $0x1, -0xd9(%rbp)
jne 0x63d6
jmp 0x63ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7814
movq -0x2c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x3180
jmp 0x7814
movq -0x2c0(%rbp), %rdi
callq 0x3180
jmp 0x7803
cmpl $0x1, -0xb4(%rbp)
jne 0x6453
leaq 0x1af05(%rip), %rdi     # 0x212f0
leaq 0x10f57(%rip), %rsi     # 0x17349
callq 0x3240
movq %rax, -0x310(%rbp)
jmp 0x6400
movq -0x310(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x318(%rbp)
jmp 0x641c
movq -0x318(%rbp), %rdi
leaq 0x110ba(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6431
movq -0x2c0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x7803
cmpl $0x0, -0xb4(%rbp)
jne 0x64cb
leaq 0x1ae8d(%rip), %rdi     # 0x212f0
leaq 0x10ee6(%rip), %rsi     # 0x17350
callq 0x3240
movq %rax, -0x320(%rbp)
jmp 0x6478
movq -0x320(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x328(%rbp)
jmp 0x6494
movq -0x328(%rbp), %rdi
leaq 0x11042(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x64a9
movq -0x2c0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x7803
jmp 0x64cd
jmp 0x64cf
leaq -0x100(%rbp), %rdi
callq 0x3390
leaq -0xd8(%rbp), %rdi
callq 0x4850
movl %eax, -0x32c(%rbp)
jmp 0x64ef
movl -0x32c(%rbp), %eax
cmpl $-0x1, %eax
jne 0x65cf
leaq -0x120(%rbp), %rdi
movl $0x4, %esi
callq 0x4780
jmp 0x6511
leaq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %rsi, -0x340(%rbp)
callq 0x3340
movq -0x340(%rbp), %rdi
callq 0x3180
leaq 0x1adb2(%rip), %rdi     # 0x212f0
leaq 0x10d94(%rip), %rsi     # 0x172d9
callq 0x3240
movq %rax, -0x338(%rbp)
jmp 0x6553
movq -0x338(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x348(%rbp)
jmp 0x656f
movq -0x348(%rbp), %rdi
leaq 0x10e1a(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x350(%rbp)
jmp 0x658b
movq -0x350(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x358(%rbp)
jmp 0x65a7
movq -0x358(%rbp), %rdi
leaq 0x10f2f(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x65bc
jmp 0x65e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x77f5
leaq -0x100(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3040
jmp 0x65e4
jmp 0x65e6
cmpl $0x2, -0xb4(%rbp)
jne 0x680e
leaq 0x1acf6(%rip), %rdi     # 0x212f0
leaq 0x10d56(%rip), %rsi     # 0x17357
callq 0x3240
movq %rax, -0x360(%rbp)
jmp 0x660f
movq -0x360(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x368(%rbp)
jmp 0x662b
movq -0x368(%rbp), %rdi
leaq 0x10d5e(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x370(%rbp)
jmp 0x6647
movq -0x370(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x378(%rbp)
jmp 0x6663
movq -0x378(%rbp), %rdi
leaq 0x10e73(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6678
leaq 0x1ac71(%rip), %rdi     # 0x212f0
leaq 0x10cd9(%rip), %rsi     # 0x1735f
callq 0x3240
movq %rax, -0x380(%rbp)
jmp 0x6694
leaq -0x100(%rbp), %rdi
callq 0x4850
movl %eax, -0x384(%rbp)
jmp 0x66a8
movl -0x384(%rbp), %esi
leaq -0x140(%rbp), %rdi
callq 0x38b0
jmp 0x66bc
movq -0x380(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3230
movq %rax, -0x390(%rbp)
jmp 0x66d8
movq -0x390(%rbp), %rdi
leaq 0x10dfe(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x66ed
leaq -0x140(%rbp), %rdi
callq 0x3180
leaq 0x1abf0(%rip), %rdi     # 0x212f0
leaq 0x10c5f(%rip), %rsi     # 0x17366
callq 0x3240
movq %rax, -0x398(%rbp)
jmp 0x6715
leaq -0x100(%rbp), %rdi
callq 0x4850
movl %eax, -0x39c(%rbp)
jmp 0x6729
movl -0x39c(%rbp), %esi
leaq -0x160(%rbp), %rdi
callq 0x38b0
jmp 0x673d
movq -0x398(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x3230
movq %rax, -0x3a8(%rbp)
jmp 0x6759
movq -0x3a8(%rbp), %rdi
leaq 0x10c30(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x3b0(%rbp)
jmp 0x6775
movq -0x3b0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x3b8(%rbp)
jmp 0x6791
movq -0x3b8(%rbp), %rdi
leaq 0x10d45(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x67a6
leaq -0x160(%rbp), %rdi
callq 0x3180
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x77e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x3180
jmp 0x77f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x3180
jmp 0x77f5
leaq -0x100(%rbp), %rdi
callq 0x4c00
jmp 0x681c
movq -0xa8(%rbp), %rsi
leaq -0x180(%rbp), %rdi
callq 0x5fd0
jmp 0x6831
leaq -0xd8(%rbp), %rdi
leaq -0x180(%rbp), %rsi
movq %rsi, -0x3c0(%rbp)
callq 0x3340
movq -0x3c0(%rbp), %rdi
callq 0x3180
leaq -0x100(%rbp), %rdi
callq 0x4c40
jmp 0x6865
leaq -0x1a0(%rbp), %rdi
callq 0x3390
cmpl $0x17, -0xb4(%rbp)
jne 0x6c8e
leaq -0x1c0(%rbp), %rdi
callq 0x4db0
jmp 0x688c
leaq -0x1e0(%rbp), %rdi
callq 0x4db0
jmp 0x689a
leaq 0x1aa4f(%rip), %rdi     # 0x212f0
leaq 0x10ac7(%rip), %rsi     # 0x1736f
callq 0x3240
movq %rax, -0x3c8(%rbp)
jmp 0x68b6
movq -0x3c8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x3d0(%rbp)
jmp 0x68d2
movq -0x3d0(%rbp), %rdi
leaq 0x10ab7(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x3d8(%rbp)
jmp 0x68ee
movq -0x3d8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x3e0(%rbp)
jmp 0x690a
movq -0x3e0(%rbp), %rdi
leaq 0x10bcc(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x691f
leaq 0x1a9ca(%rip), %rdi     # 0x212f0
leaq 0x10a49(%rip), %rsi     # 0x17376
callq 0x3240
movq %rax, -0x3e8(%rbp)
jmp 0x693b
movq -0x3e8(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3230
movq %rax, -0x3f0(%rbp)
jmp 0x6957
movq -0x3f0(%rbp), %rdi
leaq 0x10b7f(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x696c
leaq 0x1a97d(%rip), %rdi     # 0x212f0
leaq 0x1095f(%rip), %rsi     # 0x172d9
callq 0x3240
movq %rax, -0x3f8(%rbp)
jmp 0x6988
movq -0x3f8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x400(%rbp)
jmp 0x69a4
movq -0x400(%rbp), %rdi
leaq 0x109e5(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x408(%rbp)
jmp 0x69c0
movq -0x408(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x410(%rbp)
jmp 0x69dc
movq -0x410(%rbp), %rdi
leaq 0x10afa(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x69f1
leaq 0x1a8f8(%rip), %rdi     # 0x212f0
leaq 0x10970(%rip), %rsi     # 0x1736f
callq 0x3240
movq %rax, -0x418(%rbp)
jmp 0x6a0d
movq -0x418(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x420(%rbp)
jmp 0x6a29
movq -0x420(%rbp), %rdi
leaq 0x10960(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x428(%rbp)
jmp 0x6a45
movq -0x428(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x430(%rbp)
jmp 0x6a61
movq -0x430(%rbp), %rdi
leaq 0x10a75(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6a76
leaq 0x1a873(%rip), %rdi     # 0x212f0
leaq 0x108f2(%rip), %rsi     # 0x17376
callq 0x3240
movq %rax, -0x438(%rbp)
jmp 0x6a92
movq -0x438(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3230
movq %rax, -0x440(%rbp)
jmp 0x6aae
movq -0x440(%rbp), %rdi
leaq 0x10a28(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6ac3
leaq 0x1a826(%rip), %rdi     # 0x212f0
leaq 0x108aa(%rip), %rsi     # 0x1737b
callq 0x3240
movq %rax, -0x448(%rbp)
jmp 0x6adf
movq -0x448(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x450(%rbp)
jmp 0x6afb
movq -0x450(%rbp), %rdi
leaq 0x109db(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6b10
leaq 0x1a7d9(%rip), %rdi     # 0x212f0
leaq 0x10868(%rip), %rsi     # 0x17386
callq 0x3240
movq %rax, -0x458(%rbp)
jmp 0x6b2c
movq -0x458(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x3230
movq %rax, -0x460(%rbp)
jmp 0x6b48
movq -0x460(%rbp), %rdi
leaq 0x1098e(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6b5d
leaq 0x1a78c(%rip), %rdi     # 0x212f0
leaq -0x1c0(%rbp), %rsi
callq 0x3230
movq %rax, -0x468(%rbp)
jmp 0x6b79
movq -0x468(%rbp), %rdi
leaq 0x10805(%rip), %rsi     # 0x1738c
callq 0x3240
jmp 0x6b8e
leaq 0x1a75b(%rip), %rdi     # 0x212f0
leaq 0x107f3(%rip), %rsi     # 0x1738f
callq 0x3240
movq %rax, -0x470(%rbp)
jmp 0x6baa
movq -0x470(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x478(%rbp)
jmp 0x6bc6
movq -0x478(%rbp), %rdi
leaq 0x10910(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6bdb
leaq 0x1a70e(%rip), %rdi     # 0x212f0
leaq -0x1e0(%rbp), %rsi
callq 0x3230
movq %rax, -0x480(%rbp)
jmp 0x6bf7
movq -0x480(%rbp), %rdi
leaq 0x10787(%rip), %rsi     # 0x1738c
callq 0x3240
jmp 0x6c0c
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3180
leaq -0x1c0(%rbp), %rdi
callq 0x3180
jmp 0x77cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x77d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6c7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3180
leaq -0x1c0(%rbp), %rdi
callq 0x3180
jmp 0x77d9
cmpl $0x18, -0xb4(%rbp)
jne 0x70ff
leaq -0x200(%rbp), %rdi
callq 0x4db0
jmp 0x6ca9
leaq -0x220(%rbp), %rdi
callq 0x4db0
jmp 0x6cb7
leaq -0x240(%rbp), %rdi
callq 0x4db0
jmp 0x6cc5
leaq 0x1a624(%rip), %rdi     # 0x212f0
leaq 0x1069c(%rip), %rsi     # 0x1736f
callq 0x3240
movq %rax, -0x488(%rbp)
jmp 0x6ce1
movq -0x488(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x490(%rbp)
jmp 0x6cfd
movq -0x490(%rbp), %rdi
leaq 0x1068c(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x498(%rbp)
jmp 0x6d19
movq -0x498(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x4a0(%rbp)
jmp 0x6d35
movq -0x4a0(%rbp), %rdi
leaq 0x107a1(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6d4a
leaq 0x1a59f(%rip), %rdi     # 0x212f0
leaq 0x10642(%rip), %rsi     # 0x1739a
callq 0x3240
movq %rax, -0x4a8(%rbp)
jmp 0x6d66
movq -0x4a8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3230
movq %rax, -0x4b0(%rbp)
jmp 0x6d82
movq -0x4b0(%rbp), %rdi
leaq 0x10754(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6d97
leaq 0x1a552(%rip), %rdi     # 0x212f0
leaq 0x10534(%rip), %rsi     # 0x172d9
callq 0x3240
movq %rax, -0x4b8(%rbp)
jmp 0x6db3
movq -0x4b8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x4c0(%rbp)
jmp 0x6dcf
movq -0x4c0(%rbp), %rdi
leaq 0x105ba(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x4c8(%rbp)
jmp 0x6deb
movq -0x4c8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x4d0(%rbp)
jmp 0x6e07
movq -0x4d0(%rbp), %rdi
leaq 0x106cf(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6e1c
leaq 0x1a4cd(%rip), %rdi     # 0x212f0
leaq 0x10545(%rip), %rsi     # 0x1736f
callq 0x3240
movq %rax, -0x4d8(%rbp)
jmp 0x6e38
movq -0x4d8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x4e0(%rbp)
jmp 0x6e54
movq -0x4e0(%rbp), %rdi
leaq 0x10535(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x4e8(%rbp)
jmp 0x6e70
movq -0x4e8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x4f0(%rbp)
jmp 0x6e8c
movq -0x4f0(%rbp), %rdi
leaq 0x1064a(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6ea1
leaq 0x1a448(%rip), %rdi     # 0x212f0
leaq 0x104c7(%rip), %rsi     # 0x17376
callq 0x3240
movq %rax, -0x4f8(%rbp)
jmp 0x6ebd
movq -0x4f8(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3230
movq %rax, -0x500(%rbp)
jmp 0x6ed9
movq -0x500(%rbp), %rdi
leaq 0x105fd(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6eee
leaq 0x1a3fb(%rip), %rdi     # 0x212f0
leaq -0x200(%rbp), %rsi
callq 0x3230
movq %rax, -0x508(%rbp)
jmp 0x6f0a
movq -0x508(%rbp), %rdi
leaq 0x10474(%rip), %rsi     # 0x1738c
callq 0x3240
jmp 0x6f1f
leaq 0x1a3ca(%rip), %rdi     # 0x212f0
leaq 0x1044e(%rip), %rsi     # 0x1737b
callq 0x3240
movq %rax, -0x510(%rbp)
jmp 0x6f3b
movq -0x510(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x518(%rbp)
jmp 0x6f57
movq -0x518(%rbp), %rdi
leaq 0x1057f(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6f6c
leaq 0x1a37d(%rip), %rdi     # 0x212f0
leaq 0x1040c(%rip), %rsi     # 0x17386
callq 0x3240
movq %rax, -0x520(%rbp)
jmp 0x6f88
movq -0x520(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x3230
movq %rax, -0x528(%rbp)
jmp 0x6fa4
movq -0x528(%rbp), %rdi
leaq 0x10532(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x6fb9
leaq 0x1a330(%rip), %rdi     # 0x212f0
leaq -0x220(%rbp), %rsi
callq 0x3230
movq %rax, -0x530(%rbp)
jmp 0x6fd5
movq -0x530(%rbp), %rdi
leaq 0x103a9(%rip), %rsi     # 0x1738c
callq 0x3240
jmp 0x6fea
leaq 0x1a2ff(%rip), %rdi     # 0x212f0
leaq 0x10397(%rip), %rsi     # 0x1738f
callq 0x3240
movq %rax, -0x538(%rbp)
jmp 0x7006
movq -0x538(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x540(%rbp)
jmp 0x7022
movq -0x540(%rbp), %rdi
leaq 0x104b4(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x7037
leaq 0x1a2b2(%rip), %rdi     # 0x212f0
leaq -0x240(%rbp), %rsi
callq 0x3230
movq %rax, -0x548(%rbp)
jmp 0x7053
movq -0x548(%rbp), %rdi
leaq 0x1032b(%rip), %rsi     # 0x1738c
callq 0x3240
jmp 0x7068
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x3180
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x200(%rbp), %rdi
callq 0x3180
jmp 0x77cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x70ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x70e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x3180
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x200(%rbp), %rdi
callq 0x3180
jmp 0x77d9
jmp 0x7101
movl -0xb4(%rbp), %eax
addl $-0x9, %eax
movl %eax, %ecx
movq %rcx, -0x550(%rbp)
subl $0x1a, %eax
ja 0x777e
movq -0x550(%rbp), %rax
leaq 0xffaa(%rip), %rcx      # 0x170d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1a1b6(%rip), %rdi     # 0x212f0
leaq 0x1025f(%rip), %rsi     # 0x173a0
callq 0x3240
movq %rax, -0x558(%rbp)
jmp 0x714f
movq -0x558(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x560(%rbp)
jmp 0x716b
movq -0x560(%rbp), %rdi
leaq 0x1021e(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x568(%rbp)
jmp 0x7187
movq -0x568(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x570(%rbp)
jmp 0x71a3
movq -0x570(%rbp), %rdi
leaq 0x10333(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x71b8
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x77cb
leaq 0x1a10f(%rip), %rdi     # 0x212f0
leaq 0x101bf(%rip), %rsi     # 0x173a7
callq 0x3240
movq %rax, -0x578(%rbp)
jmp 0x71f6
movq -0x578(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x580(%rbp)
jmp 0x7212
movq -0x580(%rbp), %rdi
leaq 0x10177(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x588(%rbp)
jmp 0x722e
movq -0x588(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x590(%rbp)
jmp 0x724a
movq -0x590(%rbp), %rdi
leaq 0x1028c(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x725f
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x77cb
leaq 0x1a068(%rip), %rdi     # 0x212f0
leaq 0x1004a(%rip), %rsi     # 0x172d9
callq 0x3240
movq %rax, -0x598(%rbp)
jmp 0x729d
movq -0x598(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x5a0(%rbp)
jmp 0x72b9
movq -0x5a0(%rbp), %rdi
leaq 0x100d0(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x5a8(%rbp)
jmp 0x72d5
movq -0x5a8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x5b0(%rbp)
jmp 0x72f1
movq -0x5b0(%rbp), %rdi
leaq 0x101e5(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x7306
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
jmp 0x77cb
leaq 0x19fc1(%rip), %rdi     # 0x212f0
leaq 0x10078(%rip), %rsi     # 0x173ae
callq 0x3240
movq %rax, -0x5b8(%rbp)
jmp 0x7344
movq -0x5b8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x5c0(%rbp)
jmp 0x7360
movq -0x5c0(%rbp), %rdi
leaq 0x10029(%rip), %rsi     # 0x17397
callq 0x3240
movq %rax, -0x5c8(%rbp)
jmp 0x737c
movq -0x5c8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x5d0(%rbp)
jmp 0x7398
movq -0x5d0(%rbp), %rdi
leaq 0x1013e(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x73ad
leaq 0x19f3c(%rip), %rdi     # 0x212f0
leaq 0xff1e(%rip), %rsi      # 0x172d9
callq 0x3240
movq %rax, -0x5d8(%rbp)
jmp 0x73c9
movq -0x5d8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x5e0(%rbp)
jmp 0x73e5
movq -0x5e0(%rbp), %rdi
leaq 0xffa4(%rip), %rsi      # 0x17397
callq 0x3240
movq %rax, -0x5e8(%rbp)
jmp 0x7401
movq -0x5e8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x5f0(%rbp)
jmp 0x741d
movq -0x5f0(%rbp), %rdi
leaq 0x100b9(%rip), %rsi     # 0x174e4
callq 0x3240
jmp 0x7432
leaq -0x241(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x3490
movq -0x2c0(%rbp), %rdi
movq -0x5f8(%rbp), %rdx
leaq 0xff20(%rip), %rsi      # 0x1737a
callq 0x8910
jmp 0x7461
leaq -0x241(%rbp), %rdi
callq 0x32c0
movl $0x1, -0xe0(%rbp)
jmp 0x77cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x241(%rbp), %rdi
callq 0x32c0
jmp 0x77d9
leaq -0x268(%rbp), %rdi
movl $0x2, %esi
callq 0x4780
jmp 0x74ac
leaq -0x1a0(%rbp), %rdi
leaq -0x268(%rbp), %rsi
movq %rsi, -0x608(%rbp)
callq 0x3340
movq -0x608(%rbp), %rdi
callq 0x3180
leaq -0x288(%rbp), %rdi
callq 0x3390
movl -0xb4(%rbp), %eax
addl $-0x11, %eax
movl %eax, %ecx
movq %rcx, -0x600(%rbp)
subl $0x3, %eax
ja 0x7589
movq -0x600(%rbp), %rax
leaq 0xfc39(%rip), %rcx      # 0x17140
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x11fee(%rip), %rsi     # 0x19505
leaq -0x288(%rbp), %rdi
callq 0x3380
jmp 0x7525
jmp 0x758b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x3180
jmp 0x77d9
leaq 0xfc1f(%rip), %rsi      # 0x1716a
leaq -0x288(%rbp), %rdi
callq 0x3380
jmp 0x7559
jmp 0x758b
leaq 0xfe54(%rip), %rsi      # 0x173b6
leaq -0x288(%rbp), %rdi
callq 0x3380
jmp 0x7570
jmp 0x758b
leaq 0xfcf8(%rip), %rsi      # 0x17271
leaq -0x288(%rbp), %rdi
callq 0x3380
jmp 0x7587
jmp 0x758b
jmp 0x758b
leaq 0x19d5e(%rip), %rdi     # 0x212f0
leaq 0xfe20(%rip), %rsi      # 0x173b9
callq 0x3240
movq %rax, -0x610(%rbp)
jmp 0x75a7
movq -0x610(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3230
movq %rax, -0x618(%rbp)
jmp 0x75c3
movq -0x618(%rbp), %rdi
leaq 0xfdc6(%rip), %rsi      # 0x17397
callq 0x3240
movq %rax, -0x620(%rbp)
jmp 0x75df
movq -0x620(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x628(%rbp)
jmp 0x75fb
movq -0x628(%rbp), %rdi
leaq 0xfedb(%rip), %rsi      # 0x174e4
callq 0x3240
jmp 0x7610
leaq 0x19cd9(%rip), %rdi     # 0x212f0
leaq 0xfda2(%rip), %rsi      # 0x173c0
callq 0x3240
movq %rax, -0x630(%rbp)
jmp 0x762c
movq -0x630(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x3230
movq %rax, -0x638(%rbp)
jmp 0x7648
movq -0x638(%rbp), %rdi
leaq 0xfd23(%rip), %rsi      # 0x17379
callq 0x3240
movq %rax, -0x640(%rbp)
jmp 0x7664
movq -0x640(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3230
movq %rax, -0x648(%rbp)
jmp 0x7680
movq -0x648(%rbp), %rdi
leaq 0xfe56(%rip), %rsi      # 0x174e4
callq 0x3240
jmp 0x7695
leaq -0x2a8(%rbp), %rdi
movl $0x4, %esi
callq 0x4780
jmp 0x76a8
leaq -0x100(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
movq %rsi, -0x658(%rbp)
callq 0x3340
movq -0x658(%rbp), %rdi
callq 0x3180
leaq 0x19c1b(%rip), %rdi     # 0x212f0
leaq 0xfc8a(%rip), %rsi      # 0x17366
callq 0x3240
movq %rax, -0x650(%rbp)
jmp 0x76ea
movq -0x650(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3230
movq %rax, -0x660(%rbp)
jmp 0x7706
movq -0x660(%rbp), %rdi
leaq 0xfc83(%rip), %rsi      # 0x17397
callq 0x3240
movq %rax, -0x668(%rbp)
jmp 0x7722
movq -0x668(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3230
movq %rax, -0x670(%rbp)
jmp 0x773e
movq -0x670(%rbp), %rdi
leaq 0xfd98(%rip), %rsi      # 0x174e4
callq 0x3240
jmp 0x7753
movq -0x2c0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3170
movl $0x1, -0xe0(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x3180
jmp 0x77cb
movq 0x1986b(%rip), %rdi     # 0x20ff0
leaq 0xfc39(%rip), %rsi      # 0x173c5
callq 0x3240
movq %rax, -0x678(%rbp)
jmp 0x779a
movq -0x678(%rbp), %rdi
movq 0x19800(%rip), %rsi     # 0x20fa8
callq 0x3290
jmp 0x77af
movq -0x2c0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x4c80
jmp 0x77c1
movl $0x1, -0xe0(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x3180
jmp 0x77e7
leaq -0x1a0(%rbp), %rdi
callq 0x3180
jmp 0x77f5
leaq -0x100(%rbp), %rdi
callq 0x3180
jmp 0x7803
leaq -0x100(%rbp), %rdi
callq 0x3180
jmp 0x7814
leaq -0xd8(%rbp), %rdi
callq 0x3180
jmp 0x78e6
leaq -0xd8(%rbp), %rdi
callq 0x3180
jmp 0x78f6
movq -0x10(%rbp), %rax
cmpl $0x5, 0x10(%rax)
jne 0x788f
movq -0x10(%rbp), %rdi
callq 0x57b0
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x3490
movq -0x2c0(%rbp), %rdi
movq -0x680(%rbp), %rdx
leaq 0xf95c(%rip), %rsi      # 0x171bc
callq 0x8910
jmp 0x7867
leaq -0x2a9(%rbp), %rdi
callq 0x32c0
jmp 0x78e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2a9(%rbp), %rdi
callq 0x32c0
jmp 0x78f6
leaq -0x2aa(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x3490
movq -0x2c0(%rbp), %rdi
movq -0x688(%rbp), %rdx
leaq 0xfac3(%rip), %rsi      # 0x1737a
callq 0x8910
jmp 0x78be
leaq -0x2aa(%rbp), %rdi
callq 0x32c0
jmp 0x78e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2aa(%rbp), %rdi
callq 0x32c0
jmp 0x78f6
movq -0x2b8(%rbp), %rax
addq $0x690, %rsp            # imm = 0x690
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3480
nop