// File: eniac[P]Mantis/src/compile/compile_c.cpp
// Function: mirrorRegisterArgForIng(std::vector<AstNode*, std::allocator<AstNode*>>, std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char>>&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool)
void mirrorRegisterArgForIng(std::vector<AstNode*> nodeArray, ostringstream& oss_reaction_mirror, int iso_opt, string prefix_str, bool forIng) {

    vector<ReactionArgNode*> reaction_args = findReactionArgs(nodeArray);
    if(((unsigned int)iso_opt) & 0b1) {
        // Read replicas based on mv for each reg arg
        for (auto ra : reaction_args) {
            if(ra->argType_==ReactionArgNode::REGISTER) {
                if(forIng) {
                    if(!findRegargInIng(ra, nodeArray)) {
                        // Skip egr reg
                        continue;
                    }
                } else {
                    if(findRegargInIng(ra, nodeArray)) {
                        // Skip ing reg
                        continue;
                    }
                }
                bool is_valid_tmp = false;
                P4RegisterNode* target_reg = NULL;
                for (auto n : nodeArray) {
                    if (typeContains(n, "P4RegisterNode")) {
                        target_reg = dynamic_cast<P4RegisterNode*>(n);
                        if(target_reg->name_->toString().compare(ra->arg_->toString())==0) {
                            is_valid_tmp = true;
                            break;
                        }
                    }
                }    
                // Currently assuming non-64b reg to isolate
                if(is_valid_tmp) {
                    if(ra->index2_) {
                        if(forIng) {
                            oss_reaction_mirror << str(boost::format(kRegArgIsoMirrorT) % ra->arg_->toString() % std::to_string(target_reg->width_) % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(std::stoi(ra->index2_->toString())) % "__mantis__mv_ing");
                        } else {
                            oss_reaction_mirror << str(boost::format(kRegArgIsoMirrorT) % ra->arg_->toString() % std::to_string(target_reg->width_) % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(std::stoi(ra->index2_->toString())) % "__mantis__mv_egr");
                        }
                    } else {
                        if(forIng) {
                            oss_reaction_mirror << str(boost::format(kRegArgIsoMirrorT) % ra->arg_->toString() % std::to_string(target_reg->width_) % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(target_reg->instanceCount_) % "__mantis__mv_ing");
                        } else {
                            oss_reaction_mirror << str(boost::format(kRegArgIsoMirrorT) % ra->arg_->toString() % std::to_string(target_reg->width_) % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(target_reg->instanceCount_) % "__mantis__mv_egr");
                        }
                    }
                } else {
                    PANIC("WARNING: Invalid register argument\n");
                }
            }
        }

        // After all arg mirroring, flip mv
        if(forIng) {
            oss_reaction_mirror << "\n  __mantis__flip_mv_ing;\n\n";
        } else {
            oss_reaction_mirror << "\n  __mantis__flip_mv_egr;\n\n";
        }
    } else {
        // Directly mirror the value to the correponding control plane array
        for (auto ra : reaction_args) {
            if(ra->argType_==ReactionArgNode::REGISTER) {
                if(forIng) {
                    if(!findRegargInIng(ra, nodeArray)) {
                        // Skip egr reg
                        continue;
                    }
                } else {
                    if(findRegargInIng(ra, nodeArray)) {
                        // Skip ing reg
                        continue;
                    }
                }                
                bool is_valid_tmp = false;
                P4RegisterNode* target_reg = NULL;
                for (auto n : nodeArray) {
                    if (typeContains(n, "P4RegisterNode")) {
                        target_reg = dynamic_cast<P4RegisterNode*>(n);
                        if(target_reg->name_->toString().compare(ra->arg_->toString())==0) {
                            is_valid_tmp = true;
                            break;
                        }
                    }
                }              
                // Check the register width
                int width = findRegargWidth(ra, nodeArray);
                if(is_valid_tmp) {
                    if(ra->index2_) {
                        if (width==64) {
                            oss_reaction_mirror << str(boost::format(kRegArgMirrorT_64) % ra->arg_->toString() % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(std::stoi(ra->index2_->toString())) % ra->arg_->toString());
                        } else {
                            oss_reaction_mirror << str(boost::format(kRegArgMirrorT_32) % std::to_string(target_reg->width_) % ra->arg_->toString() % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(std::stoi(ra->index2_->toString())) % ra->arg_->toString());
                        }
                    } else {
                        if (width==64) {
                            oss_reaction_mirror << str(boost::format(kRegArgMirrorT_64) % ra->arg_->toString() % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(target_reg->instanceCount_) % ra->arg_->toString());
                        } else {
                            oss_reaction_mirror << str(boost::format(kRegArgMirrorT_32) % std::to_string(target_reg->width_) % ra->arg_->toString() % std::to_string(target_reg->instanceCount_) % prefix_str % std::to_string(target_reg->instanceCount_) % ra->arg_->toString());
                        }                        
                    }
                } else {
                    PRINT_VERBOSE("WARNING: Invalid register argument\n");
                }
            }
        }
    }

    // Before reaction logic, flip __vv from working copy for prepare phase
    if(forIng) {
        if(((unsigned int)iso_opt) & 0b10) {
            oss_reaction_mirror << "\n  __mantis__flip_vv_ing;\n\n";
            // Note that __mantis__mbl_updated_ing=1 not appended as it is only triggered when
            // there are entries actually prepared for execution
        }
    } else {
        if(((unsigned int)iso_opt) & 0b10) {
            oss_reaction_mirror << "\n  __mantis__flip_vv_egr;\n\n";
        }        
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1120, %rsp           # imm = 0x1120
movq %rcx, -0xec8(%rbp)
movq %rsi, -0xec0(%rbp)
movq %rdi, %rsi
movq -0xec0(%rbp), %rdi
movq %rsi, -0xeb8(%rbp)
movb %r8b, %al
movq %rsi, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x12dc10
movl -0x14(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xd57a6
leaq -0x40(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0xb73b0
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
callq 0xb7240
movq %rax, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xcb210
testb $0x1, %al
jne 0xd49f1
jmp 0xd5773
leaq -0x50(%rbp), %rdi
callq 0xcb250
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpl $0x4, 0x3c(%rax)
jne 0xd5763
testb $0x1, -0x21(%rbp)
je 0xd4aa9
movq -0xeb8(%rbp), %rsi
movq -0x60(%rbp), %rax
movq %rax, -0xed0(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xb2bc0
jmp 0xd4a36
movq -0xed0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x12e7f0
movb %al, -0xed1(%rbp)
jmp 0xd4a4e
movb -0xed1(%rbp), %al
xorb $-0x1, %al
movb %al, -0xed2(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xb22f0
movb -0xed2(%rbp), %al
testb $0x1, %al
jne 0xd4a71
jmp 0xd4aa7
jmp 0xd5765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xb22f0
jmp 0xd6699
jmp 0xd4b23
movq -0xeb8(%rbp), %rsi
movq -0x60(%rbp), %rax
movq %rax, -0xee0(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xb2bc0
jmp 0xd4ac9
movq -0xee0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x12e7f0
movb %al, -0xee1(%rbp)
jmp 0xd4ae4
leaq -0xa0(%rbp), %rdi
callq 0xb22f0
movb -0xee1(%rbp), %al
testb $0x1, %al
jne 0xd4afc
jmp 0xd4b21
jmp 0xd5765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xb22f0
jmp 0xd6699
jmp 0xd4b23
movq -0xeb8(%rbp), %rax
movb $0x0, -0xa1(%rbp)
movq $0x0, -0xb0(%rbp)
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
callq 0xb2ae0
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdi
callq 0xb2b10
movq %rax, -0xc8(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xb2b40
testb $0x1, %al
jne 0xd4b85
jmp 0xd4ce7
leaq -0xc0(%rbp), %rdi
callq 0xb2b80
movq (%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
leaq 0x661f3(%rip), %rsi     # 0x13ad9c
callq 0x12c730
movb %al, -0xee2(%rbp)
jmp 0xd4bb6
movb -0xee2(%rbp), %al
testb $0x1, %al
jne 0xd4bc5
jmp 0xd4cd4
movq -0xd0(%rbp), %rax
movq %rax, -0xef0(%rbp)
cmpq $0x0, %rax
je 0xd4c00
movq -0xef0(%rbp), %rdi
leaq 0x9d9f9(%rip), %rsi     # 0x1725e0
leaq 0x9e162(%rip), %rdx     # 0x172d50
xorl %eax, %eax
movl %eax, %ecx
callq 0xaa660
movq %rax, -0xef8(%rbp)
jmp 0xd4c0b
xorl %eax, %eax
movq %rax, -0xef8(%rbp)
jmp 0xd4c0b
movq -0xef8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xf0(%rbp), %rdi
callq *%rax
jmp 0xd4c35
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x110(%rbp), %rdi
callq *%rax
jmp 0xd4c4e
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xaa060
movl %eax, -0xefc(%rbp)
jmp 0xd4c69
leaq -0x110(%rbp), %rdi
callq 0xaabe8
leaq -0xf0(%rbp), %rdi
callq 0xaabe8
movl -0xefc(%rbp), %eax
cmpl $0x0, %eax
jne 0xd4cd2
movb $0x1, -0xa1(%rbp)
jmp 0xd4ce7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4cc1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x110(%rbp), %rdi
callq 0xaabe8
leaq -0xf0(%rbp), %rdi
callq 0xaabe8
jmp 0xd6699
jmp 0xd4cd4
jmp 0xd4cd6
leaq -0xc0(%rbp), %rdi
callq 0xb2ba0
jmp 0xd4b69
testb $0x1, -0xa1(%rbp)
je 0xd572c
movq -0x60(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0xd5276
testb $0x1, -0x21(%rbp)
je 0xd4fbf
movq -0x10(%rbp), %rax
movq %rax, -0xf08(%rbp)
leaq 0x6608c(%rip), %rsi     # 0x13adab
leaq -0x210(%rbp), %rdi
callq 0xe2f10
jmp 0xd4d2d
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x230(%rbp), %rdi
callq *%rax
jmp 0xd4d46
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf10(%rbp)
jmp 0xd4d62
movq -0xb0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0x250(%rbp), %rdi
callq 0xc0780
jmp 0xd4d7a
movq -0xf10(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf18(%rbp)
jmp 0xd4d96
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x270(%rbp), %rdi
callq 0xc0780
jmp 0xd4dae
movq -0xf18(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf20(%rbp)
jmp 0xd4dca
movq -0xec8(%rbp), %rsi
movq -0xf20(%rbp), %rdi
callq 0xe3490
movq %rax, -0xf28(%rbp)
jmp 0xd4de6
movq -0x60(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x2b0(%rbp), %rdi
callq *%rax
jmp 0xd4dff
xorl %eax, %eax
movl %eax, %esi
leaq -0x2b0(%rbp), %rdi
movl $0xa, %edx
callq 0xbff90
movl %eax, -0xf2c(%rbp)
jmp 0xd4e1c
movl -0xf2c(%rbp), %esi
leaq -0x290(%rbp), %rdi
callq 0xc0780
jmp 0xd4e30
movq -0xf28(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf38(%rbp)
jmp 0xd4e4c
movq -0xf38(%rbp), %rdi
leaq 0x665a1(%rip), %rsi     # 0x13b3fb
callq 0xe3500
movq %rax, -0xf40(%rbp)
jmp 0xd4e68
movq -0xf40(%rbp), %rsi
leaq -0x130(%rbp), %rdi
callq 0xe2ee0
jmp 0xd4e7d
movq -0xf08(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0xaa4c0
jmp 0xd4e92
leaq -0x130(%rbp), %rdi
callq 0xaabe8
leaq -0x290(%rbp), %rdi
callq 0xaabe8
leaq -0x2b0(%rbp), %rdi
callq 0xaabe8
leaq -0x270(%rbp), %rdi
callq 0xaabe8
leaq -0x250(%rbp), %rdi
callq 0xaabe8
leaq -0x230(%rbp), %rdi
callq 0xaabe8
leaq -0x210(%rbp), %rdi
callq 0xe30c0
jmp 0xd5271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4f96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4f8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4f7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd4f72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xaabe8
leaq -0x290(%rbp), %rdi
callq 0xaabe8
leaq -0x2b0(%rbp), %rdi
callq 0xaabe8
leaq -0x270(%rbp), %rdi
callq 0xaabe8
leaq -0x250(%rbp), %rdi
callq 0xaabe8
leaq -0x230(%rbp), %rdi
callq 0xaabe8
leaq -0x210(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
movq -0x10(%rbp), %rax
movq %rax, -0xf48(%rbp)
leaq 0x65dda(%rip), %rsi     # 0x13adab
leaq -0x3b0(%rbp), %rdi
callq 0xe2f10
jmp 0xd4fdf
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x3d0(%rbp), %rdi
callq *%rax
jmp 0xd4ff8
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf50(%rbp)
jmp 0xd5014
movq -0xb0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0x3f0(%rbp), %rdi
callq 0xc0780
jmp 0xd502c
movq -0xf50(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf58(%rbp)
jmp 0xd5048
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x410(%rbp), %rdi
callq 0xc0780
jmp 0xd5060
movq -0xf58(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf60(%rbp)
jmp 0xd507c
movq -0xec8(%rbp), %rsi
movq -0xf60(%rbp), %rdi
callq 0xe3490
movq %rax, -0xf68(%rbp)
jmp 0xd5098
movq -0x60(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x450(%rbp), %rdi
callq *%rax
jmp 0xd50b1
xorl %eax, %eax
movl %eax, %esi
leaq -0x450(%rbp), %rdi
movl $0xa, %edx
callq 0xbff90
movl %eax, -0xf6c(%rbp)
jmp 0xd50ce
movl -0xf6c(%rbp), %esi
leaq -0x430(%rbp), %rdi
callq 0xc0780
jmp 0xd50e2
movq -0xf68(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf78(%rbp)
jmp 0xd50fe
movq -0xf78(%rbp), %rdi
leaq 0x66300(%rip), %rsi     # 0x13b40c
callq 0xe3500
movq %rax, -0xf80(%rbp)
jmp 0xd511a
movq -0xf80(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
callq 0xe2ee0
jmp 0xd512f
movq -0xf48(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0xaa4c0
jmp 0xd5144
leaq -0x2d0(%rbp), %rdi
callq 0xaabe8
leaq -0x430(%rbp), %rdi
callq 0xaabe8
leaq -0x450(%rbp), %rdi
callq 0xaabe8
leaq -0x410(%rbp), %rdi
callq 0xaabe8
leaq -0x3f0(%rbp), %rdi
callq 0xaabe8
leaq -0x3d0(%rbp), %rdi
callq 0xaabe8
leaq -0x3b0(%rbp), %rdi
callq 0xe30c0
jmp 0xd5271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5260
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5248
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd523c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5230
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5224
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0xaabe8
leaq -0x430(%rbp), %rdi
callq 0xaabe8
leaq -0x450(%rbp), %rdi
callq 0xaabe8
leaq -0x410(%rbp), %rdi
callq 0xaabe8
leaq -0x3f0(%rbp), %rdi
callq 0xaabe8
leaq -0x3d0(%rbp), %rdi
callq 0xaabe8
leaq -0x3b0(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
jmp 0xd572a
testb $0x1, -0x21(%rbp)
je 0xd54d4
movq -0x10(%rbp), %rax
movq %rax, -0xf88(%rbp)
leaq 0x65b19(%rip), %rsi     # 0x13adab
leaq -0x550(%rbp), %rdi
callq 0xe2f10
jmp 0xd52a0
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x570(%rbp), %rdi
callq *%rax
jmp 0xd52b9
leaq -0x550(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf90(%rbp)
jmp 0xd52d5
movq -0xb0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0x590(%rbp), %rdi
callq 0xc0780
jmp 0xd52ed
movq -0xf90(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0xe3090
movq %rax, -0xf98(%rbp)
jmp 0xd5309
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x5b0(%rbp), %rdi
callq 0xc0780
jmp 0xd5321
movq -0xf98(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfa0(%rbp)
jmp 0xd533d
movq -0xec8(%rbp), %rsi
movq -0xfa0(%rbp), %rdi
callq 0xe3490
movq %rax, -0xfa8(%rbp)
jmp 0xd5359
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x5d0(%rbp), %rdi
callq 0xc0780
jmp 0xd5371
movq -0xfa8(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfb0(%rbp)
jmp 0xd538d
movq -0xfb0(%rbp), %rdi
leaq 0x66060(%rip), %rsi     # 0x13b3fb
callq 0xe3500
movq %rax, -0xfb8(%rbp)
jmp 0xd53a9
movq -0xfb8(%rbp), %rsi
leaq -0x470(%rbp), %rdi
callq 0xe2ee0
jmp 0xd53be
movq -0xf88(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0xaa4c0
jmp 0xd53d3
leaq -0x470(%rbp), %rdi
callq 0xaabe8
leaq -0x5d0(%rbp), %rdi
callq 0xaabe8
leaq -0x5b0(%rbp), %rdi
callq 0xaabe8
leaq -0x590(%rbp), %rdi
callq 0xaabe8
leaq -0x570(%rbp), %rdi
callq 0xaabe8
leaq -0x550(%rbp), %rdi
callq 0xe30c0
jmp 0xd5728
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd54c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd54b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd54ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd549f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5493
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x470(%rbp), %rdi
callq 0xaabe8
leaq -0x5d0(%rbp), %rdi
callq 0xaabe8
leaq -0x5b0(%rbp), %rdi
callq 0xaabe8
leaq -0x590(%rbp), %rdi
callq 0xaabe8
leaq -0x570(%rbp), %rdi
callq 0xaabe8
leaq -0x550(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
movq -0x10(%rbp), %rax
movq %rax, -0xfc0(%rbp)
leaq 0x658c5(%rip), %rsi     # 0x13adab
leaq -0x6d0(%rbp), %rdi
callq 0xe2f10
jmp 0xd54f4
movq -0x60(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x6f0(%rbp), %rdi
callq *%rax
jmp 0xd550d
leaq -0x6d0(%rbp), %rdi
leaq -0x6f0(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfc8(%rbp)
jmp 0xd5529
movq -0xb0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0x710(%rbp), %rdi
callq 0xc0780
jmp 0xd5541
movq -0xfc8(%rbp), %rdi
leaq -0x710(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfd0(%rbp)
jmp 0xd555d
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x730(%rbp), %rdi
callq 0xc0780
jmp 0xd5575
movq -0xfd0(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfd8(%rbp)
jmp 0xd5591
movq -0xec8(%rbp), %rsi
movq -0xfd8(%rbp), %rdi
callq 0xe3490
movq %rax, -0xfe0(%rbp)
jmp 0xd55ad
movq -0xb0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x750(%rbp), %rdi
callq 0xc0780
jmp 0xd55c5
movq -0xfe0(%rbp), %rdi
leaq -0x750(%rbp), %rsi
callq 0xe3090
movq %rax, -0xfe8(%rbp)
jmp 0xd55e1
movq -0xfe8(%rbp), %rdi
leaq 0x65e1d(%rip), %rsi     # 0x13b40c
callq 0xe3500
movq %rax, -0xff0(%rbp)
jmp 0xd55fd
movq -0xff0(%rbp), %rsi
leaq -0x5f0(%rbp), %rdi
callq 0xe2ee0
jmp 0xd5612
movq -0xfc0(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0xaa4c0
jmp 0xd5627
leaq -0x5f0(%rbp), %rdi
callq 0xaabe8
leaq -0x750(%rbp), %rdi
callq 0xaabe8
leaq -0x730(%rbp), %rdi
callq 0xaabe8
leaq -0x710(%rbp), %rdi
callq 0xaabe8
leaq -0x6f0(%rbp), %rdi
callq 0xaabe8
leaq -0x6d0(%rbp), %rdi
callq 0xe30c0
jmp 0xd5728
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5717
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd570b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd56ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd56f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd56e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0xaabe8
leaq -0x750(%rbp), %rdi
callq 0xaabe8
leaq -0x730(%rbp), %rdi
callq 0xaabe8
leaq -0x710(%rbp), %rdi
callq 0xaabe8
leaq -0x6f0(%rbp), %rdi
callq 0xaabe8
leaq -0x6d0(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
jmp 0xd572a
jmp 0xd5761
movq 0x9e87d(%rip), %rax     # 0x173fb0
movq (%rax), %rdi
leaq 0x65ce0(%rip), %rsi     # 0x13b41d
leaq 0x65d0e(%rip), %rdx     # 0x13b452
movl $0xe6, %ecx
leaq 0x65d1c(%rip), %r8      # 0x13b46c
movb $0x0, %al
callq 0xaa850
movl $0x1, %edi
callq 0xaa6c0
jmp 0xd5763
jmp 0xd5765
leaq -0x50(%rbp), %rdi
callq 0xcb270
jmp 0xd49db
testb $0x1, -0x21(%rbp)
je 0xd578d
movq -0x10(%rbp), %rdi
leaq 0x65d00(%rip), %rsi     # 0x13b484
callq 0xaa540
jmp 0xd578b
jmp 0xd57a1
movq -0x10(%rbp), %rdi
leaq 0x65d08(%rip), %rsi     # 0x13b4a0
callq 0xaa540
jmp 0xd579f
jmp 0xd57a1
jmp 0xd663f
leaq -0x40(%rbp), %rax
movq %rax, -0x758(%rbp)
movq -0x758(%rbp), %rdi
callq 0xb73b0
movq %rax, -0x760(%rbp)
movq -0x758(%rbp), %rdi
callq 0xb7240
movq %rax, -0x768(%rbp)
leaq -0x760(%rbp), %rdi
leaq -0x768(%rbp), %rsi
callq 0xcb210
testb $0x1, %al
jne 0xd57f3
jmp 0xd663d
leaq -0x760(%rbp), %rdi
callq 0xcb250
movq (%rax), %rax
movq %rax, -0x770(%rbp)
movq -0x770(%rbp), %rax
cmpl $0x4, 0x3c(%rax)
jne 0xd662a
testb $0x1, -0x21(%rbp)
je 0xd58af
movq -0xeb8(%rbp), %rsi
movq -0x770(%rbp), %rax
movq %rax, -0xff8(%rbp)
leaq -0x788(%rbp), %rdi
callq 0xb2bc0
jmp 0xd5847
movq -0xff8(%rbp), %rdi
leaq -0x788(%rbp), %rsi
callq 0x12e7f0
movb %al, -0xff9(%rbp)
jmp 0xd5862
movb -0xff9(%rbp), %al
xorb $-0x1, %al
movb %al, -0xffa(%rbp)
leaq -0x788(%rbp), %rdi
callq 0xb22f0
movb -0xffa(%rbp), %al
testb $0x1, %al
jne 0xd5888
jmp 0xd58ad
jmp 0xd662c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x788(%rbp), %rdi
callq 0xb22f0
jmp 0xd6699
jmp 0xd592c
movq -0xeb8(%rbp), %rsi
movq -0x770(%rbp), %rax
movq %rax, -0x1008(%rbp)
leaq -0x7a0(%rbp), %rdi
callq 0xb2bc0
jmp 0xd58d2
movq -0x1008(%rbp), %rdi
leaq -0x7a0(%rbp), %rsi
callq 0x12e7f0
movb %al, -0x1009(%rbp)
jmp 0xd58ed
leaq -0x7a0(%rbp), %rdi
callq 0xb22f0
movb -0x1009(%rbp), %al
testb $0x1, %al
jne 0xd5905
jmp 0xd592a
jmp 0xd662c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x7a0(%rbp), %rdi
callq 0xb22f0
jmp 0xd6699
jmp 0xd592c
movq -0xeb8(%rbp), %rax
movb $0x0, -0x7a1(%rbp)
movq $0x0, -0x7b0(%rbp)
movq %rax, -0x7b8(%rbp)
movq -0x7b8(%rbp), %rdi
callq 0xb2ae0
movq %rax, -0x7c0(%rbp)
movq -0x7b8(%rbp), %rdi
callq 0xb2b10
movq %rax, -0x7c8(%rbp)
leaq -0x7c0(%rbp), %rdi
leaq -0x7c8(%rbp), %rsi
callq 0xb2b40
testb $0x1, %al
jne 0xd598e
jmp 0xd5af3
leaq -0x7c0(%rbp), %rdi
callq 0xb2b80
movq (%rax), %rax
movq %rax, -0x7d0(%rbp)
movq -0x7d0(%rbp), %rdi
leaq 0x653ea(%rip), %rsi     # 0x13ad9c
callq 0x12c730
movb %al, -0x100a(%rbp)
jmp 0xd59bf
movb -0x100a(%rbp), %al
testb $0x1, %al
jne 0xd59ce
jmp 0xd5ae0
movq -0x7d0(%rbp), %rax
movq %rax, -0x1018(%rbp)
cmpq $0x0, %rax
je 0xd5a09
movq -0x1018(%rbp), %rdi
leaq 0x9cbf0(%rip), %rsi     # 0x1725e0
leaq 0x9d359(%rip), %rdx     # 0x172d50
xorl %eax, %eax
movl %eax, %ecx
callq 0xaa660
movq %rax, -0x1020(%rbp)
jmp 0xd5a14
xorl %eax, %eax
movq %rax, -0x1020(%rbp)
jmp 0xd5a14
movq -0x1020(%rbp), %rax
movq %rax, -0x7b0(%rbp)
movq -0x7b0(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x7f0(%rbp), %rdi
callq *%rax
jmp 0xd5a3e
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x810(%rbp), %rdi
callq *%rax
jmp 0xd5a5a
leaq -0x7f0(%rbp), %rdi
leaq -0x810(%rbp), %rsi
callq 0xaa060
movl %eax, -0x1024(%rbp)
jmp 0xd5a75
leaq -0x810(%rbp), %rdi
callq 0xaabe8
leaq -0x7f0(%rbp), %rdi
callq 0xaabe8
movl -0x1024(%rbp), %eax
cmpl $0x0, %eax
jne 0xd5ade
movb $0x1, -0x7a1(%rbp)
jmp 0xd5af3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5acd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x810(%rbp), %rdi
callq 0xaabe8
leaq -0x7f0(%rbp), %rdi
callq 0xaabe8
jmp 0xd6699
jmp 0xd5ae0
jmp 0xd5ae2
leaq -0x7c0(%rbp), %rdi
callq 0xb2ba0
jmp 0xd5972
movq -0xeb8(%rbp), %rsi
movq -0x770(%rbp), %rax
movq %rax, -0x1030(%rbp)
leaq -0x830(%rbp), %rdi
callq 0xb2bc0
jmp 0xd5b16
movq -0x1030(%rbp), %rdi
leaq -0x830(%rbp), %rsi
callq 0x12f640
movl %eax, -0x1034(%rbp)
jmp 0xd5b31
leaq -0x830(%rbp), %rdi
callq 0xb22f0
movl -0x1034(%rbp), %eax
movl %eax, -0x814(%rbp)
testb $0x1, -0x7a1(%rbp)
je 0xd6626
movq -0x770(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0xd613a
cmpl $0x40, -0x814(%rbp)
jne 0xd5e35
movq -0x10(%rbp), %rax
movq %rax, -0x1040(%rbp)
leaq 0x65935(%rip), %rsi     # 0x13b4bc
leaq -0x930(%rbp), %rdi
callq 0xe2f10
jmp 0xd5b95
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x950(%rbp), %rdi
callq *%rax
jmp 0xd5bb1
leaq -0x930(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1048(%rbp)
jmp 0xd5bcd
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0x970(%rbp), %rdi
callq 0xc0780
jmp 0xd5be5
movq -0x1048(%rbp), %rdi
leaq -0x970(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1050(%rbp)
jmp 0xd5c01
movq -0xec8(%rbp), %rsi
movq -0x1050(%rbp), %rdi
callq 0xe3490
movq %rax, -0x1058(%rbp)
jmp 0xd5c1d
movq -0x770(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x9b0(%rbp), %rdi
callq *%rax
jmp 0xd5c39
xorl %eax, %eax
movl %eax, %esi
leaq -0x9b0(%rbp), %rdi
movl $0xa, %edx
callq 0xbff90
movl %eax, -0x105c(%rbp)
jmp 0xd5c56
movl -0x105c(%rbp), %esi
leaq -0x990(%rbp), %rdi
callq 0xc0780
jmp 0xd5c6a
movq -0x1058(%rbp), %rdi
leaq -0x990(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1068(%rbp)
jmp 0xd5c86
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x9d0(%rbp), %rdi
callq *%rax
jmp 0xd5ca2
movq -0x1068(%rbp), %rdi
leaq -0x9d0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1070(%rbp)
jmp 0xd5cbe
movq -0x1070(%rbp), %rsi
leaq -0x850(%rbp), %rdi
callq 0xe2ee0
jmp 0xd5cd3
movq -0x1040(%rbp), %rdi
leaq -0x850(%rbp), %rsi
callq 0xaa4c0
jmp 0xd5ce8
leaq -0x850(%rbp), %rdi
callq 0xaabe8
leaq -0x9d0(%rbp), %rdi
callq 0xaabe8
leaq -0x990(%rbp), %rdi
callq 0xaabe8
leaq -0x9b0(%rbp), %rdi
callq 0xaabe8
leaq -0x970(%rbp), %rdi
callq 0xaabe8
leaq -0x950(%rbp), %rdi
callq 0xaabe8
leaq -0x930(%rbp), %rdi
callq 0xe30c0
jmp 0xd6135
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x830(%rbp), %rdi
callq 0xb22f0
jmp 0xd6699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5e24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5e18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5e0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5e00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5df4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd5de8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x850(%rbp), %rdi
callq 0xaabe8
leaq -0x9d0(%rbp), %rdi
callq 0xaabe8
leaq -0x990(%rbp), %rdi
callq 0xaabe8
leaq -0x9b0(%rbp), %rdi
callq 0xaabe8
leaq -0x970(%rbp), %rdi
callq 0xaabe8
leaq -0x950(%rbp), %rdi
callq 0xaabe8
leaq -0x930(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
movq -0x10(%rbp), %rax
movq %rax, -0x1078(%rbp)
leaq 0x6583c(%rip), %rsi     # 0x13b683
leaq -0xad0(%rbp), %rdi
callq 0xe2f10
jmp 0xd5e55
movq -0x7b0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0xaf0(%rbp), %rdi
callq 0xc0780
jmp 0xd5e6d
leaq -0xad0(%rbp), %rdi
leaq -0xaf0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1080(%rbp)
jmp 0xd5e89
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xb10(%rbp), %rdi
callq *%rax
jmp 0xd5ea5
movq -0x1080(%rbp), %rdi
leaq -0xb10(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1088(%rbp)
jmp 0xd5ec1
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0xb30(%rbp), %rdi
callq 0xc0780
jmp 0xd5ed9
movq -0x1088(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1090(%rbp)
jmp 0xd5ef5
movq -0xec8(%rbp), %rsi
movq -0x1090(%rbp), %rdi
callq 0xe3490
movq %rax, -0x1098(%rbp)
jmp 0xd5f11
movq -0x770(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xb70(%rbp), %rdi
callq *%rax
jmp 0xd5f2d
xorl %eax, %eax
movl %eax, %esi
leaq -0xb70(%rbp), %rdi
movl $0xa, %edx
callq 0xbff90
movl %eax, -0x109c(%rbp)
jmp 0xd5f4a
movl -0x109c(%rbp), %esi
leaq -0xb50(%rbp), %rdi
callq 0xc0780
jmp 0xd5f5e
movq -0x1098(%rbp), %rdi
leaq -0xb50(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10a8(%rbp)
jmp 0xd5f7a
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xb90(%rbp), %rdi
callq *%rax
jmp 0xd5f96
movq -0x10a8(%rbp), %rdi
leaq -0xb90(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10b0(%rbp)
jmp 0xd5fb2
movq -0x10b0(%rbp), %rsi
leaq -0x9f0(%rbp), %rdi
callq 0xe2ee0
jmp 0xd5fc7
movq -0x1078(%rbp), %rdi
leaq -0x9f0(%rbp), %rsi
callq 0xaa4c0
jmp 0xd5fdc
leaq -0x9f0(%rbp), %rdi
callq 0xaabe8
leaq -0xb90(%rbp), %rdi
callq 0xaabe8
leaq -0xb50(%rbp), %rdi
callq 0xaabe8
leaq -0xb70(%rbp), %rdi
callq 0xaabe8
leaq -0xb30(%rbp), %rdi
callq 0xaabe8
leaq -0xb10(%rbp), %rdi
callq 0xaabe8
leaq -0xaf0(%rbp), %rdi
callq 0xaabe8
leaq -0xad0(%rbp), %rdi
callq 0xe30c0
jmp 0xd6135
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6124
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6118
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd610c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6100
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd60f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd60e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd60dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x9f0(%rbp), %rdi
callq 0xaabe8
leaq -0xb90(%rbp), %rdi
callq 0xaabe8
leaq -0xb50(%rbp), %rdi
callq 0xaabe8
leaq -0xb70(%rbp), %rdi
callq 0xaabe8
leaq -0xb30(%rbp), %rdi
callq 0xaabe8
leaq -0xb10(%rbp), %rdi
callq 0xaabe8
leaq -0xaf0(%rbp), %rdi
callq 0xaabe8
leaq -0xad0(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
jmp 0xd6624
cmpl $0x40, -0x814(%rbp)
jne 0xd6386
movq -0x10(%rbp), %rax
movq %rax, -0x10b8(%rbp)
leaq 0x65363(%rip), %rsi     # 0x13b4bc
leaq -0xc90(%rbp), %rdi
callq 0xe2f10
jmp 0xd6167
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xcb0(%rbp), %rdi
callq *%rax
jmp 0xd6183
leaq -0xc90(%rbp), %rdi
leaq -0xcb0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10c0(%rbp)
jmp 0xd619f
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0xcd0(%rbp), %rdi
callq 0xc0780
jmp 0xd61b7
movq -0x10c0(%rbp), %rdi
leaq -0xcd0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10c8(%rbp)
jmp 0xd61d3
movq -0xec8(%rbp), %rsi
movq -0x10c8(%rbp), %rdi
callq 0xe3490
movq %rax, -0x10d0(%rbp)
jmp 0xd61ef
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0xcf0(%rbp), %rdi
callq 0xc0780
jmp 0xd6207
movq -0x10d0(%rbp), %rdi
leaq -0xcf0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10d8(%rbp)
jmp 0xd6223
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xd10(%rbp), %rdi
callq *%rax
jmp 0xd623f
movq -0x10d8(%rbp), %rdi
leaq -0xd10(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10e0(%rbp)
jmp 0xd625b
movq -0x10e0(%rbp), %rsi
leaq -0xbb0(%rbp), %rdi
callq 0xe2ee0
jmp 0xd6270
movq -0x10b8(%rbp), %rdi
leaq -0xbb0(%rbp), %rsi
callq 0xaa4c0
jmp 0xd6285
leaq -0xbb0(%rbp), %rdi
callq 0xaabe8
leaq -0xd10(%rbp), %rdi
callq 0xaabe8
leaq -0xcf0(%rbp), %rdi
callq 0xaabe8
leaq -0xcd0(%rbp), %rdi
callq 0xaabe8
leaq -0xcb0(%rbp), %rdi
callq 0xaabe8
leaq -0xc90(%rbp), %rdi
callq 0xe30c0
jmp 0xd6622
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6375
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6369
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd635d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6345
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xbb0(%rbp), %rdi
callq 0xaabe8
leaq -0xd10(%rbp), %rdi
callq 0xaabe8
leaq -0xcf0(%rbp), %rdi
callq 0xaabe8
leaq -0xcd0(%rbp), %rdi
callq 0xaabe8
leaq -0xcb0(%rbp), %rdi
callq 0xaabe8
leaq -0xc90(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
movq -0x10(%rbp), %rax
movq %rax, -0x10e8(%rbp)
leaq 0x652eb(%rip), %rsi     # 0x13b683
leaq -0xe10(%rbp), %rdi
callq 0xe2f10
jmp 0xd63a6
movq -0x7b0(%rbp), %rax
movl 0x50(%rax), %esi
leaq -0xe30(%rbp), %rdi
callq 0xc0780
jmp 0xd63be
leaq -0xe10(%rbp), %rdi
leaq -0xe30(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10f0(%rbp)
jmp 0xd63da
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xe50(%rbp), %rdi
callq *%rax
jmp 0xd63f6
movq -0x10f0(%rbp), %rdi
leaq -0xe50(%rbp), %rsi
callq 0xe3090
movq %rax, -0x10f8(%rbp)
jmp 0xd6412
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0xe70(%rbp), %rdi
callq 0xc0780
jmp 0xd642a
movq -0x10f8(%rbp), %rdi
leaq -0xe70(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1100(%rbp)
jmp 0xd6446
movq -0xec8(%rbp), %rsi
movq -0x1100(%rbp), %rdi
callq 0xe3490
movq %rax, -0x1108(%rbp)
jmp 0xd6462
movq -0x7b0(%rbp), %rax
movl 0x54(%rax), %esi
leaq -0xe90(%rbp), %rdi
callq 0xc0780
jmp 0xd647a
movq -0x1108(%rbp), %rdi
leaq -0xe90(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1110(%rbp)
jmp 0xd6496
movq -0x770(%rbp), %rax
movq 0x40(%rax), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0xeb0(%rbp), %rdi
callq *%rax
jmp 0xd64b2
movq -0x1110(%rbp), %rdi
leaq -0xeb0(%rbp), %rsi
callq 0xe3090
movq %rax, -0x1118(%rbp)
jmp 0xd64ce
movq -0x1118(%rbp), %rsi
leaq -0xd30(%rbp), %rdi
callq 0xe2ee0
jmp 0xd64e3
movq -0x10e8(%rbp), %rdi
leaq -0xd30(%rbp), %rsi
callq 0xaa4c0
jmp 0xd64f8
leaq -0xd30(%rbp), %rdi
callq 0xaabe8
leaq -0xeb0(%rbp), %rdi
callq 0xaabe8
leaq -0xe90(%rbp), %rdi
callq 0xaabe8
leaq -0xe70(%rbp), %rdi
callq 0xaabe8
leaq -0xe50(%rbp), %rdi
callq 0xaabe8
leaq -0xe30(%rbp), %rdi
callq 0xaabe8
leaq -0xe10(%rbp), %rdi
callq 0xe30c0
jmp 0xd6622
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6614
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd6608
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd65fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd65f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd65e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xd65d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xd30(%rbp), %rdi
callq 0xaabe8
leaq -0xeb0(%rbp), %rdi
callq 0xaabe8
leaq -0xe90(%rbp), %rdi
callq 0xaabe8
leaq -0xe70(%rbp), %rdi
callq 0xaabe8
leaq -0xe50(%rbp), %rdi
callq 0xaabe8
leaq -0xe30(%rbp), %rdi
callq 0xaabe8
leaq -0xe10(%rbp), %rdi
callq 0xe30c0
jmp 0xd6699
jmp 0xd6624
jmp 0xd6628
jmp 0xd6628
jmp 0xd662a
jmp 0xd662c
leaq -0x760(%rbp), %rdi
callq 0xcb270
jmp 0xd57d7
jmp 0xd663f
testb $0x1, -0x21(%rbp)
je 0xd6666
movl -0x14(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xd6664
movq -0x10(%rbp), %rdi
leaq 0x651e5(%rip), %rsi     # 0x13b840
callq 0xaa540
jmp 0xd6662
jmp 0xd6664
jmp 0xd6687
movl -0x14(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xd6685
movq -0x10(%rbp), %rdi
leaq 0x651e0(%rip), %rsi     # 0x13b85c
callq 0xaa540
jmp 0xd6683
jmp 0xd6685
jmp 0xd6687
leaq -0x40(%rbp), %rdi
callq 0xccb90
addq $0x1120, %rsp           # imm = 0x1120
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0xccb90
movq -0x80(%rbp), %rdi
callq 0xaaa60
nopl (%rax,%rax)