// File: 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
subq $0xb80, %rsp            # imm = 0xB80
movq %rsi, -0xb18(%rbp)
movq %rdi, -0xb10(%rbp)
movq %rdi, %rax
movq %rax, -0xb08(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
callq 0xccc10
movq -0x18(%rbp), %rax
movq %rax, -0xb00(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0xaf8(%rbp)
callq 0xaaa70
movq -0xb00(%rbp), %rsi
movq -0xaf8(%rbp), %rdx
leaq -0x40(%rbp), %rdi
callq 0xaa7d0
jmp 0xcbb5a
leaq -0x41(%rbp), %rdi
callq 0xaa5f0
leaq 0x6e8ee(%rip), %rsi     # 0x13a458
leaq -0x40(%rbp), %rdi
movq %rdi, -0xb28(%rbp)
movq $-0x1, %rdx
movq %rdx, -0xb20(%rbp)
callq 0xaa4f0
movq -0xb28(%rbp), %rsi
movq -0xb20(%rbp), %rcx
movq %rax, %rdx
incq %rdx
leaq -0x78(%rbp), %rdi
callq 0xaa590
jmp 0xcbba7
leaq -0xd8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xaa290
jmp 0xcbbb9
leaq 0x6e89b(%rip), %rsi     # 0x13a45b
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0xccc80
jmp 0xcbbd5
leaq 0x6e886(%rip), %rdx     # 0x13a462
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xccc30
jmp 0xcbbf1
leaq -0xb8(%rbp), %rdi
callq 0xaabe8
leaq -0xd8(%rbp), %rdi
callq 0xaabe8
leaq -0x250(%rbp), %rdi
callq 0xaa7b0
jmp 0xcbc17
leaq -0x3c8(%rbp), %rdi
callq 0xaa7b0
jmp 0xcbc25
leaq -0x540(%rbp), %rdi
callq 0xaa7b0
jmp 0xcbc33
leaq -0x6b8(%rbp), %rdi
callq 0xaa7b0
jmp 0xcbc41
leaq -0x830(%rbp), %rdi
callq 0xaa7b0
jmp 0xcbc4f
movq -0xb18(%rbp), %rsi
leaq -0x848(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbc64
movq -0x18(%rbp), %rax
movq %rax, -0xb38(%rbp)
leaq -0x869(%rbp), %rdi
movq %rdi, -0xb30(%rbp)
callq 0xaaa70
movq -0xb38(%rbp), %rsi
movq -0xb30(%rbp), %rdx
leaq -0x868(%rbp), %rdi
callq 0xaa7d0
jmp 0xcbc9e
leaq -0x848(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x868(%rbp), %rdx
callq 0xd2a20
jmp 0xcbcba
leaq -0x868(%rbp), %rdi
callq 0xaabe8
leaq -0x869(%rbp), %rdi
callq 0xaa5f0
leaq -0x848(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x888(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbcf3
leaq -0x8a8(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcbd08
leaq -0x888(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x8a8(%rbp), %rdx
callq 0xd6940
jmp 0xcbd24
leaq -0x8a8(%rbp), %rdi
callq 0xaabe8
leaq -0x888(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x8c0(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbd51
movl 0xa88c9(%rip), %edx     # 0x174620
movl 0xa88c7(%rip), %ecx     # 0x174624
leaq -0x8c0(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0xe1420
jmp 0xcbd72
leaq -0x8c0(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x8d8(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbd93
movl 0xa8887(%rip), %edx     # 0x174620
movl 0xa8885(%rip), %ecx     # 0x174624
leaq -0x8d8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0xe11d0
jmp 0xcbdb4
leaq -0x8d8(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x8f0(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbdd5
movl 0xa884d(%rip), %eax     # 0x174628
movl %eax, -0xb40(%rbp)
movl 0xa8839(%rip), %eax     # 0x174620
movl %eax, -0xb3c(%rbp)
leaq -0x910(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcbe02
movl -0xb40(%rbp), %r9d
movl -0xb3c(%rbp), %ecx
movq %rsp, %rax
leaq -0x910(%rbp), %rdx
movq %rdx, 0x8(%rax)
movl %ecx, (%rax)
movl $0x1, 0x10(%rax)
leaq 0xa8d63(%rip), %rsi     # 0x174b90
leaq -0x8f0(%rbp), %rdi
leaq -0x3c8(%rbp), %rdx
leaq -0x6b8(%rbp), %rcx
leaq -0x250(%rbp), %r8
callq 0xde650
jmp 0xcbe50
leaq -0x910(%rbp), %rdi
callq 0xaabe8
leaq -0x8f0(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x928(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbe7d
movl 0xa87a9(%rip), %eax     # 0x17462c
movl %eax, -0xb48(%rbp)
movl 0xa8795(%rip), %eax     # 0x174624
movl %eax, -0xb44(%rbp)
leaq -0x948(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcbeaa
movl -0xb48(%rbp), %r9d
movl -0xb44(%rbp), %ecx
movq %rsp, %rax
leaq -0x948(%rbp), %rdx
movq %rdx, 0x8(%rax)
movl %ecx, (%rax)
movl $0x0, 0x10(%rax)
leaq 0xa8cbb(%rip), %rsi     # 0x174b90
leaq -0x928(%rbp), %rdi
leaq -0x3c8(%rbp), %rdx
leaq -0x6b8(%rbp), %rcx
leaq -0x250(%rbp), %r8
callq 0xde650
jmp 0xcbef8
leaq -0x948(%rbp), %rdi
callq 0xaabe8
leaq -0x928(%rbp), %rdi
callq 0xb22f0
movl 0xa870a(%rip), %edx     # 0x174620
movl 0xa8708(%rip), %ecx     # 0x174624
leaq -0x6b8(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0xd66b0
jmp 0xcbf31
movl 0xa86e9(%rip), %esi     # 0x174620
movl 0xa86e7(%rip), %edx     # 0x174624
leaq -0x6b8(%rbp), %rdi
callq 0xd6830
jmp 0xcbf4b
movq -0xb18(%rbp), %rsi
leaq -0x960(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbf60
leaq 0xa8bf9(%rip), %rsi     # 0x174b60
leaq -0x978(%rbp), %rdi
callq 0xcccd0
jmp 0xcbf75
leaq -0x998(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcbf8a
leaq -0x960(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0x250(%rbp), %rdx
leaq -0x978(%rbp), %rcx
leaq -0x998(%rbp), %r8
movl $0x1, %r9d
callq 0xd4010
jmp 0xcbfba
leaq -0x998(%rbp), %rdi
callq 0xaabe8
leaq -0x978(%rbp), %rdi
callq 0xcc7f0
leaq -0x960(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0x9b0(%rbp), %rdi
callq 0xb2bc0
jmp 0xcbff3
leaq 0xa8b7e(%rip), %rsi     # 0x174b78
leaq -0x9c8(%rbp), %rdi
callq 0xcccd0
jmp 0xcc008
leaq -0x9e8(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcc01d
leaq -0x9b0(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0x250(%rbp), %rdx
leaq -0x9c8(%rbp), %rcx
leaq -0x9e8(%rbp), %r8
xorl %r9d, %r9d
callq 0xd4010
jmp 0xcc04a
leaq -0x9e8(%rbp), %rdi
callq 0xaabe8
leaq -0x9c8(%rbp), %rdi
callq 0xcc7f0
leaq -0x9b0(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0xa00(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc083
movl 0xa8597(%rip), %eax     # 0x174620
movl %eax, -0xb4c(%rbp)
leaq -0xa20(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcc0a4
movl -0xb4c(%rbp), %edx
leaq -0xa00(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0xa20(%rbp), %rcx
movl $0x1, %r8d
callq 0xd4960
jmp 0xcc0cc
leaq -0xa20(%rbp), %rdi
callq 0xaabe8
leaq -0xa00(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0xa38(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc0f9
movl 0xa8525(%rip), %eax     # 0x174624
movl %eax, -0xb50(%rbp)
leaq -0xa58(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcc11a
movl -0xb50(%rbp), %edx
leaq -0xa38(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0xa58(%rbp), %rcx
xorl %r8d, %r8d
callq 0xd4960
jmp 0xcc13f
leaq -0xa58(%rbp), %rdi
callq 0xaabe8
leaq -0xa38(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0xa70(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc16c
leaq -0xa90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xaa290
jmp 0xcc181
movl 0xa8499(%rip), %ecx     # 0x174620
movl 0xa8496(%rip), %r8d     # 0x174624
leaq -0xa70(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0xa90(%rbp), %rdx
leaq -0x6b8(%rbp), %r9
callq 0xda000
jmp 0xcc1b1
leaq -0xa90(%rbp), %rdi
callq 0xaabe8
leaq -0xa70(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0xaa8(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc1de
movl 0xa843c(%rip), %edx     # 0x174620
movl 0xa843a(%rip), %ecx     # 0x174624
leaq -0xaa8(%rbp), %rdi
leaq -0x830(%rbp), %rsi
callq 0xe2180
jmp 0xcc1ff
leaq -0xaa8(%rbp), %rdi
callq 0xb22f0
leaq -0x250(%rbp), %rdi
callq 0xd3e70
movq %rax, -0xb58(%rbp)
jmp 0xcc220
movq -0xb10(%rbp), %rdi
movq -0xb58(%rbp), %rax
movq %rax, -0xab0(%rbp)
leaq -0xab0(%rbp), %rsi
callq 0xccdc0
jmp 0xcc243
movq -0xb18(%rbp), %rsi
leaq -0xad0(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc258
leaq -0xad0(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
leaq -0x540(%rbp), %rdx
callq 0xd2e80
movq %rax, -0xb60(%rbp)
jmp 0xcc27b
movq -0xb10(%rbp), %rdi
movq -0xb60(%rbp), %rax
movq %rax, -0xab8(%rbp)
leaq -0xab8(%rbp), %rsi
callq 0xccdc0
jmp 0xcc29e
leaq -0xad0(%rbp), %rdi
callq 0xb22f0
movq -0xb18(%rbp), %rsi
leaq -0xaf0(%rbp), %rdi
callq 0xb2bc0
jmp 0xcc2bf
leaq -0xaf0(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
leaq -0x830(%rbp), %rdx
callq 0xd33d0
movq %rax, -0xb68(%rbp)
jmp 0xcc2e2
movq -0xb10(%rbp), %rdi
movq -0xb68(%rbp), %rax
movq %rax, -0xad8(%rbp)
leaq -0xad8(%rbp), %rsi
callq 0xccdc0
jmp 0xcc305
leaq -0xaf0(%rbp), %rdi
callq 0xb22f0
movb $0x1, -0x19(%rbp)
leaq -0x830(%rbp), %rdi
callq 0xaa130
leaq -0x6b8(%rbp), %rdi
callq 0xaa130
leaq -0x540(%rbp), %rdi
callq 0xaa130
leaq -0x3c8(%rbp), %rdi
callq 0xaa130
leaq -0x250(%rbp), %rdi
callq 0xaa130
leaq -0x98(%rbp), %rdi
callq 0xaabe8
leaq -0x78(%rbp), %rdi
callq 0xaabe8
leaq -0x40(%rbp), %rdi
callq 0xaabe8
testb $0x1, -0x19(%rbp)
jne 0xcc771
jmp 0xcc765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x41(%rbp), %rdi
callq 0xaa5f0
jmp 0xcc781
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc75a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc751
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc3e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xaabe8
leaq -0xd8(%rbp), %rdi
callq 0xaabe8
jmp 0xcc751
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc745
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc739
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc72d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc721
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc715
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc47d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x868(%rbp), %rdi
callq 0xaabe8
leaq -0x869(%rbp), %rdi
callq 0xaa5f0
leaq -0x848(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc4c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0xaabe8
leaq -0x888(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x8c0(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc531
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x910(%rbp), %rdi
callq 0xaabe8
leaq -0x8f0(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc568
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x948(%rbp), %rdi
callq 0xaabe8
leaq -0x928(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc5b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc5ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x998(%rbp), %rdi
callq 0xaabe8
leaq -0x978(%rbp), %rdi
callq 0xcc7f0
leaq -0x960(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc60a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc5fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x9e8(%rbp), %rdi
callq 0xaabe8
leaq -0x9c8(%rbp), %rdi
callq 0xcc7f0
leaq -0x9b0(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa20(%rbp), %rdi
callq 0xaabe8
leaq -0xa00(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc678
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa58(%rbp), %rdi
callq 0xaabe8
leaq -0xa38(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xcc6af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xa90(%rbp), %rdi
callq 0xaabe8
leaq -0xa70(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xaa8(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xad0(%rbp), %rdi
callq 0xb22f0
jmp 0xcc709
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xaf0(%rbp), %rdi
callq 0xb22f0
leaq -0x830(%rbp), %rdi
callq 0xaa130
leaq -0x6b8(%rbp), %rdi
callq 0xaa130
leaq -0x540(%rbp), %rdi
callq 0xaa130
leaq -0x3c8(%rbp), %rdi
callq 0xaa130
leaq -0x250(%rbp), %rdi
callq 0xaa130
leaq -0x98(%rbp), %rdi
callq 0xaabe8
leaq -0x78(%rbp), %rdi
callq 0xaabe8
leaq -0x40(%rbp), %rdi
callq 0xaabe8
jmp 0xcc781
movq -0xb10(%rbp), %rdi
callq 0xb2d90
movq -0xb08(%rbp), %rax
addq $0xb80, %rsp            # imm = 0xB80
popq %rbp
retq
movq -0xb10(%rbp), %rdi
callq 0xb2d90
movq -0x50(%rbp), %rdi
callq 0xaaa60
nopw %cs:(%rax,%rax)