// File: /workspace/github_cpp_makefile_star2_O2/JameyWoo[P]csmile/cgen.cpp
// Function: cGen[abi:cxx11](TreeNode*)
string cGen(TreeNode* root) {
    if (root == NULL) return "";
    emitComment(root->nodekind);
    TreeNode* p1, *p2, *p3;
    if ("FunDecl" == root->nodekind) {
        p1 = root->child[2];
        p2 = root->child[3];
        // TODO: 添加函数参数的中间代码
        cGen(p2);
        cGen(root->sibling);
    } else if ("Compound" == root->nodekind) {
        p1 = root->child[0];
        p2 = root->child[1];
        cGen(p1);
        cGen(p2);
    } else if ("LocVarDecl" == root->nodekind) {
        // cGen(root->child[1]);
        cGen(root->sibling);
    } else if ("Assign" == root->nodekind) {
        int addr = st_lookup(root->child[0]->name);
        if (addr != -1) {
            string left = getR();
            emit("LD " + left + ", " + to_string(symtabs[root->child[0]->name].addr) + "\n");
            string reg = cGen(root->child[1]);
            // int right_addr = st_lookup(root->child[1]->name); 
            emit("[" + left + "]" + " = " + reg + "\n");
        } else {
            error("no such a id");
        }
        cGen(root->sibling);
    } else if ("Selection" == root->nodekind) {
        string cond = root->child[0]->name;  // 条件
        string l1 = getL(), l2 = getL();
        emit("if " + cGen(root->child[0]));
        emit(" goto ");
        emit(l1 + "\n");
        emit("goto ");
        emit(l2 + "\n");
        emit(l1 + ":\n");
        cGen(root->child[1]);
        emit(l2 + ":\n");
        cGen(root->sibling);  // * 这句一定要加
    } else if ("Iteration" == root->nodekind) {
        string l1 = getL(), l2 = getL();
        emit(l1 + ":\n");
        emit("if " + cGen(root->child[0]));
        emit(" goto ");
        emit(l2 + "\n");
        cGen(root->child[1]);
        emit(l2 + ":\n");
    } else if ("CompareOp" == root->nodekind) {
        // 比较操作符, 作为
        string reg1 = getR(), reg2 = cGen(root->child[0]), reg3 = cGen(root->child[1]);
        emit(reg1 + " = " + reg2 + " " + root->op + " " + reg3 + "\n");
        return reg1;
    } else if ("PMOp" == root->nodekind || "MDOp" == root->nodekind) {
        string reg1 = getR(), reg2 = cGen(root->child[0]), reg3 = cGen(root->child[1]);
        emit(reg1 + " = " + reg2 + " + " + reg3 + "\n");
        return reg1;
    } else if ("Id" == root->nodekind) {
        if (st_lookup(root->name) != -1) {
            string reg = getR();
            emit("LD " + reg + ", [" + to_string(symtabs[root->name].addr) + "]\n");
            return reg;
        } else {
            error("no such a id !!!");
            return "";
        }
    } else if ("Const" == root->nodekind) {
        string reg = getR();
        emit("LD " + reg + " " + to_string(root->val) + "\n");
        return reg;
    }
    return "";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x500, %rsp            # imm = 0x500
movq %rdi, %rbx
testq %rsi, %rsi
je 0x9629
movq %rsi, %r14
leaq 0x30(%rsi), %r15
leaq 0x3c0(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x2250
movq %r12, %rdi
callq 0xa508
leaq 0x3c0(%rsp), %rdi
callq 0x2358
leaq 0x5d16(%rip), %rdi      # 0xf2b1
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x95dc
movq 0x18(%r14), %rsi
leaq 0x4e0(%rsp), %r15
movq %r15, %rdi
callq 0x954a
movq %r15, %rdi
callq 0x2358
movq 0x20(%r14), %rsi
leaq 0x4c0(%rsp), %r14
movq %r14, %rdi
callq 0x954a
movq %r14, %rdi
jmp 0x9624
leaq 0x5cbb(%rip), %rdi      # 0xf29e
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9650
movq (%r14), %rsi
movq 0x8(%r14), %r14
leaq 0x4a0(%rsp), %r15
movq %r15, %rdi
callq 0x954a
movq %r15, %rdi
callq 0x2358
leaq 0x480(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x954a
movq %r15, %rdi
callq 0x2358
leaq 0x60e5(%rip), %rsi      # 0xf715
leaq 0x40(%rsp), %rdx
movq %rbx, %rdi
callq 0x2efc
movq %rbx, %rax
addq $0x500, %rsp            # imm = 0x500
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5bdb(%rip), %rdi      # 0xf232
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9674
movq 0x20(%r14), %rsi
leaq 0x460(%rsp), %r14
jmp 0x95cf
leaq 0x5c2f(%rip), %rdi      # 0xf2aa
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x986c
movl $0xc0, %esi
addq (%r14), %rsi
leaq 0x3a0(%rsp), %r15
movq %r15, %rdi
callq 0x2250
movq %r15, %rdi
callq 0x821e
movl %eax, %ebp
leaq 0x3a0(%rsp), %rdi
callq 0x2358
cmpl $-0x1, %ebp
je 0x9bce
leaq 0x40(%rsp), %r15
movq %r15, %rdi
callq 0x94e9
leaq 0x5fb3(%rip), %rsi      # 0xf68a
leaq 0x60(%rsp), %rdi
movq %r15, %rdx
callq 0x8177
leaq 0x612c(%rip), %rdx      # 0xf817
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0x7c7c
movl $0xc0, %esi
addq (%r14), %rsi
leaq 0xd289(%rip), %rdi      # 0x16990
callq 0x8636
movl 0x20(%rax), %esi
leaq 0x80(%rsp), %rdi
callq 0x7cbf
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
leaq 0x80(%rsp), %rdx
callq 0xa481
leaq 0x5ca3(%rip), %rdx      # 0xf3db
leaq 0x360(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x7c7c
leaq 0x360(%rsp), %rdi
callq 0xa533
leaq 0x360(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x80(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
movq 0x8(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x954a
leaq 0x5f10(%rip), %rsi      # 0xf6b2
leaq 0xa0(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x8177
leaq 0x5ed3(%rip), %rdx      # 0xf68e
leaq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x7c7c
leaq 0x5eb9(%rip), %rdx      # 0xf690
leaq 0x60(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x7c7c
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xa4e8
leaq 0x5bd9(%rip), %rdx      # 0xf3db
leaq 0x340(%rsp), %rdi
movq %rsp, %rsi
callq 0x7c7c
leaq 0x340(%rsp), %rdi
callq 0xa533
leaq 0x340(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
leaq 0x80(%rsp), %rdi
callq 0x2358
leaq 0xa0(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
jmp 0x9bfc
leaq 0x59ca(%rip), %rdi      # 0xf23d
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9a63
movl $0xc0, %esi
addq (%r14), %rsi
leaq 0x40(%rsp), %rdi
callq 0x2250
leaq 0x20(%rsp), %rdi
callq 0x9488
movq %rsp, %rdi
callq 0x9488
movq (%r14), %rsi
leaq 0x60(%rsp), %rdi
callq 0x954a
leaq 0x5de6(%rip), %rsi      # 0xf6a1
leaq 0x300(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x7c9b
leaq 0x300(%rsp), %rdi
callq 0xa533
leaq 0x300(%rsp), %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
leaq 0x5dad(%rip), %rsi      # 0xf6a5
leaq 0x2e0(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x2efc
leaq 0x2e0(%rsp), %rdi
callq 0xa533
leaq 0x2e0(%rsp), %rdi
callq 0x2358
leaq 0x5ab0(%rip), %rdx      # 0xf3db
leaq 0x2c0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x70e5
leaq 0x2c0(%rsp), %rdi
callq 0xa533
leaq 0x2c0(%rsp), %rdi
callq 0x2358
leaq 0x5d48(%rip), %rsi      # 0xf6a6
leaq 0x2a0(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x2efc
leaq 0x2a0(%rsp), %rdi
callq 0xa533
leaq 0x2a0(%rsp), %rdi
callq 0x2358
leaq 0x5a4a(%rip), %rdx      # 0xf3db
leaq 0x280(%rsp), %rdi
movq %rsp, %rsi
callq 0x70e5
leaq 0x280(%rsp), %rdi
callq 0xa533
leaq 0x280(%rsp), %rdi
callq 0x2358
leaq 0x59a2(%rip), %rdx      # 0xf364
leaq 0x260(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x70e5
leaq 0x260(%rsp), %rdi
callq 0xa533
leaq 0x260(%rsp), %rdi
callq 0x2358
movq 0x8(%r14), %rsi
leaq 0x420(%rsp), %rdi
callq 0x954a
leaq 0x420(%rsp), %rdi
callq 0x2358
leaq 0x5951(%rip), %rdx      # 0xf364
leaq 0x240(%rsp), %rdi
movq %rsp, %rsi
callq 0x70e5
leaq 0x240(%rsp), %rdi
callq 0xa533
leaq 0x240(%rsp), %rdi
callq 0x2358
movq 0x20(%r14), %rsi
leaq 0x400(%rsp), %rdi
callq 0x954a
leaq 0x400(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
jmp 0x9bb5
leaq 0x57dd(%rip), %rdi      # 0xf247
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9c12
leaq 0x40(%rsp), %rdi
callq 0x9488
leaq 0x20(%rsp), %rdi
callq 0x9488
leaq 0x58cf(%rip), %rdx      # 0xf364
leaq 0x220(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x70e5
leaq 0x220(%rsp), %rdi
callq 0xa533
leaq 0x220(%rsp), %rdi
callq 0x2358
movq (%r14), %rsi
movq %rsp, %rdi
callq 0x954a
leaq 0x5bce(%rip), %rsi      # 0xf6a1
leaq 0x200(%rsp), %rdi
movq %rsp, %rdx
callq 0x7c9b
leaq 0x200(%rsp), %rdi
callq 0xa533
leaq 0x200(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
callq 0x2358
leaq 0x5b99(%rip), %rsi      # 0xf6a5
leaq 0x1e0(%rsp), %rdi
movq %rsp, %rdx
callq 0x2efc
leaq 0x1e0(%rsp), %rdi
callq 0xa533
leaq 0x1e0(%rsp), %rdi
callq 0x2358
leaq 0x589e(%rip), %rdx      # 0xf3db
leaq 0x1c0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x70e5
leaq 0x1c0(%rsp), %rdi
callq 0xa533
leaq 0x1c0(%rsp), %rdi
callq 0x2358
movq 0x8(%r14), %rsi
leaq 0x3e0(%rsp), %rdi
callq 0x954a
leaq 0x3e0(%rsp), %rdi
callq 0x2358
leaq 0x57d6(%rip), %rdx      # 0xf364
leaq 0x1a0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x70e5
leaq 0x1a0(%rsp), %rdi
callq 0xa533
leaq 0x1a0(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
jmp 0x9624
leaq 0x5abf(%rip), %rsi      # 0xf694
leaq 0x320(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x2efc
leaq 0x320(%rsp), %rdi
callq 0x85ae
leaq 0x320(%rsp), %rdi
callq 0x2358
movq 0x20(%r14), %rsi
leaq 0x440(%rsp), %r14
jmp 0x95cf
leaq 0x54f4(%rip), %rdi      # 0xf10d
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9d5a
movq %rbx, %rdi
callq 0x94e9
movq (%r14), %rsi
leaq 0x40(%rsp), %rdi
callq 0x954a
movq 0x8(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x954a
leaq 0x5a3d(%rip), %rdx      # 0xf690
leaq 0x140(%rsp), %rdi
movq %rbx, %rsi
callq 0x70e5
leaq 0x160(%rsp), %rdi
leaq 0x140(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0xa4e8
leaq 0x56c9(%rip), %rdx      # 0xf34d
leaq 0xa0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x7c7c
addq $0x98, %r14
leaq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
movq %r14, %rdx
callq 0xa4e8
leaq 0x568e(%rip), %rdx      # 0xf34d
leaq 0x60(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x7c7c
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xa4e8
leaq 0x56f1(%rip), %rdx      # 0xf3db
leaq 0x180(%rsp), %rdi
movq %rsp, %rsi
callq 0x7c7c
leaq 0x180(%rsp), %rdi
callq 0xa533
leaq 0x180(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
leaq 0x80(%rsp), %rdi
callq 0x2358
leaq 0xa0(%rsp), %rdi
callq 0x2358
leaq 0x160(%rsp), %rdi
callq 0x2358
leaq 0x140(%rsp), %rdi
jmp 0x9e5b
leaq 0x550f(%rip), %rdi      # 0xf270
movq %r15, %rsi
callq 0xa46b
testb %al, %al
jne 0x9d84
leaq 0x54f7(%rip), %rdi      # 0xf26b
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9e79
movq %rbx, %rdi
callq 0x94e9
movq (%r14), %rsi
leaq 0x40(%rsp), %rdi
callq 0x954a
movq 0x8(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x954a
leaq 0x58e2(%rip), %rdx      # 0xf690
leaq 0xa0(%rsp), %rdi
movq %rbx, %rsi
callq 0x70e5
leaq 0x80(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0xa4e8
leaq 0x58cd(%rip), %rdx      # 0xf6ac
leaq 0x60(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x7c7c
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xa4e8
leaq 0x55d1(%rip), %rdx      # 0xf3db
leaq 0x120(%rsp), %rdi
movq %rsp, %rsi
callq 0x7c7c
leaq 0x120(%rsp), %rdi
callq 0xa533
leaq 0x120(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
leaq 0x80(%rsp), %rdi
callq 0x2358
leaq 0xa0(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
callq 0x2358
jmp 0x963d
leaq 0x53a8(%rip), %rdi      # 0xf228
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9f5b
addq $0xc0, %r14
leaq 0x380(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x2250
movq %r15, %rdi
callq 0x821e
movl %eax, %ebp
leaq 0x380(%rsp), %rdi
callq 0x2358
cmpl $-0x1, %ebp
je 0xa01e
movq %rbx, %rdi
callq 0x94e9
leaq 0x57b1(%rip), %rsi      # 0xf68a
movq %rsp, %rdi
movq %rbx, %rdx
callq 0x8177
leaq 0x57c5(%rip), %rdx      # 0xf6b0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x7c7c
leaq 0xca91(%rip), %rdi      # 0x16990
movq %r14, %rsi
callq 0x8636
movl 0x20(%rax), %esi
leaq 0x60(%rsp), %rdi
callq 0x7cbf
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0xa481
leaq 0x5424(%rip), %rdx      # 0xf353
leaq 0x100(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x7c7c
leaq 0x100(%rsp), %rdi
callq 0xa533
leaq 0x100(%rsp), %rdi
jmp 0x9ff3
leaq 0x5303(%rip), %rdi      # 0xf265
movq %r15, %rsi
callq 0xa46b
testb %al, %al
je 0x9629
movq %rbx, %rdi
callq 0x94e9
leaq 0x5709(%rip), %rsi      # 0xf68a
movq %rsp, %rdi
movq %rbx, %rdx
callq 0x8177
leaq 0x53ba(%rip), %rdx      # 0xf34d
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x7c7c
movl 0xb8(%r14), %esi
leaq 0x60(%rsp), %rdi
callq 0x7cbf
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0xa481
leaq 0x540f(%rip), %rdx      # 0xf3db
leaq 0xc0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x7c7c
leaq 0xc0(%rsp), %rdi
callq 0xa533
leaq 0xc0(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
jmp 0x9e6f
leaq 0x568f(%rip), %rsi      # 0xf6b4
leaq 0xe0(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x2efc
leaq 0xe0(%rsp), %rdi
callq 0x85ae
leaq 0xe0(%rsp), %rdi
jmp 0x9624
movq %rax, %r14
leaq 0xe0(%rsp), %rdi
jmp 0xa3ba
jmp 0xa24e
movq %rax, %r14
leaq 0xc0(%rsp), %rdi
jmp 0xa08b
jmp 0xa092
jmp 0xa0a1
jmp 0xa0ca
jmp 0xa0b0
jmp 0xa1d5
movq %rax, %r14
leaq 0x100(%rsp), %rdi
callq 0x2358
jmp 0xa095
movq %rax, %r14
leaq 0x40(%rsp), %rdi
callq 0x2358
jmp 0xa0a4
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x2358
jmp 0xa0cd
movq %rax, %r14
jmp 0xa0d7
jmp 0xa1d5
movq %rax, %r14
leaq 0x380(%rsp), %rdi
jmp 0xa3ba
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x2358
movq %rsp, %rdi
jmp 0xa1b4
movq %rax, %r14
leaq 0x120(%rsp), %rdi
callq 0x2358
jmp 0xa0f4
movq %rax, %r14
movq %rsp, %rdi
callq 0x2358
jmp 0xa101
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x2358
jmp 0xa110
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x2358
jmp 0xa122
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
jmp 0xa1a0
jmp 0xa1cb
jmp 0xa1d0
jmp 0xa1d5
movq %rax, %r14
leaq 0x180(%rsp), %rdi
callq 0x2358
jmp 0xa150
movq %rax, %r14
movq %rsp, %rdi
callq 0x2358
jmp 0xa15d
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x2358
jmp 0xa16c
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x2358
jmp 0xa17e
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0x2358
leaq 0x160(%rsp), %rdi
callq 0x2358
leaq 0x140(%rsp), %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
callq 0x2358
movq %rbx, %rdi
jmp 0xa3ba
movq %rax, %r14
jmp 0xa18b
movq %rax, %r14
jmp 0xa198
movq %rax, %r14
jmp 0xa1a5
movq %rax, %r14
jmp 0xa1af
movq %rax, %r14
jmp 0xa1b9
movq %rax, %r14
leaq 0x1a0(%rsp), %rdi
jmp 0xa399
movq %rax, %r14
leaq 0x1c0(%rsp), %rdi
jmp 0xa399
movq %rax, %r14
leaq 0x1e0(%rsp), %rdi
jmp 0xa399
jmp 0xa36f
movq %rax, %r14
leaq 0x200(%rsp), %rdi
jmp 0xa2c8
jmp 0xa393
jmp 0xa36f
movq %rax, %r14
leaq 0x220(%rsp), %rdi
jmp 0xa399
jmp 0xa36a
movq %rax, %r14
leaq 0x320(%rsp), %rdi
jmp 0xa3ba
movq %rax, %r14
jmp 0xa3bf
movq %rax, %r14
leaq 0x240(%rsp), %rdi
jmp 0xa2c8
movq %rax, %r14
leaq 0x260(%rsp), %rdi
jmp 0xa2c8
movq %rax, %r14
leaq 0x280(%rsp), %rdi
jmp 0xa2c8
movq %rax, %r14
leaq 0x2a0(%rsp), %rdi
jmp 0xa2c8
jmp 0xa393
movq %rax, %r14
leaq 0x2c0(%rsp), %rdi
jmp 0xa2c8
movq %rax, %r14
leaq 0x2e0(%rsp), %rdi
jmp 0xa2c8
jmp 0xa393
movq %rax, %r14
leaq 0x300(%rsp), %rdi
callq 0x2358
jmp 0xa2c3
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x2358
jmp 0xa396
jmp 0xa393
jmp 0xa36f
jmp 0xa36a
movq %rax, %r14
leaq 0x340(%rsp), %rdi
callq 0x2358
jmp 0xa2f6
movq %rax, %r14
movq %rsp, %rdi
callq 0x2358
jmp 0xa303
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x2358
jmp 0xa312
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x2358
jmp 0xa324
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
jmp 0xa399
jmp 0xa36f
jmp 0xa36a
movq %rax, %r14
leaq 0x360(%rsp), %rdi
callq 0x2358
jmp 0xa347
movq %rax, %r14
leaq 0x20(%rsp), %rdi
callq 0x2358
jmp 0xa356
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x2358
jmp 0xa384
movq %rax, %r14
jmp 0xa38c
movq %rax, %r14
jmp 0xa3a8
movq %rax, %r14
jmp 0xa39e
movq %rax, %r14
leaq 0x3a0(%rsp), %rdi
jmp 0xa3ba
movq %rax, %r14
movq %rsp, %rdi
callq 0x2358
leaq 0x60(%rsp), %rdi
jmp 0xa3a3
movq %rax, %r14
movq %rsp, %rdi
callq 0x2358
leaq 0x20(%rsp), %rdi
callq 0x2358
leaq 0x40(%rsp), %rdi
jmp 0xa3ba
movq %rax, %r14
leaq 0x3c0(%rsp), %rdi
callq 0x2358
movq %r14, %rdi
callq 0x2300