// File: /workspace/github_cpp_makefile_star2_O1/martinda3[P]Compiler/src/tc.cpp
// Function: processCommandLine(int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void processCommandLine(int argc, char *argv[], string filename) {
    string toycFile, outputFileName, javaClass;

    try {
        toycFile = argv[2];

        /* Verify we are using the correct file type*/
        std::size_t found = toycFile.find(".tc");
        if (found == std::string::npos) {
            cerr << "ERROR: Invalid File Type: filename\"" << toycFile
                      << "\""<< endl;
            exit(EXIT_FAILURE);
        }

        /* Generate Output path + file */
        outputFileName = toycFile.substr(0, found + 1) + "j";

        /* Generate Class file */
        /* Check if file is local */
        found = toycFile.find_last_of("/");
        if (found != std::string::npos) {
            /* Path + File */
            javaClass = toycFile.substr(found + 1, (toycFile.find(".tc") - found) - 1);
        } else {
            /* Local File */
            javaClass = toycFile.substr(0, toycFile.find(".tc"));
        }
        cout << "Class: " << javaClass << endl;

        outputClassFileName = javaClass;
    }
    catch (...) {}
    switch (argc) {
        case 1:
            printUsageMessage();
            break;
        case 3:
            inputFileName = argv[2];
            targetFileName = outputFileName;
            if (argv[1][0] == '-' && argv[1][1] == 's') {
                turnVerboseOn();
                turnScannerOn();
                if (argv[1][2] == '0') // add more robust debugging
                {
                    turnVerboseOff();
                    turnScannerOff();
                    turnScannerOff();
                    turnCodeGenOff();
                }
                TCfile *test1;
                test1 = new TCfile(inputFileName, targetFileName, inputFileHandler(inputFileName));
                cout << test1->getFileInfo();
                TClexer *scanner = new TClexer(inputFileName);
                int tok;
                while ((tok = scanner->getToken()->getTokenType()) != EOFILE);
            } else if (argv[1][0] == '-' && argv[1][1] == 'c') {
                turnVerboseOn();
                turnParserOn();
                turnScannerOn();
                turnCodeGenOn();
                if (argv[1][2] == '0') {
                    turnVerboseOff();
                    turnScannerOff();
                    turnScannerOff();
                    turnCodeGenOff();
                }
                TClexer *scanner;
                TCparser *parser;
                ASabstractSyntax *ast;
                CGcodeGenerator *cg;
                CGtargetCode *tc;
                TCfile *test1;
                test1 = new TCfile(inputFileName, targetFileName, inputFileHandler(inputFileName));
                cout << test1->getFileInfo();
                try { scanner = new TClexer(inputFileName); }
                catch (...) {
                    cerr << "ERROR: TClexer" << endl;
                    exit(EXIT_FAILURE);
                }

                try { parser = new TCparser(scanner); }
                catch (...) {
                    cerr << "ERROR: TCparser" << endl;
                    exit(EXIT_FAILURE);
                }

                try { ast = parser->parse(); }
                catch (...) {
                    cerr << "ERROR: ASabstractSyntax" << endl;
                    exit(EXIT_FAILURE);
                }

                try { cg = new JVMcodeGenerator(); }
                catch (...) {
                    cerr << "ERROR: CGcodeGenerator" << endl;
                    exit(EXIT_FAILURE);
                }

                try { tc = cg->generateCode(ast); }
                catch (...) {
                    cerr << "ERROR: CGtargetCode" << endl;
                    exit(EXIT_FAILURE);
                }

                try { tc->writeCode(tc, targetFileName); }
                catch (...) {
                    cerr << "ERROR: writeCode" << endl;
                    exit(EXIT_FAILURE);
                }

                if (v_code_gen) {
                    dumpAST(ast);
                    dumpST(symTable);
                    dumpCode(tc);
                }
            } else if (argv[1][0] == '-' && argv[1][1] == 'p') {
                turnVerboseOn();
                turnParserOn();
                turnScannerOn();
                if (argv[1][2] == '0') {
                    turnVerboseOff();
                    turnScannerOff();
                    turnScannerOff();
                    turnCodeGenOff();
                }
                TCfile *test1;
                test1 = new TCfile(inputFileName, targetFileName, inputFileHandler(inputFileName));
                cout << test1->getFileInfo();
                TClexer *scanner;
                try { scanner = new TClexer(inputFileName); }
                catch (...) {
                    cerr << "ERROR: TClexer" << endl;
                    exit(EXIT_FAILURE);
                }
                int tok;
                while ((tok = scanner->getToken()->getTokenType()) != EOFILE);
            } else if (argv[1][0] == '-' && argv[1][1] == 'a') {
                turnVerboseOn();
               // turnParserOn();
                //turnScannerOn();
                turnCodeGenOn();
                if (argv[1][2] == '0') {
                    turnVerboseOff();
                    turnScannerOff();
                    turnScannerOff();
                    turnCodeGenOff();
                }
                TCfile *test1;
                test1 = new TCfile(inputFileName, targetFileName, inputFileHandler(inputFileName));
                cout << test1->getFileInfo();
                TClexer *scanner;
                TCparser *parser;
                ASabstractSyntax *ast;
                try { scanner = new TClexer(inputFileName); }
                catch (...) {
                    cerr << "ERROR: TClexer" << endl;
                    exit(EXIT_FAILURE);
                }

                try { parser = new TCparser(scanner); }
                catch (...) {
                    cerr << "ERROR: TCparser" << endl;
                    exit(EXIT_FAILURE);
                }

                try { ast = parser->parse(); }
                catch (...) {
                    cerr << "ERROR: ASabstractSyntax" << endl;
                    exit(EXIT_FAILURE);
                }

                if (v_code_gen) {
                    dumpAST(ast);
                    dumpST(symTable);
                }
            } else {
                cout << inputFileHandler(inputFileName);
            }
            break;
        default:
            printUsageMessage();
            break;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2e8, %rsp            # imm = 0x2E8
movq %rsi, 0x40(%rsp)
movl %edi, %ebx
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
xorl %eax, %eax
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq 0x78(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x58(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq 0x10(%rsi), %r14
movq %r14, %rdi
callq 0x8100
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %r14, %rcx
movq %rax, %r8
callq 0x8390
leaq 0x53fc(%rip), %rsi      # 0x2bc61
leaq 0x20(%rsp), %rdi
movl $0x3, %ecx
xorl %edx, %edx
callq 0x8410
cmpq $-0x1, %rax
je 0x27422
incq %rax
leaq 0x2c8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x8280
leaq 0x53e8(%rip), %rsi      # 0x2bc89
leaq 0x2c8(%rsp), %rdi
callq 0x8460
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x268d4
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x268db
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rsp, %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x68(%rsp), %rdi
movq %r14, %rsi
callq 0x82f0
movq (%r14), %rdi
cmpq %rbp, %rdi
je 0x26917
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26938
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x3dd2(%rip), %rsi      # 0x2a711
leaq 0x20(%rsp), %rdi
movl $0x1, %ecx
movq $-0x1, %rdx
callq 0x8470
cmpq $-0x1, %rax
je 0x26c75
movq %rax, %r14
movl %ebx, %r15d
movq %r13, %rbx
leaq 0x1(%rax), %r12
leaq 0x52ee(%rip), %rsi      # 0x2bc61
leaq 0x20(%rsp), %r13
movl $0x3, %ecx
movq %r13, %rdi
xorl %edx, %edx
callq 0x8410
notq %r14
addq %rax, %r14
movq %rsp, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %r14, %rcx
callq 0x8280
leaq 0x48(%rsp), %rdi
movq %rsp, %r14
movq %r14, %rsi
callq 0x82f0
movq (%r14), %rdi
cmpq %rbp, %rdi
movq %rbx, %r13
movl %r15d, %ebx
je 0x269c9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x40(%rsp), %r15
movq 0x135fb(%rip), %rdi     # 0x39fd0
leaq 0x52af(%rip), %rsi      # 0x2bc8b
movl $0x7, %edx
callq 0x82c0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x135d9(%rip), %rdi     # 0x39fd0
callq 0x82c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8230
movsbl %al, %esi
movq %r14, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x8170
leaq 0x13ae3(%rip), %rdi     # 0x3a510
leaq 0x48(%rsp), %rsi
callq 0x8150
cmpl $0x3, %ebx
jne 0x26c6b
movq 0x10(%r15), %r14
leaq 0x13aa5(%rip), %rbx     # 0x3a4f0
movq 0x8(%rbx), %r12
movq %r14, %rdi
callq 0x8100
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x8390
leaq 0x13abf(%rip), %r14     # 0x3a530
leaq 0x68(%rsp), %rsi
movq %r14, %rdi
callq 0x8150
movq 0x8(%r15), %rax
movb (%rax), %cl
cmpb $0x2d, %cl
jne 0x27366
cmpb $0x73, 0x1(%rax)
jne 0x26cc1
callq 0x1a438
callq 0x1a448
movq 0x8(%r15), %rax
cmpb $0x30, 0x2(%rax)
jne 0x26abf
callq 0x1a440
callq 0x1a450
callq 0x1a450
callq 0x1a470
movl $0x48, %edi
callq 0x8250
movq %rax, %r15
leaq 0x2b8(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x2a8(%rsp), %rdi
callq 0xabf6
leaq 0x298(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x288(%rsp), %rdi
callq 0xabf6
leaq 0x278(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x268(%rsp), %rdi
callq 0xabf6
leaq 0x268(%rsp), %rdi
callq 0x27c45
leaq 0x2a8(%rsp), %rsi
leaq 0x288(%rsp), %rdx
movq %r15, %rdi
movl %eax, %ecx
callq 0x18d22
movq 0x268(%rsp), %rdi
cmpq %r14, %rdi
je 0x26b7a
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x288(%rsp), %rdi
cmpq %r13, %rdi
je 0x26b97
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x30(%rsp), %r13
je 0x26bb9
movq 0x2b8(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rsp, %rdi
movq %r15, %rsi
callq 0x18da6
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x133fc(%rip), %rdi     # 0x39fd0
callq 0x82c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26bf4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x1, %edi
callq 0x8250
movq %rax, %r14
leaq 0x258(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x248(%rsp), %rdi
callq 0xabf6
leaq 0x248(%rsp), %rsi
movq %r14, %rdi
callq 0x10928
movq 0x248(%rsp), %rdi
cmpq %r15, %rdi
je 0x26c51
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x10f24
movq %rax, %rdi
callq 0x179ac
cmpl $0x2d, %eax
jne 0x26c51
jmp 0x273c1
callq 0x27b15
jmp 0x273c1
leaq 0x4fe5(%rip), %rsi      # 0x2bc61
leaq 0x20(%rsp), %r14
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x8410
movq %rsp, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x8280
leaq 0x48(%rsp), %rdi
movq %rsp, %r14
movq %r14, %rsi
callq 0x82f0
movq (%r14), %rdi
cmpq %rbp, %rdi
jne 0x269bc
jmp 0x269c9
cmpb $0x2d, %cl
jne 0x27366
cmpb $0x63, 0x1(%rax)
jne 0x26f68
callq 0x1a438
callq 0x1a458
callq 0x1a448
callq 0x1a468
movq 0x8(%r15), %rax
cmpb $0x30, 0x2(%rax)
jne 0x26d06
callq 0x1a440
callq 0x1a450
callq 0x1a450
callq 0x1a470
movl $0x48, %edi
callq 0x8250
movq %rax, %r15
leaq 0x238(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x228(%rsp), %rdi
callq 0xabf6
leaq 0x218(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x208(%rsp), %rdi
callq 0xabf6
leaq 0x1f8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x1e8(%rsp), %rdi
callq 0xabf6
leaq 0x1e8(%rsp), %rdi
callq 0x27c45
leaq 0x228(%rsp), %rsi
leaq 0x208(%rsp), %rdx
movq %r15, %rdi
movl %eax, %ecx
callq 0x18d22
movq 0x1e8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x26dc1
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x208(%rsp), %rdi
cmpq %r13, %rdi
je 0x26dde
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x228(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x30(%rsp), %r13
je 0x26e00
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rsp, %rdi
movq %r15, %rsi
callq 0x18da6
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x131b5(%rip), %rdi     # 0x39fd0
callq 0x82c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26e3b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x1, %edi
callq 0x8250
movq %rax, %r15
leaq 0x1d8(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x1c8(%rsp), %rdi
callq 0xabf6
leaq 0x1c8(%rsp), %rsi
movq %r15, %rdi
callq 0x10928
movq 0x1c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x26e99
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x10, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
callq 0xb910
movq %rbx, %rdi
callq 0xb914
movq %rax, %rbx
movl $0x10, %edi
callq 0x8250
movq %rax, %r15
movq %rax, %rdi
callq 0x1bf10
movq (%r15), %rax
movq %r15, %rdi
movq %rbx, %rsi
callq *(%rax)
movq %rax, %r15
leaq 0x1b8(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x1a8(%rsp), %rdi
callq 0xabf6
movq (%r15), %rax
leaq 0x1a8(%rsp), %rdx
movq %r15, %rdi
movq %r15, %rsi
callq *0x20(%rax)
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x26f34
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x136a0(%rip), %rax     # 0x3a5db
cmpb $0x0, (%rax)
je 0x273c1
movq %rbx, %rdi
callq 0x175e7
leaq 0x1361d(%rip), %rax     # 0x3a570
movq (%rax), %rdi
callq 0x176b6
movq %r15, %rdi
callq 0x17799
jmp 0x273c1
cmpb $0x2d, %cl
jne 0x27366
cmpb $0x70, 0x1(%rax)
jne 0x27154
callq 0x1a438
callq 0x1a458
callq 0x1a448
movq 0x8(%r15), %rax
cmpb $0x30, 0x2(%rax)
jne 0x26fa8
callq 0x1a440
callq 0x1a450
callq 0x1a450
callq 0x1a470
movl $0x48, %edi
callq 0x8250
movq %rax, %r15
leaq 0x198(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x188(%rsp), %rdi
callq 0xabf6
leaq 0x178(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x168(%rsp), %rdi
callq 0xabf6
leaq 0x158(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x148(%rsp), %rdi
callq 0xabf6
leaq 0x148(%rsp), %rdi
callq 0x27c45
leaq 0x188(%rsp), %rsi
leaq 0x168(%rsp), %rdx
movq %r15, %rdi
movl %eax, %ecx
callq 0x18d22
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x27063
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x168(%rsp), %rdi
cmpq %r13, %rdi
je 0x27080
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x30(%rsp), %r13
je 0x270a2
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rsp, %rdi
movq %r15, %rsi
callq 0x18da6
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x12f13(%rip), %rdi     # 0x39fd0
callq 0x82c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x270dd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x1, %edi
callq 0x8250
movq %rax, %r14
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x128(%rsp), %rdi
callq 0xabf6
leaq 0x128(%rsp), %rsi
movq %r14, %rdi
callq 0x10928
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x2713a
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x10f24
movq %rax, %rdi
callq 0x179ac
cmpl $0x2d, %eax
jne 0x2713a
jmp 0x273c1
cmpb $0x2d, %cl
jne 0x27366
cmpb $0x61, 0x1(%rax)
jne 0x27366
callq 0x1a438
callq 0x1a468
movq 0x8(%r15), %rax
cmpb $0x30, 0x2(%rax)
jne 0x2718f
callq 0x1a440
callq 0x1a450
callq 0x1a450
callq 0x1a470
movl $0x48, %edi
callq 0x8250
movq %rax, %r15
leaq 0x118(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x108(%rsp), %rdi
callq 0xabf6
leaq 0xf8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0xabf6
leaq 0xd8(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0xc8(%rsp), %rdi
callq 0xabf6
leaq 0xc8(%rsp), %rdi
callq 0x27c45
leaq 0x108(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
movq %r15, %rdi
movl %eax, %ecx
callq 0x18d22
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2724a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x27267
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x108(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x30(%rsp), %r13
je 0x27289
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rsp, %rdi
movq %r15, %rsi
callq 0x18da6
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x12d2c(%rip), %rdi     # 0x39fd0
callq 0x82c0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x272c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x1, %edi
callq 0x8250
movq %rax, %r14
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0xa8(%rsp), %rdi
callq 0xabf6
leaq 0xa8(%rsp), %rsi
movq %r14, %rdi
callq 0x10928
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x27321
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x10, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0xb910
movq %rbx, %rdi
callq 0xb914
leaq 0x13293(%rip), %rcx     # 0x3a5db
cmpb $0x0, (%rcx)
je 0x273c1
movq %rax, %rdi
callq 0x175e7
leaq 0x13214(%rip), %rax     # 0x3a570
movq (%rax), %rdi
callq 0x176b6
jmp 0x273c1
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x88(%rsp), %rdi
callq 0xabf6
leaq 0x88(%rsp), %rdi
callq 0x27c45
movq 0x12c33(%rip), %rdi     # 0x39fd0
movl %eax, %esi
callq 0x8400
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x273c1
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x273dd
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x273f9
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x27410
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
addq $0x2e8, %rsp            # imm = 0x2E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x12bc7(%rip), %rdi     # 0x39ff0
leaq 0x4835(%rip), %rsi      # 0x2bc65
movl $0x23, %edx
callq 0x82c0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x12ba5(%rip), %rdi     # 0x39ff0
callq 0x82c0
movq %rax, %r14
leaq 0x327a(%rip), %rsi      # 0x2a6d4
movl $0x1, %edx
movq %rax, %rdi
callq 0x82c0
movq %r14, %rdi
callq 0x8120
jmp 0x278a4
jmp 0x27ab6
movq %rax, %rdi
callq 0x80e0
movq 0x12b68(%rip), %rdi     # 0x39ff0
leaq 0x4823(%rip), %rsi      # 0x2bcb2
movl $0x17, %edx
callq 0x82c0
movq 0x12b50(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %r14
movl $0x10, %esi
movq %rbx, %rdi
callq 0x8260
jmp 0x274cc
movq %rax, %r14
movq %r14, %rdi
callq 0x80e0
movq 0x12b15(%rip), %rdi     # 0x39ff0
leaq 0x47c0(%rip), %rsi      # 0x2bca2
movl $0xf, %edx
callq 0x82c0
movq 0x12afd(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x27522
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x27522
movq %rax, %rbx
movl $0x1, %esi
movq %r14, %rdi
callq 0x8260
jmp 0x27534
movq %rax, %rbx
movq %rbx, %rdi
callq 0x80e0
movq 0x12aad(%rip), %rdi     # 0x39ff0
leaq 0x4749(%rip), %rsi      # 0x2bc93
movl $0xe, %edx
callq 0x82c0
movq 0x12a95(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
jmp 0x27992
jmp 0x27ab6
movq %rax, %rbx
jmp 0x275b0
movq %rax, %rbx
jmp 0x275cd
jmp 0x279c0
jmp 0x27ab6
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r14, %rdi
je 0x275b0
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x275cd
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x108(%rsp), %rdi
cmpq %r12, %rdi
je 0x27a2c
movq 0x118(%rsp), %rsi
jmp 0x27a24
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x2761d
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x2761d
movq %rax, %rbx
movl $0x1, %esi
movq %r14, %rdi
callq 0x8260
jmp 0x2762f
movq %rax, %rbx
movq %rbx, %rdi
callq 0x80e0
movq 0x129b2(%rip), %rdi     # 0x39ff0
leaq 0x464e(%rip), %rsi      # 0x2bc93
movl $0xe, %edx
callq 0x82c0
movq 0x1299a(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
jmp 0x27992
jmp 0x27ab6
movq %rax, %rbx
jmp 0x2769e
movq %rax, %rbx
jmp 0x276bb
jmp 0x279c0
jmp 0x27ab6
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r14, %rdi
je 0x2769e
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x168(%rsp), %rdi
cmpq %r13, %rdi
je 0x276bb
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x27a2c
movq 0x198(%rsp), %rsi
jmp 0x27a24
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2770b
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x2770b
movq %rax, %rbx
movq %rbx, %rdi
callq 0x80e0
movq 0x128d6(%rip), %rdi     # 0x39ff0
leaq 0x45d4(%rip), %rsi      # 0x2bcf5
movl $0x10, %edx
callq 0x82c0
movq 0x128be(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rdi
callq 0x80e0
movq 0x128a5(%rip), %rdi     # 0x39ff0
leaq 0x458f(%rip), %rsi      # 0x2bce1
movl $0x13, %edx
callq 0x82c0
movq 0x1288d(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
movl $0x10, %esi
movq %r15, %rdi
callq 0x8260
jmp 0x2778f
movq %rax, %rbx
movq %rbx, %rdi
callq 0x80e0
movq 0x12852(%rip), %rdi     # 0x39ff0
leaq 0x4525(%rip), %rsi      # 0x2bcca
movl $0x16, %edx
callq 0x82c0
movq 0x1283a(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rdi
callq 0x80e0
movq 0x12821(%rip), %rdi     # 0x39ff0
leaq 0x44dc(%rip), %rsi      # 0x2bcb2
movl $0x17, %edx
callq 0x82c0
movq 0x12809(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %r14
movl $0x10, %esi
movq %rbx, %rdi
callq 0x8260
jmp 0x27813
movq %rax, %r14
movq %r14, %rdi
callq 0x80e0
movq 0x127ce(%rip), %rdi     # 0x39ff0
leaq 0x4479(%rip), %rsi      # 0x2bca2
movl $0xf, %edx
callq 0x82c0
movq 0x127b6(%rip), %rdi     # 0x39ff0
callq 0x8120
jmp 0x278a4
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
cmpq %r12, %rdi
je 0x27866
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x27866
movq %rax, %rbx
movl $0x1, %esi
movq %r15, %rdi
callq 0x8260
jmp 0x27878
movq %rax, %rbx
movq %rbx, %rdi
callq 0x80e0
movq 0x12769(%rip), %rdi     # 0x39ff0
leaq 0x4405(%rip), %rsi      # 0x2bc93
movl $0xe, %edx
callq 0x82c0
movq 0x12751(%rip), %rdi     # 0x39ff0
callq 0x8120
movl $0x1, %edi
callq 0x82e0
jmp 0x27992
jmp 0x27ab6
movq %rax, %rbx
jmp 0x2790e
movq %rax, %rbx
jmp 0x2792b
jmp 0x279c0
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2790e
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x208(%rsp), %rdi
cmpq %r13, %rdi
je 0x2792b
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x228(%rsp), %rdi
cmpq %r12, %rdi
je 0x27a2c
movq 0x238(%rsp), %rsi
jmp 0x27a24
movq %rax, %rbx
callq 0x83d0
jmp 0x27ab9
jmp 0x27ab6
movq %rax, %rbx
movq 0x248(%rsp), %rdi
cmpq %r15, %rdi
je 0x27980
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x27980
movq %rax, %rbx
movl $0x1, %esi
movq %r14, %rdi
jmp 0x27a57
jmp 0x27ab6
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27ab9
movq 0x10(%rsp), %rsi
jmp 0x27a54
jmp 0x27ab6
movq %rax, %rbx
jmp 0x279f2
movq %rax, %rbx
jmp 0x27a0f
movq %rax, %rbx
jmp 0x27a2c
jmp 0x27ab6
movq %rax, %rdi
callq 0x27f11
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %r14, %rdi
je 0x279f2
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x288(%rsp), %rdi
cmpq %r13, %rdi
je 0x27a0f
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x27a2c
movq 0x2b8(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x48, %esi
movq %r15, %rdi
jmp 0x27a57
jmp 0x27a8e
jmp 0x27ab6
jmp 0x27a94
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x27ab9
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x27ab9
movl %ebx, %r15d
movq %r13, %rbx
movq %rax, %r14
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27a97
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0x27a97
jmp 0x27a8e
jmp 0x27a8e
movl %ebx, %r15d
movq %r13, %rbx
movq %rax, %r14
movq %r14, %rdi
callq 0x80e0
movq %rbx, %r13
callq 0x83d0
movl %r15d, %ebx
movq 0x40(%rsp), %r15
jmp 0x26a37
jmp 0x27ab6
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x27ad5
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x27af1
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27b0d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420