// File: /workspace/github_cpp_makefile_star2_O1/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 0x376dd(%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 0x32f92
leaq 0x3767b(%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 0x3edeb
movq %rdx, -0x4b0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4a0(%rbp)
jmp 0x3edf3
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 0x37612(%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 0x3ee41
movq %rdx, -0x50(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x40(%rbp)
jmp 0x3ee47
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 0x3ee6f
callq 0x2e360
movq -0x7a0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3ee80
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 0x32d96
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 0x40554
leaq -0x308(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3ef0d
callq 0x2e360
movq -0x1d8(%rbp), %rdi
testq %rdi, %rdi
je 0x3ef1e
callq 0x2e360
leaq -0x1c0(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq -0x288(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x298(%rbp), %rdi
callq 0x32f92
leaq -0x1c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x44ff5
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ef7a
callq 0x2e360
movq -0x1c0(%rbp), %rdi
testq %rdi, %rdi
je 0x3ef8b
callq 0x2e360
leaq -0x1a8(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f494(%rip), %edx     # 0x8e434
movl 0x4f492(%rip), %ecx     # 0x8e438
leaq -0x1a8(%rbp), %rdi
leaq -0xa90(%rbp), %rsi
callq 0x4e8d3
movq -0x1a8(%rbp), %rdi
testq %rdi, %rdi
je 0x3efca
callq 0x2e360
leaq -0x190(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f455(%rip), %edx     # 0x8e434
movl 0x4f453(%rip), %ecx     # 0x8e438
leaq -0x190(%rbp), %rdi
leaq -0x7a0(%rbp), %rsi
callq 0x4e72b
movq -0x190(%rbp), %rdi
testq %rdi, %rdi
je 0x3f009
callq 0x2e360
leaq -0x178(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f41d(%rip), %r15d    # 0x8e43c
movl 0x4f40f(%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 0x32f92
subq $0x8, %rsp
leaq 0x4f94b(%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 0x4c2ad
addq $0x20, %rsp
movq -0x2f8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f093
callq 0x2e360
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x3f0a4
callq 0x2e360
leaq -0x160(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f386(%rip), %r15d    # 0x8e440
movl 0x4f378(%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 0x32f92
subq $0x8, %rsp
leaq 0x4f8b0(%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 0x4c2ad
addq $0x20, %rsp
movq -0x2d8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f12e
callq 0x2e360
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
movq -0x58(%rbp), %rbx
je 0x3f143
callq 0x2e360
movl 0x4f2eb(%rip), %edx     # 0x8e434
movl 0x4f2e9(%rip), %ecx     # 0x8e438
leaq -0x628(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x44ce1
movl 0x4f2cc(%rip), %esi     # 0x8e434
movl 0x4f2ca(%rip), %edx     # 0x8e438
leaq -0x628(%rbp), %rdi
callq 0x44eae
leaq -0x148(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq 0x4f7e0(%rip), %rsi     # 0x8e970
leaq -0x130(%rbp), %rdi
callq 0x3facc
leaq -0x268(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x278(%rbp), %rdi
callq 0x32f92
leaq -0x148(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x130(%rbp), %rcx
leaq -0x278(%rbp), %r8
movl $0x1, %r9d
callq 0x41935
movq -0x278(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f1fd
callq 0x2e360
leaq -0x130(%rbp), %rdi
callq 0x3f9d0
movq -0x148(%rbp), %rdi
testq %rdi, %rdi
je 0x3f21a
callq 0x2e360
leaq -0x118(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq 0x4f758(%rip), %rsi     # 0x8e988
leaq -0x100(%rbp), %rdi
callq 0x3facc
leaq -0x248(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rdi
callq 0x32f92
leaq -0x118(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x100(%rbp), %rcx
leaq -0x258(%rbp), %r8
xorl %r9d, %r9d
callq 0x41935
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f29a
callq 0x2e360
leaq -0x100(%rbp), %rdi
callq 0x3f9d0
movq -0x118(%rbp), %rdi
testq %rdi, %rdi
je 0x3f2b7
callq 0x2e360
leaq -0xe8(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f167(%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 0x32f92
leaq -0xe8(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x238(%rbp), %rcx
movl %r15d, %edx
movl $0x1, %r8d
callq 0x42361
movq -0x238(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f324
callq 0x2e360
movq -0xe8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f335
callq 0x2e360
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4f0ed(%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 0x32f92
leaq -0xd0(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x218(%rbp), %rcx
movl %r15d, %edx
xorl %r8d, %r8d
callq 0x42361
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f39f
callq 0x2e360
movq -0xd0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f3b0
callq 0x2e360
leaq -0xb8(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq -0x1e8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1f8(%rbp), %rdi
callq 0x32f92
movl 0x4f04d(%rip), %ecx     # 0x8e434
movl 0x4f04a(%rip), %r8d     # 0x8e438
leaq -0xb8(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
leaq -0x628(%rbp), %r9
callq 0x48174
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f420
callq 0x2e360
movq -0xb8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f431
callq 0x2e360
leaq -0xa0(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
movl 0x4efee(%rip), %edx     # 0x8e434
movl 0x4efec(%rip), %ecx     # 0x8e438
leaq -0xa0(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x4f983
movq -0xa0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f470
callq 0x2e360
leaq -0x4b0(%rbp), %rdi
callq 0x41830
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f494
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f4a0
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x40418
leaq -0x88(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq -0x88(%rbp), %rdi
leaq -0x7a0(%rbp), %rsi
leaq -0xa90(%rbp), %rdx
callq 0x40910
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f4e1
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f4ed
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x40418
movq -0x88(%rbp), %rdi
testq %rdi, %rdi
je 0x3f4fe
callq 0x2e360
leaq -0x70(%rbp), %rdi
movq %r14, %rsi
callq 0x32d96
leaq -0x70(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x918(%rbp), %rdx
callq 0x40ce9
movq %rax, -0x30(%rbp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3f539
movq %rax, (%rsi)
addq $0x8, 0x8(%rbx)
jmp 0x3f545
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
callq 0x40418
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0x3f553
callq 0x2e360
movq 0x4ea4e(%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 0x3f5f3
callq 0x2e360
leaq -0x2a8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f608
callq 0x2e360
leaq -0x328(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f61d
callq 0x2e360
movq %rbx, %rax
addq $0xa68, %rsp            # imm = 0xA68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3f8dc
jmp 0x3f8dc
movq %rax, %r14
movq -0xa0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x1f8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f66d
callq 0x2e360
jmp 0x3f66d
movq %rax, %r14
movq -0xb8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f69b
callq 0x2e360
jmp 0x3f69b
movq %rax, %r14
movq -0xd0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x238(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f6c9
callq 0x2e360
jmp 0x3f6c9
movq %rax, %r14
movq -0xe8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f6f7
callq 0x2e360
jmp 0x3f6f7
movq %rax, %r14
leaq -0x100(%rbp), %rdi
callq 0x3f9d0
jmp 0x3f708
movq %rax, %r14
movq -0x118(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x278(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f736
callq 0x2e360
jmp 0x3f736
movq %rax, %r14
leaq -0x130(%rbp), %rdi
callq 0x3f9d0
jmp 0x3f747
movq %rax, %r14
movq -0x148(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x2d8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f775
callq 0x2e360
jmp 0x3f775
movq %rax, %r14
movq -0x160(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x2f8(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f7a3
callq 0x2e360
jmp 0x3f7a3
movq %rax, %r14
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x190(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x1a8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f801
callq 0x2e360
jmp 0x3f801
movq %rax, %r14
movq -0x1c0(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
leaq -0x308(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f833
callq 0x2e360
jmp 0x3f833
movq %rax, %r14
movq -0x1d8(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
jmp 0x3f8fe
movq %rax, %r14
jmp 0x3f91d
movq %rax, %r14
jmp 0x3f93c
movq %rax, %r14
jmp 0x3f95b
movq %rax, %r14
jmp 0x3f97a
movq %rax, %r14
movq -0x4b0(%rbp), %rdi
cmpq %r13, %rdi
je 0x3f889
callq 0x2e360
jmp 0x3f889
movq %rax, %r14
movq -0x7a0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3f98c
jmp 0x3f987
movq %rax, %r14
jmp 0x3f98c
movq %rax, %r14
jmp 0x3f9a1
movq %rax, %r14
jmp 0x3f9b6
movq %rax, %r14
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
jmp 0x3f8d3
movq %rax, %r14
movq -0x88(%rbp), %rdi
testq %rdi, %rdi
je 0x3f8df
callq 0x2e360
jmp 0x3f8df
jmp 0x3f8dc
movq %rax, %r14
movq 0x4e6c2(%rip), %rsi     # 0x8dfa8
leaq -0x918(%rbp), %rdi
callq 0x2e230
leaq -0x8a8(%rbp), %rdi
callq 0x2e150
movq 0x4e6a3(%rip), %rsi     # 0x8dfa8
leaq -0x628(%rbp), %rdi
callq 0x2e230
leaq -0x5b8(%rbp), %rdi
callq 0x2e150
movq 0x4e684(%rip), %rsi     # 0x8dfa8
leaq -0xa90(%rbp), %rdi
callq 0x2e230
leaq -0xa20(%rbp), %rdi
callq 0x2e150
movq 0x4e665(%rip), %rsi     # 0x8dfa8
leaq -0x7a0(%rbp), %rdi
callq 0x2e230
leaq -0x730(%rbp), %rdi
callq 0x2e150
movq 0x4e646(%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 0x3f98c
callq 0x2e360
leaq -0x2a8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f9a1
callq 0x2e360
leaq -0x328(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3f9b6
callq 0x2e360
movq -0x58(%rbp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x3f9c7
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
nop