// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/compile/compile.cpp
// Function: compileCCode(std::vector<AstNode*, std::allocator<AstNode*>>, char*)
vector<UnanchoredNode *> compileCCode(std::vector<AstNode*> nodeArray, char * outFnBase) {
	vector<UnanchoredNode *> ret_vec = vector<UnanchoredNode *>(); 
    
    string out_fn_base_str = string(outFnBase);
    string base_fn = out_fn_base_str.substr(out_fn_base_str.find_last_of("/\\") + 1);
    PRINT_VERBOSE("Output filename base: %s\n", base_fn.c_str());    
    string prefix_str = "p4_pd_" + string(base_fn) + "_mantis_";

    ostringstream oss_preprocessor;
    ostringstream oss_mbl_init;
    ostringstream oss_init_end;
    ostringstream oss_reaction_mirror;
    ostringstream oss_reaction_update;

    extractReactionMacro(nodeArray, oss_preprocessor, string(outFnBase));

    generateMacroNonMblTable(nodeArray, oss_preprocessor, prefix_str);
 
    generatePrologueEnd(nodeArray, oss_init_end, ing_iso_opt, egr_iso_opt);

    generateHdlPool(nodeArray, oss_mbl_init, ing_iso_opt, egr_iso_opt);

    generateMacroInitMblsForIng(nodeArray, &mblUsages, oss_mbl_init, oss_reaction_mirror, oss_preprocessor, num_init_mbls_ing, ing_iso_opt, prefix_str, true);
    generateMacroInitMblsForIng(nodeArray, &mblUsages, oss_mbl_init, oss_reaction_mirror, oss_preprocessor, num_init_mbls_egr, egr_iso_opt, prefix_str, false);

    generateMacroXorVersionBits(oss_reaction_mirror, oss_preprocessor, ing_iso_opt, egr_iso_opt);

    generateDialogueArgStart(oss_reaction_mirror, ing_iso_opt, egr_iso_opt);

    mirrorFieldArg(nodeArray, oss_reaction_mirror, oss_preprocessor, global_ing_bins, prefix_str, true);
    mirrorFieldArg(nodeArray, oss_reaction_mirror, oss_preprocessor, global_egr_bins, prefix_str, false);

    mirrorRegisterArgForIng(nodeArray, oss_reaction_mirror, ing_iso_opt, prefix_str, true);
    mirrorRegisterArgForIng(nodeArray, oss_reaction_mirror, egr_iso_opt, prefix_str, false);

    generateMacroMblTable(nodeArray, oss_preprocessor, prefix_str, ing_iso_opt, egr_iso_opt, oss_reaction_mirror);

    generateDialogueEnd(nodeArray, oss_reaction_update, ing_iso_opt, egr_iso_opt);

    ret_vec.push_back(generateMacroNode(oss_preprocessor));
    ret_vec.push_back(generatePrologueNode(nodeArray, oss_mbl_init, oss_init_end));
    ret_vec.push_back(generateDialogueNode(nodeArray, oss_reaction_mirror, oss_reaction_update));    

	return ret_vec;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa68, %rsp            # imm = 0xA68
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, -0x58(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq -0x338(%rbp), %rdi
leaq -0x4b0(%rbp), %rdx
movq %r15, %rsi
callq 0x2e190
leaq 0x37b25(%rip), %rsi     # 0x76420
leaq -0x338(%rbp), %r12
movl $0x2, %ecx
movq %r12, %rdi
movq $-0x1, %rdx
callq 0x2e810
leaq 0x1(%rax), %rdx
leaq -0x2b8(%rbp), %rdi
movq %r12, %rsi
movq $-0x1, %rcx
callq 0x2e3d0
leaq -0x790(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x2b8(%rbp), %rsi
movq -0x2b0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x7a0(%rbp), %rdi
callq 0x32cbc
leaq 0x37ac3(%rip), %rcx     # 0x76423
leaq -0x7a0(%rbp), %rdi
movl $0x6, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2e420
leaq -0x4a0(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3e9a3
movq %rdx, -0x4b0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4a0(%rbp)
jmp 0x3e9ab
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x4b0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x37a5a(%rip), %rsi     # 0x7642a
callq 0x2e7e0
leaq -0x40(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3e9f9
movq %rdx, -0x50(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x40(%rbp)
jmp 0x3e9ff
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x48(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x4b0(%rbp), %rdi
cmpq %r13, %rdi
je 0x3ea27
callq 0x2e360
movq -0x7a0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3ea38
callq 0x2e360
leaq -0x4b0(%rbp), %rdi
callq 0x2e550
leaq -0x7a0(%rbp), %rdi
callq 0x2e550
leaq -0xa90(%rbp), %rdi
callq 0x2e550
leaq -0x628(%rbp), %rdi
callq 0x2e550
leaq -0x918(%rbp), %rdi
callq 0x2e550
leaq -0x1d8(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq -0x318(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %r15, %rsi
callq 0x2e190
leaq -0x1d8(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x318(%rbp), %rdx
callq 0x40108
leaq -0x308(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3eac5
callq 0x2e360
movq -0x1d8(%rbp), %rdi
testq %rdi, %rdi
je 0x3ead6
callq 0x2e360
leaq -0x1c0(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq -0x288(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x298(%rbp), %rdi
callq 0x32cbc
leaq -0x1c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x44b3b
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x3eb32
callq 0x2e360
movq -0x1c0(%rbp), %rdi
testq %rdi, %rdi
je 0x3eb43
callq 0x2e360
leaq -0x1a8(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f8dc(%rip), %edx     # 0x8e434
movl 0x4f8da(%rip), %ecx     # 0x8e438
leaq -0x1a8(%rbp), %rdi
leaq -0xa90(%rbp), %rsi
callq 0x4e334
movq -0x1a8(%rbp), %rdi
testq %rdi, %rdi
je 0x3eb82
callq 0x2e360
leaq -0x190(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f89d(%rip), %edx     # 0x8e434
movl 0x4f89b(%rip), %ecx     # 0x8e438
leaq -0x190(%rbp), %rdi
leaq -0x7a0(%rbp), %rsi
callq 0x4e18c
movq -0x190(%rbp), %rdi
testq %rdi, %rdi
je 0x3ebc1
callq 0x2e360
leaq -0x178(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f865(%rip), %r15d    # 0x8e43c
movl 0x4f857(%rip), %ebx     # 0x8e434
leaq -0x2e8(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2f8(%rbp), %r12
movq %r12, %rdi
callq 0x32cbc
subq $0x8, %rsp
leaq 0x4fd93(%rip), %rsi     # 0x8e9a0
leaq -0x178(%rbp), %rdi
leaq -0x7a0(%rbp), %rdx
leaq -0x628(%rbp), %rcx
leaq -0x4b0(%rbp), %r8
movl %r15d, %r9d
pushq $0x1
pushq %r12
pushq %rbx
callq 0x4bd16
addq $0x20, %rsp
movq -0x2f8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3ec4b
callq 0x2e360
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x3ec5c
callq 0x2e360
leaq -0x160(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f7ce(%rip), %r15d    # 0x8e440
movl 0x4f7c0(%rip), %ebx     # 0x8e438
leaq -0x2c8(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2d8(%rbp), %r12
movq %r12, %rdi
callq 0x32cbc
subq $0x8, %rsp
leaq 0x4fcf8(%rip), %rsi     # 0x8e9a0
leaq -0x160(%rbp), %rdi
leaq -0x7a0(%rbp), %rdx
leaq -0x628(%rbp), %rcx
leaq -0x4b0(%rbp), %r8
movl %r15d, %r9d
pushq $0x0
pushq %r12
pushq %rbx
callq 0x4bd16
addq $0x20, %rsp
movq -0x2d8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3ece6
callq 0x2e360
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
movq -0x58(%rbp), %rbx
je 0x3ecfb
callq 0x2e360
movl 0x4f733(%rip), %edx     # 0x8e434
movl 0x4f731(%rip), %ecx     # 0x8e438
leaq -0x628(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x44827
movl 0x4f714(%rip), %esi     # 0x8e434
movl 0x4f712(%rip), %edx     # 0x8e438
leaq -0x628(%rbp), %rdi
callq 0x449f4
leaq -0x148(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq 0x4fc28(%rip), %rsi     # 0x8e970
leaq -0x130(%rbp), %rdi
callq 0x3f68e
leaq -0x268(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x278(%rbp), %rdi
callq 0x32cbc
leaq -0x148(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x130(%rbp), %rcx
leaq -0x278(%rbp), %r8
movl $0x1, %r9d
callq 0x41488
movq -0x278(%rbp), %rdi
cmpq %r15, %rdi
je 0x3edb5
callq 0x2e360
leaq -0x130(%rbp), %rdi
callq 0x3f588
movq -0x148(%rbp), %rdi
testq %rdi, %rdi
je 0x3edd2
callq 0x2e360
leaq -0x118(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq 0x4fba0(%rip), %rsi     # 0x8e988
leaq -0x100(%rbp), %rdi
callq 0x3f68e
leaq -0x248(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rdi
callq 0x32cbc
leaq -0x118(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x100(%rbp), %rcx
leaq -0x258(%rbp), %r8
xorl %r9d, %r9d
callq 0x41488
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ee52
callq 0x2e360
leaq -0x100(%rbp), %rdi
callq 0x3f588
movq -0x118(%rbp), %rdi
testq %rdi, %rdi
je 0x3ee6f
callq 0x2e360
leaq -0xe8(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f5af(%rip), %r15d    # 0x8e434
leaq -0x228(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x238(%rbp), %rdi
callq 0x32cbc
leaq -0xe8(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x238(%rbp), %rcx
movl %r15d, %edx
movl $0x1, %r8d
callq 0x41ec1
movq -0x238(%rbp), %rdi
cmpq %r12, %rdi
je 0x3eedc
callq 0x2e360
movq -0xe8(%rbp), %rdi
testq %rdi, %rdi
je 0x3eeed
callq 0x2e360
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f535(%rip), %r15d    # 0x8e438
leaq -0x208(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x218(%rbp), %rdi
callq 0x32cbc
leaq -0xd0(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movl %r15d, %edx
xorl %r8d, %r8d
callq 0x41ec1
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0x3ef57
callq 0x2e360
movq -0xd0(%rbp), %rdi
testq %rdi, %rdi
je 0x3ef68
callq 0x2e360
leaq -0xb8(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq -0x1e8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1f8(%rbp), %rdi
callq 0x32cbc
movl 0x4f495(%rip), %ecx     # 0x8e434
movl 0x4f492(%rip), %r8d     # 0x8e438
leaq -0xb8(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
leaq -0x628(%rbp), %r9
callq 0x47c95
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3efd8
callq 0x2e360
movq -0xb8(%rbp), %rdi
testq %rdi, %rdi
je 0x3efe9
callq 0x2e360
leaq -0xa0(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
movl 0x4f436(%rip), %edx     # 0x8e434
movl 0x4f434(%rip), %ecx     # 0x8e438
leaq -0xa0(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x4f3e4
movq -0xa0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f028
callq 0x2e360
leaq -0x4b0(%rbp), %rdi
callq 0x413a2
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f04c
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f058
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x3ffce
leaq -0x88(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq -0x88(%rbp), %rdi
leaq -0x7a0(%rbp), %rsi
leaq -0xa90(%rbp), %rdx
callq 0x404c4
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f099
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f0a5
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x3ffce
movq -0x88(%rbp), %rdi
testq %rdi, %rdi
je 0x3f0b6
callq 0x2e360
leaq -0x70(%rbp), %rdi
movq %r14, %rsi
callq 0x32ac0
leaq -0x70(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x918(%rbp), %rdx
callq 0x40892
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f0f1
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f0fd
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x3ffce
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0x3f10b
callq 0x2e360
movq 0x4ee96(%rip), %r14     # 0x8dfa8
leaq -0x918(%rbp), %rdi
movq %r14, %rsi
callq 0x2e230
leaq -0x8a8(%rbp), %rdi
callq 0x2e150
leaq -0x628(%rbp), %rdi
movq %r14, %rsi
callq 0x2e230
leaq -0x5b8(%rbp), %rdi
callq 0x2e150
leaq -0xa90(%rbp), %rdi
movq %r14, %rsi
callq 0x2e230
leaq -0xa20(%rbp), %rdi
callq 0x2e150
leaq -0x7a0(%rbp), %rdi
movq %r14, %rsi
callq 0x2e230
leaq -0x730(%rbp), %rdi
callq 0x2e150
leaq -0x4b0(%rbp), %rdi
movq %r14, %rsi
callq 0x2e230
leaq -0x440(%rbp), %rdi
callq 0x2e150
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3f1ab
callq 0x2e360
leaq -0x2a8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f1c0
callq 0x2e360
leaq -0x328(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f1d5
callq 0x2e360
movq %rbx, %rax
addq $0xa68, %rsp            # imm = 0xA68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3f494
jmp 0x3f494
movq %rax, %r14
movq -0xa0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f225
callq 0x2e360
jmp 0x3f225
movq %rax, %r14
movq -0xb8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f253
callq 0x2e360
jmp 0x3f253
movq %rax, %r14
movq -0xd0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x238(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f281
callq 0x2e360
jmp 0x3f281
movq %rax, %r14
movq -0xe8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f2af
callq 0x2e360
jmp 0x3f2af
movq %rax, %r14
leaq -0x100(%rbp), %rdi
callq 0x3f588
jmp 0x3f2c0
movq %rax, %r14
movq -0x118(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x278(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f2ee
callq 0x2e360
jmp 0x3f2ee
movq %rax, %r14
leaq -0x130(%rbp), %rdi
callq 0x3f588
jmp 0x3f2ff
movq %rax, %r14
movq -0x148(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x2d8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f32d
callq 0x2e360
jmp 0x3f32d
movq %rax, %r14
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x2f8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f35b
callq 0x2e360
jmp 0x3f35b
movq %rax, %r14
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x190(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x1a8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f3b9
callq 0x2e360
jmp 0x3f3b9
movq %rax, %r14
movq -0x1c0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
leaq -0x308(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f3eb
callq 0x2e360
jmp 0x3f3eb
movq %rax, %r14
movq -0x1d8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
jmp 0x3f4b6
movq %rax, %r14
jmp 0x3f4d5
movq %rax, %r14
jmp 0x3f4f4
movq %rax, %r14
jmp 0x3f513
movq %rax, %r14
jmp 0x3f532
movq %rax, %r14
movq -0x4b0(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f441
callq 0x2e360
jmp 0x3f441
movq %rax, %r14
movq -0x7a0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f544
jmp 0x3f53f
movq %rax, %r14
jmp 0x3f544
movq %rax, %r14
jmp 0x3f559
movq %rax, %r14
jmp 0x3f56e
movq %rax, %r14
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
jmp 0x3f48b
movq %rax, %r14
movq -0x88(%rbp), %rdi
testq %rdi, %rdi
je 0x3f497
callq 0x2e360
jmp 0x3f497
jmp 0x3f494
movq %rax, %r14
movq 0x4eb0a(%rip), %rsi     # 0x8dfa8
leaq -0x918(%rbp), %rdi
callq 0x2e230
leaq -0x8a8(%rbp), %rdi
callq 0x2e150
movq 0x4eaeb(%rip), %rsi     # 0x8dfa8
leaq -0x628(%rbp), %rdi
callq 0x2e230
leaq -0x5b8(%rbp), %rdi
callq 0x2e150
movq 0x4eacc(%rip), %rsi     # 0x8dfa8
leaq -0xa90(%rbp), %rdi
callq 0x2e230
leaq -0xa20(%rbp), %rdi
callq 0x2e150
movq 0x4eaad(%rip), %rsi     # 0x8dfa8
leaq -0x7a0(%rbp), %rdi
callq 0x2e230
leaq -0x730(%rbp), %rdi
callq 0x2e150
movq 0x4ea8e(%rip), %rsi     # 0x8dfa8
leaq -0x4b0(%rbp), %rdi
callq 0x2e230
leaq -0x440(%rbp), %rdi
callq 0x2e150
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3f544
callq 0x2e360
leaq -0x2a8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f559
callq 0x2e360
leaq -0x328(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f56e
callq 0x2e360
movq -0x58(%rbp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x3f57f
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
nop