// File: olly-larkin[P]mips-parser/src/parser.cpp
// Function: addVec(std::istream&, std::vector<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>>&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool addVec(std::istream& inStream, std::vector< std::vector<std::string> >& commVector, unsigned int& count, std::string func) {
    if (func == "exit")
        return false;
    else if (func[0] == '#') {
        std::string throwAway;
        getline(inStream, throwAway);
    } else if (func.back() == ':') {
        func.pop_back();
        labelMap[func] = count;
    } else if (func == "mnop") {
        std::string numStr;
        int32_t nopNum;
        if (!(inStream >> numStr) || !validIntStr(numStr, nopNum) || nopNum < 0)
            exitError("Invalid argument passed to mnop: " + numStr, 5);
        for(int i = 0; i < nopNum; ++i) {
            commVector.push_back(std::vector<std::string>(1, "nop"));
        }
    } else if (commMap.find(func) == commMap.end())
        exitError("Invalid command \"" + func + "\" on instruction number " + std::to_string((count - 0x10000000)/4 + 1), 5);
    else {
        std::vector<std::string> inVec;
        if (func == "jalr") {
            std::string arg1, arg2;
            if (!(inStream >> arg1))
                exitError("Not enough arguments for final instruction.", 5);
            if (!(inStream >> arg2)) {
                inVec.push_back(func);
                inVec.push_back("$31");
                inVec.push_back(arg1);
                commVector.push_back(inVec);
                count += 4;
                return true;
            }
            if (indRegCheck(arg2)) {
                inVec.push_back(func);
                inVec.push_back(arg1);
                inVec.push_back(arg2);
                commVector.push_back(inVec);
                count += 4;
                return true;
            } else {
                inVec.push_back(func);
                inVec.push_back("$31");
                inVec.push_back(arg1);
                commVector.push_back(inVec);
                count += 4;
                return addVec(inStream, commVector, count, arg2);
            }
        } else {
            inVec.push_back(func);
            for(int i = 0; i < commMap[func].numArgs; ++i) {
                std::string arg;
                if (!(inStream >> arg))
                    exitError("Not enough arguments for final instruction.", 5);
                inVec.push_back(arg);
            }
            commVector.push_back(inVec);
            count += 4;
        }
    }
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x400, %rsp            # imm = 0x400
movq %rcx, -0x310(%rbp)
movq %rdi, %rax
movq -0x310(%rbp), %rdi
movq %rdi, -0x308(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rdi, -0x28(%rbp)
leaq 0xd03f(%rip), %rsi      # 0x131c9
callq 0x7490
testb $0x1, %al
jne 0x6195
jmp 0x619e
movb $0x0, -0x1(%rbp)
jmp 0x6d9d
movq -0x308(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3470
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x6200
leaq -0x48(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0x3340
movq -0x318(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x3080
jmp 0x61d8
leaq -0x48(%rbp), %rdi
callq 0x31a0
jmp 0x6d97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x31a0
jmp 0x6dab
movq -0x308(%rbp), %rdi
callq 0x31f0
movsbl (%rax), %eax
cmpl $0x3a, %eax
jne 0x624c
movq -0x308(%rbp), %rdi
callq 0x32d0
movq -0x308(%rbp), %rsi
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x31c(%rbp)
leaq 0x1505e(%rip), %rdi     # 0x1b298
callq 0x74c0
movl -0x31c(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x6d95
movq -0x308(%rbp), %rdi
leaq 0xcf74(%rip), %rsi      # 0x131ce
callq 0x7490
testb $0x1, %al
jne 0x6268
jmp 0x6536
leaq -0x78(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x3340
movq -0x330(%rbp), %rsi
movq -0x10(%rbp), %rdi
movb $0x0, -0xa1(%rbp)
callq 0x32f0
movq %rax, -0x328(%rbp)
jmp 0x6298
movq -0x328(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3140
movb %al, -0x331(%rbp)
jmp 0x62b6
movb -0x331(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x332(%rbp)
jne 0x631e
jmp 0x62cb
leaq -0xa0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x3120
jmp 0x62dd
movb $0x1, -0xa1(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
callq 0x5fb0
movb %al, -0x333(%rbp)
jmp 0x62fc
movb -0x333(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x332(%rbp)
jne 0x6311
jmp 0x631e
cmpl $0x0, -0x7c(%rbp)
setl %al
movb %al, -0x332(%rbp)
movb -0x332(%rbp), %al
movb %al, -0x334(%rbp)
testb $0x1, -0xa1(%rbp)
jne 0x6335
jmp 0x6341
leaq -0xa0(%rbp), %rdi
callq 0x31a0
movb -0x334(%rbp), %al
testb $0x1, %al
jne 0x6350
jmp 0x63e0
leaq 0xce7c(%rip), %rsi      # 0x131d3
leaq -0xc8(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x75a0
jmp 0x6369
leaq -0xc8(%rbp), %rdi
movl $0x5, %esi
callq 0xc9e0
jmp 0x637c
leaq -0xc8(%rbp), %rdi
callq 0x31a0
jmp 0x63e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6528
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
testb $0x1, -0xa1(%rbp)
jne 0x63b2
jmp 0x63be
leaq -0xa0(%rbp), %rdi
callq 0x31a0
jmp 0x6528
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x31a0
jmp 0x6528
movl $0x0, -0xcc(%rbp)
movl -0xcc(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x651a
movq -0x18(%rbp), %rax
movq %rax, -0x348(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x3430
movq -0x340(%rbp), %rdx
leaq 0xcdaa(%rip), %rsi      # 0x131cf
leaq -0x108(%rbp), %rdi
callq 0x3330
jmp 0x6433
leaq -0x10a(%rbp), %rdi
movq %rdi, -0x350(%rbp)
callq 0x76e0
movq -0x350(%rbp), %rcx
leaq -0xe8(%rbp), %rdi
movl $0x1, %esi
leaq -0x108(%rbp), %rdx
callq 0x7700
jmp 0x6467
movq -0x348(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x76b0
jmp 0x647c
leaq -0xe8(%rbp), %rdi
callq 0x5c60
leaq -0x10a(%rbp), %rdi
callq 0x5e90
leaq -0x108(%rbp), %rdi
callq 0x31a0
leaq -0x109(%rbp), %rdi
callq 0x32b0
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x63ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x650c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x64f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x5c60
leaq -0x10a(%rbp), %rdi
callq 0x5e90
leaq -0x108(%rbp), %rdi
callq 0x31a0
leaq -0x109(%rbp), %rdi
callq 0x32b0
jmp 0x6528
leaq -0x78(%rbp), %rdi
callq 0x31a0
jmp 0x6d93
leaq -0x78(%rbp), %rdi
callq 0x31a0
jmp 0x6dab
movq -0x308(%rbp), %rsi
leaq 0x14d24(%rip), %rdi     # 0x1b268
callq 0x77b0
movq %rax, -0x118(%rbp)
leaq 0x14d11(%rip), %rdi     # 0x1b268
callq 0x77e0
movq %rax, -0x120(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x7780
testb $0x1, %al
jne 0x657f
jmp 0x66aa
movq -0x308(%rbp), %rdx
leaq 0xcc68(%rip), %rsi      # 0x131f5
leaq -0x180(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x75a0
movq -0x358(%rbp), %rsi
leaq 0xcc59(%rip), %rdx      # 0x13207
leaq -0x160(%rbp), %rdi
callq 0x5a30
jmp 0x65bc
movq -0x20(%rbp), %rax
movl (%rax), %esi
addl $0xf0000000, %esi       # imm = 0xF0000000
shrl $0x2, %esi
incl %esi
leaq -0x1a0(%rbp), %rdi
callq 0x78e0
jmp 0x65db
leaq -0x140(%rbp), %rdi
leaq -0x160(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
callq 0x7810
jmp 0x65f7
leaq -0x140(%rbp), %rdi
movl $0x5, %esi
callq 0xc9e0
jmp 0x660a
leaq -0x140(%rbp), %rdi
callq 0x31a0
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
leaq -0x160(%rbp), %rdi
callq 0x31a0
leaq -0x180(%rbp), %rdi
callq 0x31a0
jmp 0x6d91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x668d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6681
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x31a0
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
leaq -0x160(%rbp), %rdi
callq 0x31a0
leaq -0x180(%rbp), %rdi
callq 0x31a0
jmp 0x6dab
leaq -0x1b8(%rbp), %rdi
callq 0x79c0
movq -0x308(%rbp), %rdi
leaq 0xca3a(%rip), %rsi      # 0x130fe
callq 0x7490
movb %al, -0x359(%rbp)
jmp 0x66d1
movb -0x359(%rbp), %al
testb $0x1, %al
jne 0x66e0
jmp 0x6baa
leaq -0x1d8(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x3340
leaq -0x1f8(%rbp), %rdi
callq 0x3340
movq -0x370(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x32f0
movq %rax, -0x368(%rbp)
jmp 0x6718
movq -0x368(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3140
movb %al, -0x371(%rbp)
jmp 0x6736
movb -0x371(%rbp), %al
testb $0x1, %al
jne 0x6745
jmp 0x67fa
leaq -0x219(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x3430
movq -0x380(%rbp), %rdx
leaq 0xcaba(%rip), %rsi      # 0x13220
leaq -0x218(%rbp), %rdi
callq 0x3330
jmp 0x6774
leaq -0x218(%rbp), %rdi
movl $0x5, %esi
callq 0xc9e0
jmp 0x6787
leaq -0x218(%rbp), %rdi
callq 0x31a0
leaq -0x219(%rbp), %rdi
callq 0x32b0
jmp 0x67fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6d83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6b8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x67e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x31a0
leaq -0x219(%rbp), %rdi
callq 0x32b0
jmp 0x6b8d
movq -0x10(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x32f0
movq %rax, -0x388(%rbp)
jmp 0x6813
movq -0x388(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3140
movb %al, -0x389(%rbp)
jmp 0x6831
movb -0x389(%rbp), %al
testb $0x1, %al
jne 0x6840
jmp 0x692d
movq -0x308(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x79e0
jmp 0x6855
leaq -0x241(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x3430
movq -0x398(%rbp), %rdx
leaq 0xc9d6(%rip), %rsi      # 0x1324c
leaq -0x240(%rbp), %rdi
callq 0x3330
jmp 0x6884
leaq -0x1b8(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x7a50
jmp 0x6899
leaq -0x240(%rbp), %rdi
callq 0x31a0
leaq -0x241(%rbp), %rdi
callq 0x32b0
leaq -0x1b8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x79e0
jmp 0x68c6
movq -0x18(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x7a80
jmp 0x68d8
movq -0x20(%rbp), %rax
movl (%rax), %ecx
addl $0x4, %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
movl $0x1, -0x248(%rbp)
jmp 0x6b70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x691c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x31a0
leaq -0x241(%rbp), %rdi
callq 0x32b0
jmp 0x6b8d
leaq -0x268(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3120
jmp 0x6942
leaq -0x268(%rbp), %rdi
callq 0xcc30
movb %al, -0x399(%rbp)
jmp 0x6956
leaq -0x268(%rbp), %rdi
callq 0x31a0
movb -0x399(%rbp), %al
testb $0x1, %al
jne 0x6971
jmp 0x69fd
movq -0x308(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x79e0
jmp 0x6986
leaq -0x1b8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x79e0
jmp 0x699b
leaq -0x1b8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x79e0
jmp 0x69b0
movq -0x18(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x7a80
jmp 0x69c2
movq -0x20(%rbp), %rax
movl (%rax), %ecx
addl $0x4, %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
movl $0x1, -0x248(%rbp)
jmp 0x6b70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x31a0
jmp 0x6b8d
movq -0x308(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x79e0
jmp 0x6a12
leaq -0x289(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x3430
movq -0x3a8(%rbp), %rdx
leaq 0xc819(%rip), %rsi      # 0x1324c
leaq -0x288(%rbp), %rdi
callq 0x3330
jmp 0x6a41
leaq -0x1b8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x7a50
jmp 0x6a56
leaq -0x288(%rbp), %rdi
callq 0x31a0
leaq -0x289(%rbp), %rdi
callq 0x32b0
leaq -0x1b8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x79e0
jmp 0x6a83
movq -0x18(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x7a80
jmp 0x6a95
movq -0x20(%rbp), %rax
movl (%rax), %ecx
addl $0x4, %ecx
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x3b8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3120
jmp 0x6ad6
movq -0x3b0(%rbp), %rdx
movq -0x3b8(%rbp), %rsi
movq -0x3c0(%rbp), %rdi
leaq -0x2b0(%rbp), %rcx
callq 0x6150
movb %al, -0x3c1(%rbp)
jmp 0x6aff
movb -0x3c1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x31a0
movl $0x1, -0x248(%rbp)
jmp 0x6b70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6b48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x31a0
leaq -0x289(%rbp), %rdi
callq 0x32b0
jmp 0x6b8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x31a0
jmp 0x6b8d
leaq -0x1f8(%rbp), %rdi
callq 0x31a0
leaq -0x1d8(%rbp), %rdi
callq 0x31a0
jmp 0x6d67
leaq -0x1f8(%rbp), %rdi
callq 0x31a0
leaq -0x1d8(%rbp), %rdi
callq 0x31a0
jmp 0x6d83
movq -0x308(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x79e0
jmp 0x6bbf
movl $0x0, -0x2b4(%rbp)
movq -0x308(%rbp), %rsi
movl -0x2b4(%rbp), %eax
movl %eax, -0x3d4(%rbp)
leaq 0x14685(%rip), %rdi     # 0x1b268
callq 0x7af0
movq %rax, -0x3d0(%rbp)
jmp 0x6bf1
movl -0x3d4(%rbp), %eax
movq -0x3d0(%rbp), %rcx
cmpl (%rcx), %eax
jge 0x6d40
leaq -0x2d8(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x3340
movq -0x3e8(%rbp), %rsi
movq -0x10(%rbp), %rdi
callq 0x32f0
movq %rax, -0x3e0(%rbp)
jmp 0x6c32
movq -0x3e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3140
movb %al, -0x3e9(%rbp)
jmp 0x6c50
movb -0x3e9(%rbp), %al
testb $0x1, %al
jne 0x6c5f
jmp 0x6cfd
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x3430
movq -0x3f8(%rbp), %rdx
leaq 0xc5a0(%rip), %rsi      # 0x13220
leaq -0x2f8(%rbp), %rdi
callq 0x3330
jmp 0x6c8e
leaq -0x2f8(%rbp), %rdi
movl $0x5, %esi
callq 0xc9e0
jmp 0x6ca1
leaq -0x2f8(%rbp), %rdi
callq 0x31a0
leaq -0x2f9(%rbp), %rdi
callq 0x32b0
jmp 0x6cfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6d32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x6cef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x31a0
leaq -0x2f9(%rbp), %rdi
callq 0x32b0
jmp 0x6d32
leaq -0x1b8(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x79e0
jmp 0x6d12
leaq -0x2d8(%rbp), %rdi
callq 0x31a0
movl -0x2b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b4(%rbp)
jmp 0x6bc9
leaq -0x2d8(%rbp), %rdi
callq 0x31a0
jmp 0x6d83
movq -0x18(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x7a80
jmp 0x6d52
movq -0x20(%rbp), %rax
movl (%rax), %ecx
addl $0x4, %ecx
movl %ecx, (%rax)
movl $0x0, -0x248(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x5c60
movl -0x248(%rbp), %eax
testl %eax, %eax
je 0x6d81
jmp 0x6d7f
jmp 0x6d9d
jmp 0x6d91
leaq -0x1b8(%rbp), %rdi
callq 0x5c60
jmp 0x6dab
jmp 0x6d93
jmp 0x6d95
jmp 0x6d97
jmp 0x6d99
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x400, %rsp            # imm = 0x400
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x3420
nopw %cs:(%rax,%rax)