// File: /workspace/github_cpp_makefile_star2_O1/eniac[P]Mantis/src/compile/compile_p4.cpp
// Function: transformMalleableRefs(std::vector<MblRefNode*, std::allocator<MblRefNode*>>*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, P4RMalleableValueNode*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, P4RMalleableValueNode*>>> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, P4RMalleableFieldNode*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, P4RMalleableFieldNode*>>> const&, std::vector<AstNode*, std::allocator<AstNode*>>*)
void transformMalleableRefs(
            vector<MblRefNode*>* mblRefs,
            const unordered_map<string, P4RMalleableValueNode*>& mblValues,
            const unordered_map<string, P4RMalleableFieldNode*>& mblFields,
            vector<AstNode*>* nodeArray) {
    while (!mblRefs->empty()) {
        MblRefNode* varRef = mblRefs->front();
        mblRefs->erase(mblRefs->begin());

        if (varRef->transformed_) {
            // We must have processed this variable reference in a previous pass
            // e.g., multiple references in the same action
            continue;
        }

        string* varName = varRef->name_->word_;

        if (mblValues.find(*varName) != mblValues.end()) {
            // we should treat variable value references in reaction and others differently
            bool is_in_reaction = false;
            AstNode* parent = varRef->parent_;
            while (parent != NULL) {
                if (typeContains(parent, "P4RReactionNode")) {
                    is_in_reaction = true;
                    break;
                }
                parent = parent->parent_;
            }
            if (is_in_reaction) {
                // For c code, we skip the transformation
                varRef->inReaction_ = true;
            } else {
                // Otherwise, transform it to valid meta data
                varRef->transform(string(kP4rIngMetadataName), *varRef->name_->word_);
            }
        } else if (mblFields.find(*varName) != mblFields.end()) {
            // Reference to a variable field
            transformMalleableFieldRef(varRef, mblRefs, nodeArray,
                                      *mblFields.find(*varName)->second);
        } else {
            PANIC("Unknown malleable ref!");
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x288, %rsp            # imm = 0x288
movq %rcx, -0xe8(%rbp)
movq %rdx, -0xf0(%rbp)
movq %rsi, -0xf8(%rbp)
movq %rdi, %rax
movq (%rdi), %rdi
movq %rax, -0xa8(%rbp)
movq 0x8(%rax), %rdx
cmpq %rdx, %rdi
je 0x6536c
leaq 0x13034(%rip), %r15     # 0x7796f
movq (%rdi), %r13
leaq 0x8(%rdi), %rsi
cmpq %rdx, %rsi
je 0x6494f
subq %rsi, %rdx
callq 0x2e690
movq -0xa8(%rbp), %rax
addq $-0x8, 0x8(%rax)
cmpb $0x0, 0x39(%r13)
jne 0x650e0
movq 0x80(%r13), %rax
movq 0x40(%rax), %rbx
movq -0xf8(%rbp), %rdi
movq %rbx, %rsi
callq 0x6f176
testq %rax, %rax
je 0x649b5
movq %r13, %rbx
leaq 0x15183(%rip), %r14     # 0x79b12
movq 0x30(%rbx), %rbx
testq %rbx, %rbx
je 0x64a31
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6f390
testb %al, %al
je 0x6498f
movb $0x1, 0x3a(%r13)
jmp 0x650e0
movq -0xf0(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6f282
testq %rax, %rax
je 0x65383
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6f282
movq 0x28(%rax), %r14
movq %r13, %rbx
movq 0x30(%rbx), %rbx
testq %rbx, %rbx
je 0x6537e
movq %rbx, %rdi
movq %r15, %rsi
callq 0x6f390
testb %al, %al
jne 0x64a85
movq %rbx, %rdi
leaq 0x131e5(%rip), %rsi     # 0x77bf1
callq 0x6f390
testb %al, %al
jne 0x650fc
movq %rbx, %rdi
leaq 0x150ef(%rip), %rsi     # 0x79b12
callq 0x6f390
testb %al, %al
je 0x649e2
jmp 0x650e0
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x131ab(%rip), %rsi     # 0x77bfb
leaq 0x131b0(%rip), %rdx     # 0x77c07
callq 0x33112
movq 0x80(%r13), %rax
movq 0x40(%rax), %rdx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3e2fe
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
jmp 0x650d6
movq %rbx, %rdi
leaq 0x27ba1(%rip), %rsi     # 0x8c630
leaq 0x2845a(%rip), %rdx     # 0x8cef0
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x30(%rbp)
movq 0x40(%rax), %rax
movq 0x40(%rax), %rax
leaq -0x90(%rbp), %rcx
movq %rcx, -0xa0(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0xa0(%rbp), %rdi
callq 0x32f92
movq 0x80(%r13), %rax
movq 0x40(%rax), %rax
leaq -0xb8(%rbp), %rcx
movq %rcx, -0xc8(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0xc8(%rbp), %rdi
callq 0x32f92
leaq -0x110(%rbp), %rdi
movq %r14, %rsi
callq 0x6fda9
xorps %xmm0, %xmm0
movaps %xmm0, -0xe0(%rbp)
movq $0x0, -0xd0(%rbp)
movq -0x110(%rbp), %r14
movq -0x108(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq %rax, %r14
je 0x64e29
movb $0x1, %al
movl %eax, -0x40(%rbp)
movq (%r14), %rax
movq 0x40(%rax), %rcx
movq 0x48(%rax), %rax
movq 0x40(%rcx), %rcx
movq %rcx, -0x38(%rbp)
movq 0x40(%rax), %r12
testb $0x1, -0x40(%rbp)
je 0x64c95
leaq -0x2a8(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
movl $0x2, %edx
movq %r15, %rdi
leaq 0x15285(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r15, %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1525b(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %rbx, %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x15233(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq %rbx, %rdi
callq 0x2e440
leaq -0x80(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
leaq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3b6d2
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x64c20
callq 0x2e360
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x40(%rax), %rdi
movq %rbx, %rsi
callq 0x2e4c0
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x64c55
callq 0x2e360
movq -0x30(%rbp), %rdi
xorl %esi, %esi
leaq -0xc8(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq %r12, %r8
callq 0x6fc53
movq %r15, %rdi
movq 0x29330(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movl $0x0, -0x40(%rbp)
jmp 0x64e1b
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x15151(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x15123(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %rbx, %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x150fb(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq %rbx, %rdi
callq 0x2e440
leaq -0x80(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
leaq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3b6d2
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x64d58
callq 0x2e360
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x392ae
movq %rax, %rbx
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x64d88
callq 0x2e360
movq %r12, %r15
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
testq %rdi, %rdi
je 0x64db2
leaq 0x27891(%rip), %rsi     # 0x8c630
leaq 0x27bc2(%rip), %rdx     # 0x8c968
xorl %ecx, %ecx
callq 0x2e430
movq %rax, %r12
jmp 0x64db5
xorl %r12d, %r12d
movl $0x50, %edi
callq 0x2e3a0
movq %rax, %r13
movq 0x40(%r12), %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0x326fe
movq %r13, 0x40(%r12)
movq %r12, 0x30(%r13)
movq %r13, 0x30(%rbx)
movq %rbx, %rdi
movq -0xa8(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq %r15, %r8
callq 0x6fc53
leaq -0x2a8(%rbp), %rdi
movq 0x2919e(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
addq $0x8, %r14
cmpq -0x48(%rbp), %r14
jne 0x64b40
leaq -0x80(%rbp), %rdi
movq -0xe8(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x6fa51
movq -0x70(%rbp), %rax
testq %rax, %rax
je 0x65083
movq %rax, -0x48(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0xe0(%rbp), %r15
movq -0xd8(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq %rax, %r15
je 0x64f5d
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movb $0x1, %r14b
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x32f92
testb $0x1, %r14b
je 0x64eca
movq -0x40(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x40(%rax), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x2e240
xorl %r14d, %r14d
jmp 0x64f37
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r12
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r13
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %rbx
addq $0x10, %rax
movq %rax, (%rbx)
movq -0x2a8(%rbp), %rsi
movq -0x2a0(%rbp), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x32f92
movq %r13, %rdi
movq %rbx, %rsi
callq 0x329d8
movq %r12, %rdi
movq %r13, %rsi
callq 0x3700c
movq -0x30(%rbp), %rax
movq 0x50(%rax), %rdi
movq %r12, %rsi
callq 0x32898
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x64f4f
callq 0x2e360
addq $0x20, %r15
cmpq -0x38(%rbp), %r15
jne 0x64e83
leaq -0x2a8(%rbp), %r14
movq %r14, %rdi
callq 0x2e550
movl $0xc, %edx
movq %r14, %rdi
leaq 0x12c80(%rip), %rsi     # 0x77bfb
callq 0x2e440
leaq -0x130(%rbp), %rbx
movl $0x1, %edx
movq %r14, %rdi
leaq 0x12993(%rip), %rsi     # 0x77929
callq 0x2e440
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
movq %r14, %rdi
callq 0x2e440
movl $0x5, %edx
movq %rax, %rdi
leaq 0x12f7e(%rip), %rsi     # 0x77f3e
callq 0x2e440
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x6fbb4
movl %eax, %ebx
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x64ffa
callq 0x2e360
testb %bl, %bl
jne 0x6505c
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r12
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r13
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq %r13, %rdi
movq %rbx, %rsi
callq 0x32b5a
movq %r12, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x36cbe
movq -0x30(%rbp), %rax
movq 0x48(%rax), %rdi
movq %r12, %rsi
callq 0x32858
movq %r14, %rdi
movq 0x28f42(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x48(%rbp), %rax
movq (%rax), %rax
jmp 0x64e44
leaq -0x80(%rbp), %rdi
callq 0x6e8ee
leaq -0xe0(%rbp), %rdi
callq 0x398dc
movq -0x110(%rbp), %rdi
testq %rdi, %rdi
leaq 0x128c6(%rip), %r15     # 0x7796f
je 0x650b0
callq 0x2e360
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x650c8
callq 0x2e360
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x650e0
callq 0x2e360
movq -0xa8(%rbp), %rax
movq (%rax), %rdi
movq 0x8(%rax), %rdx
cmpq %rdx, %rdi
jne 0x6493b
jmp 0x6536c
movq %rbx, %rdi
leaq 0x2752a(%rip), %rbx     # 0x8c630
movq %rbx, %rsi
leaq 0x27d38(%rip), %rdx     # 0x8ce48
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x48(%rbp)
movq 0x30(%r13), %rax
movq 0x30(%rax), %rdi
movl $0x0, %eax
movq %rax, -0x40(%rbp)
testq %rdi, %rdi
je 0x65146
movq %rbx, %rsi
leaq 0x27acd(%rip), %rdx     # 0x8cc08
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x40(%rbp)
leaq -0xc8(%rbp), %rdi
movq %r14, %rsi
callq 0x6fda9
movq -0xc8(%rbp), %r15
movq -0xc0(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq %rax, %r15
je 0x651f9
movb $0x1, %bl
movq (%r15), %r12
testb $0x1, %bl
je 0x651c4
movq 0x40(%r12), %rax
movq 0x48(%r12), %rcx
movq 0x40(%rcx), %rdx
movq 0x40(%rax), %rsi
movq %r13, %rdi
callq 0x3e2fe
movq 0x30(%r13), %rdi
leaq 0x27491(%rip), %rsi     # 0x8c630
leaq 0x27c72(%rip), %rdx     # 0x8ce18
xorl %ecx, %ecx
callq 0x2e430
cmpl $0x0, 0x3c(%rax)
jne 0x651ba
movl $0x1, 0x3c(%rax)
movl 0x3c(%rax), %eax
movl %eax, -0x30(%rbp)
xorl %ebx, %ebx
jmp 0x651eb
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movq %rax, %rdi
movl -0x30(%rbp), %esi
movq %r12, %rdx
callq 0x36cbe
movq -0x40(%rbp), %rdi
movq %r14, %rsi
callq 0x32858
addq $0x8, %r15
cmpq -0x38(%rbp), %r15
jne 0x65172
movq 0x80(%r13), %rax
movq 0x40(%rax), %rax
leaq -0x70(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x80(%rbp), %rdi
callq 0x32f92
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
leaq 0x1273a(%rip), %r15     # 0x7796f
movq -0x48(%rbp), %r13
movl $0xc, %edx
movq %rbx, %rdi
leaq 0x129b3(%rip), %rsi     # 0x77bfb
callq 0x2e440
movl $0x1, %edx
leaq -0x2a8(%rbp), %rdi
leaq 0x126c9(%rip), %rsi     # 0x77929
callq 0x2e440
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x2e440
movl $0x5, %edx
movq %rax, %rdi
leaq 0x12cb6(%rip), %rsi     # 0x77f3e
callq 0x2e440
leaq -0xa0(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq %r13, %rdi
movq %rbx, %rsi
callq 0x6fbb4
movl %eax, %ebx
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x652c8
callq 0x2e360
testb %bl, %bl
jne 0x65326
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r12
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq %r12, %rdi
movq %rbx, %rsi
callq 0x32b5a
movq %r14, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x36cbe
movq 0x48(%r13), %rdi
movq %r14, %rsi
callq 0x32858
leaq -0x2a8(%rbp), %rdi
movq 0x28c74(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x65357
callq 0x2e360
movq -0xc8(%rbp), %rdi
testq %rdi, %rdi
jne 0x650db
jmp 0x650e0
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2f0cb
callq 0x2f102
movq %rax, %r15
movq %rbx, %rdi
callq 0x2e360
jmp 0x6539f
jmp 0x65408
movq %rax, %r15
jmp 0x653a7
movq %rax, %r15
movq %r12, %rdi
callq 0x2e360
movq %r14, %rdi
callq 0x2e360
jmp 0x6540b
movq %rax, %r15
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
jne 0x653aa
jmp 0x6540b
jmp 0x65408
movq %rax, %r15
jmp 0x6542a
jmp 0x65493
jmp 0x6548b
movq %rax, %r15
jmp 0x655a1
movq %rax, %r15
jmp 0x655b9
movq %rax, %r15
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
jmp 0x655c7
movq %rax, %r15
jmp 0x655d1
movq %rax, %r15
movq 0x28b96(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
jne 0x65441
jmp 0x65496
jmp 0x65493
movq %rax, %r15
movq %r14, %rdi
callq 0x2e360
jmp 0x65496
movq %rax, %r15
movq %rbx, %rdi
callq 0x2e360
jmp 0x654ae
jmp 0x654ea
jmp 0x654ea
jmp 0x654ea
movq %rax, %r15
movq %r13, %rdi
jmp 0x65484
jmp 0x654ea
jmp 0x65474
jmp 0x6548b
jmp 0x65474
movq %rax, %r15
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x654ed
callq 0x2e360
jmp 0x654ed
movq %rax, %r15
jmp 0x65584
movq %rax, %r15
movq -0xc8(%rbp), %rdi
testq %rdi, %rdi
jne 0x655cc
jmp 0x655d1
movq %rax, %r15
movq %r13, %rdi
callq 0x2e360
jmp 0x654bf
jmp 0x6550e
jmp 0x6550e
movq %rax, %r15
movq %r12, %rdi
callq 0x2e360
jmp 0x65511
jmp 0x65578
movq %rax, %r15
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
jne 0x654c2
jmp 0x65511
jmp 0x654ea
jmp 0x654ea
movq %rax, %r15
movq 0x28ab4(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
jmp 0x65584
movq %rax, %r15
movq 0x28a90(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
jmp 0x6557b
movq %rax, %r15
movq %rbx, %rdi
callq 0x2e360
jmp 0x6554e
jmp 0x65541
movq %rax, %r15
jmp 0x6555e
movq %rax, %r15
jmp 0x65556
movq %rax, %r15
movq %r13, %rdi
callq 0x2e360
movq %r12, %rdi
callq 0x2e360
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x6557b
callq 0x2e360
jmp 0x6557b
movq %rax, %r15
leaq -0x80(%rbp), %rdi
callq 0x6e8ee
leaq -0xe0(%rbp), %rdi
callq 0x398dc
movq -0x110(%rbp), %rdi
testq %rdi, %rdi
je 0x655a1
callq 0x2e360
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x655b9
callq 0x2e360
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x655d1
callq 0x2e360
movq %r15, %rdi
callq 0x2e730