// File: sudocode1[P]radio/compiler.cpp
// Function: main
int main() {
    std::string input;
    std::cout << "enter radio filename: ";
    std::getline(std::cin, input);
    std::cout << input << std::endl;
    std::vector <std::string> lines;{};
    std::string currentLine;
    std::ifstream file(input);
    std::vector<std::string> structs{};



    while (std::getline (file, currentLine)) {
        if (currentLine.rfind("@incl", 0) == 0) {
            readIncl(currentLine.substr(6), &lines);
        } else {
            lines.push_back(currentLine);
        }
        
    };

    file.close();

    std::ofstream writeFile("output.c");

    writeFile << "#include <stdio.h>\n";
    writeFile << "#include <string.h>\n";
    writeFile << "int main(){\n";

    int i=1;
    for (std::string line : lines) {
        std::vector<std::string> sep = split(line, ' ');

        if (line.rfind("out!", 0) == 0) {
            writeFile << "printf(" << line.substr(5) << ");\nprintf(\"\\n\");\n"; 
        } 
        else if (line.rfind("out", 0) == 0) {
            writeFile << "printf(" << line.substr(4) << ");\n"; 
        } 
        else if (line.rfind(";;", 0) == 0) {
            if (line.size() > 2) {
                writeFile << "//" << line.substr(2) << "\n";
            } else {
                writeFile << "//\n";
            }
        }
        else if (line.rfind("@structure", 0) == 0) {
            writeFile << "typedef struct {\n";
        }
        else if (line.rfind("@struct_access_property", 0) == 0) {
            std::string placeholder = "\%s";
            
            if (sep[1] == "str") {
                placeholder = "\%s";
            } else if (sep[1] == "int" || sep[1] == "float" || sep[1] == "double") {
                placeholder = "\%d";
            }

            writeFile << "printf(\"" << placeholder << "\"," << sep[2] << ");\n";
        }
        else if (line.rfind("@strout", 0) == 0) {
            writeFile << "printf(\"%s\", " << line.substr(8) << ");\n"; 
        } 
        else if (line.rfind("@intout", 0) == 0) {
            writeFile << "printf(\"%d\", " << line.substr(8) << ");\n"; 
        } 
        else if (line.rfind("@floatout", 0) == 0) {
            writeFile << "printf(\"%f\", " << line.substr(9) << ");\n"; 
        }
        else if (line.rfind("@!define", 0) == 0) {
            writeFile << sep[1] << " " << sep[2] << "() {\n";
        }
        else if (line.rfind("@define", 0) == 0) {
            writeFile << sep[1] << " " << sep[2] << " (";
        }
        else if (line.rfind("@param", 0) == 0) {
            writeFile << sep[1] << " " << sep[2] << ",";
        }
        else if (line.rfind("@finalparam", 0) == 0) {
            writeFile << sep[1] << " " << sep[2] << "){\n";
        }
        else if (line.rfind("@call", 0) == 0) {
            writeFile << sep[1] << "(" << line.substr(sep[0].size() + 1 + sep[1].size() + 1) << ");\n";
        }
        else if (line.rfind("@!call", 0) == 0) {
            writeFile << sep[1] << "();\n";
        }
        else if (line.rfind("@str", 0) == 0) {
            writeFile << "char* " << line.substr(5) << ";\n"; 
        } 
        else if (line.rfind("@int", 0) == 0) {
            writeFile << "int " << line.substr(5) << ";\n"; 
        } 
        else if (line.rfind("@float", 0) == 0) {
            writeFile << "float " << line.substr(7) << ";\n"; 
        }
        else if (line.rfind("@double", 0) == 0) {
            writeFile << "double " << line.substr(8) << ";\n"; 
        }
        else if (line.rfind("@redefine", 0) == 0) {
            writeFile << sep[1] << " = " << line.substr(sep[0].size() + sep[1].size() + 1) << ";\n"; 
        }
        else if (line.rfind("end", 0) == 0) {
            writeFile << "}\n";
        }
        else if (line.rfind("if", 0) == 0) {
            writeFile << "if(" << line.substr(3) << "){\n";
        }
        else if (line.rfind("else if", 0) == 0) {
            writeFile << "else if(" << line.substr(8) << "){\n";
        }
        else if (line.rfind("elif", 0) == 0) {
            writeFile << "else if(" << line.substr(5) << "){\n";
        }
        else if (line.rfind("else", 0) == 0) {
            writeFile << "else {\n";
        }
        else if (line.rfind("while", 0) == 0) {
            writeFile << "while(" << line.substr(6) << "){\n";
        }
        else if (line.rfind("for", 0) == 0) {
            writeFile << "for(" << line.substr(4) << "){\n";
        }
        else if (line.rfind("@nl", 0) == 0) {
            writeFile << "printf(\"\\n\");\n";
        }
        else if (line.rfind("@property", 0) == 0) {
            if (sep[1] == "str") {
                writeFile << "char * " << sep[2] << ";\n";
            } else if (sep[1] == "float") {
                writeFile << "float *" << sep[2] << ";\n";
            } else if (sep[1] == "double") {
                writeFile << "double * " << sep[2] << ";\n";
            } else if (sep[1] == "int") {
                writeFile << "int " << sep[2] << ";\n";
            }
        }
        else if (line.rfind("@create_struct", 0) == 0) {
            writeFile << sep[1] << " " << sep[2] << ";\n";
        }
        else if (line.rfind("@endstructure", 0) == 0) {
            writeFile << "} " << sep[1] << ";\n";
            structs.push_back(sep[1]);
        } 
        else {
            std::cout << "ERR: Line " << i << "\n" << line << "\n";
            break;
        }

        i++;
    }
    writeFile << "return 0;\n}";
    writeFile.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb10, %rsp            # imm = 0xB10
movl $0x0, -0x4(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x2270
movq 0x688e(%rip), %rdi      # 0x8fd0
leaq 0x38bb(%rip), %rsi      # 0x6004
callq 0x21a0
jmp 0x2750
movq 0x6889(%rip), %rdi      # 0x8fe0
leaq -0x28(%rbp), %rsi
callq 0x2040
jmp 0x2762
movq 0x6867(%rip), %rdi      # 0x8fd0
leaq -0x28(%rbp), %rsi
callq 0x2190
movq %rax, -0x780(%rbp)
jmp 0x277b
movq -0x780(%rbp), %rdi
movq 0x6837(%rip), %rsi      # 0x8fc0
callq 0x21e0
jmp 0x2790
leaq -0x50(%rbp), %rdi
callq 0x45c0
leaq -0x70(%rbp), %rdi
callq 0x2270
leaq -0x278(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movl $0x8, %edx
callq 0x22d0
jmp 0x27b9
leaq -0x290(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x20e0
leaq -0x290(%rbp), %rdi
callq 0x45c0
leaq -0x278(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x2040
movq %rax, -0x788(%rbp)
jmp 0x27f1
movq -0x788(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x2250
movb %al, -0x789(%rbp)
jmp 0x280f
movb -0x789(%rbp), %al
testb $0x1, %al
jne 0x281e
jmp 0x28f0
leaq 0x37f6(%rip), %rsi      # 0x601b
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
callq 0x22f0
movq %rax, -0x798(%rbp)
jmp 0x283b
movq -0x798(%rbp), %rax
cmpq $0x0, %rax
jne 0x28da
leaq -0x2b0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl $0x6, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x286a
leaq -0x2b0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2610
jmp 0x287c
leaq -0x2b0(%rbp), %rdi
callq 0x2100
jmp 0x28eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x45a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x4590
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x4578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x2100
jmp 0x4578
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x4600
jmp 0x28e9
jmp 0x28eb
jmp 0x27d8
leaq -0x278(%rbp), %rdi
callq 0x2050
jmp 0x28fe
leaq 0x371c(%rip), %rsi      # 0x6021
leaq -0x4b0(%rbp), %rdi
movl $0x10, %edx
callq 0x2210
jmp 0x2918
leaq 0x370b(%rip), %rsi      # 0x602a
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x292d
leaq 0x370a(%rip), %rsi      # 0x603e
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x2942
leaq 0x370a(%rip), %rsi      # 0x6053
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x2957
movl $0x1, -0x4b4(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x4c0(%rbp), %rdi
callq 0x46d0
movq %rax, -0x4c8(%rbp)
movq -0x4c0(%rbp), %rdi
callq 0x4700
movq %rax, -0x4d0(%rbp)
leaq -0x4c8(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x4730
testb $0x1, %al
jne 0x29ae
jmp 0x44fe
leaq -0x4c8(%rbp), %rdi
callq 0x4770
movq %rax, %rsi
leaq -0x4f0(%rbp), %rdi
callq 0x20b0
jmp 0x29cb
leaq -0x528(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x20b0
jmp 0x29e0
leaq -0x508(%rbp), %rdi
leaq -0x528(%rbp), %rsi
movl $0x20, %edx
callq 0x24a0
jmp 0x29fa
leaq -0x528(%rbp), %rdi
callq 0x2100
leaq 0x3653(%rip), %rsi      # 0x6060
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x7a0(%rbp)
jmp 0x2a26
movq -0x7a0(%rbp), %rax
cmpq $0x0, %rax
jne 0x2b23
leaq 0x3627(%rip), %rsi      # 0x6065
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x7a8(%rbp)
jmp 0x2a53
leaq -0x548(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x5, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x2a74
movq -0x7a8(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x2190
movq %rax, -0x7b0(%rbp)
jmp 0x2a90
movq -0x7b0(%rbp), %rdi
leaq 0x35cf(%rip), %rsi      # 0x606d
callq 0x21a0
jmp 0x2aa5
leaq -0x548(%rbp), %rdi
callq 0x2100
jmp 0x447c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x456c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x44f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x528(%rbp), %rdi
callq 0x2100
jmp 0x44f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x44e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x35aa(%rip), %rsi      # 0x60d4
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x7b8(%rbp)
jmp 0x2b43
movq -0x7b8(%rbp), %rax
cmpq $0x0, %rax
jne 0x2bf0
leaq 0x350a(%rip), %rsi      # 0x6065
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x7c0(%rbp)
jmp 0x2b70
leaq -0x568(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x2b91
movq -0x7c0(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x2190
movq %rax, -0x7c8(%rbp)
jmp 0x2bad
movq -0x7c8(%rbp), %rdi
leaq 0x34c0(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x2bc2
leaq -0x568(%rbp), %rdi
callq 0x2100
jmp 0x447a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x3488(%rip), %rsi      # 0x607f
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x7d0(%rbp)
jmp 0x2c10
movq -0x7d0(%rbp), %rax
cmpq $0x0, %rax
jne 0x2cec
leaq -0x4f0(%rbp), %rdi
callq 0x2120
cmpq $0x2, %rax
jbe 0x2cd0
leaq 0x3444(%rip), %rsi      # 0x6082
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x7d8(%rbp)
jmp 0x2c53
leaq -0x588(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x2, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x2c74
movq -0x7d8(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x2190
movq %rax, -0x7e0(%rbp)
jmp 0x2c90
movq -0x7e0(%rbp), %rdi
leaq 0x33e9(%rip), %rsi      # 0x6087
callq 0x21a0
jmp 0x2ca5
leaq -0x588(%rbp), %rdi
callq 0x2100
jmp 0x2ce7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x588(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x33ae(%rip), %rsi      # 0x6085
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x2ce5
jmp 0x2ce7
jmp 0x4478
leaq 0x3396(%rip), %rsi      # 0x6089
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x7e8(%rbp)
jmp 0x2d0c
movq -0x7e8(%rbp), %rax
cmpq $0x0, %rax
jne 0x2d33
leaq 0x3374(%rip), %rsi      # 0x6094
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x2d2e
jmp 0x4476
leaq 0x336c(%rip), %rsi      # 0x60a6
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x7f0(%rbp)
jmp 0x2d53
movq -0x7f0(%rbp), %rax
cmpq $0x0, %rax
jne 0x2f7f
leaq -0x5a9(%rbp), %rdi
movq %rdi, -0x7f8(%rbp)
callq 0x2320
movq -0x7f8(%rbp), %rdx
leaq 0x3339(%rip), %rsi      # 0x60be
leaq -0x5a8(%rbp), %rdi
callq 0x4790
jmp 0x2d93
leaq -0x5a9(%rbp), %rdi
callq 0x2200
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x339a(%rip), %rsi      # 0x6154
callq 0x4840
movb %al, -0x7f9(%rbp)
jmp 0x2dc7
movb -0x7f9(%rbp), %al
testb $0x1, %al
jne 0x2dd3
jmp 0x2e27
leaq 0x32e4(%rip), %rsi      # 0x60be
leaq -0x5a8(%rbp), %rdi
callq 0x2260
jmp 0x2de8
jmp 0x2edc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x5a9(%rbp), %rdi
callq 0x2200
jmp 0x44e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x331e(%rip), %rsi      # 0x6160
callq 0x4840
movb %al, -0x7fa(%rbp)
jmp 0x2e4f
movb -0x7fa(%rbp), %al
testb $0x1, %al
jne 0x2ec3
jmp 0x2e5b
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x32f4(%rip), %rsi      # 0x616a
callq 0x4840
movb %al, -0x7fb(%rbp)
jmp 0x2e83
movb -0x7fb(%rbp), %al
testb $0x1, %al
jne 0x2ec3
jmp 0x2e8f
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x32ce(%rip), %rsi      # 0x6178
callq 0x4840
movb %al, -0x7fc(%rbp)
jmp 0x2eb7
movb -0x7fc(%rbp), %al
testb $0x1, %al
jne 0x2ec3
jmp 0x2eda
leaq 0x31f7(%rip), %rsi      # 0x60c1
leaq -0x5a8(%rbp), %rdi
callq 0x2260
jmp 0x2ed8
jmp 0x2eda
jmp 0x2edc
leaq 0x31e1(%rip), %rsi      # 0x60c4
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x808(%rbp)
jmp 0x2ef8
movq -0x808(%rbp), %rdi
leaq -0x5a8(%rbp), %rsi
callq 0x2190
movq %rax, -0x810(%rbp)
jmp 0x2f14
movq -0x810(%rbp), %rdi
leaq 0x31ab(%rip), %rsi      # 0x60cd
callq 0x21a0
movq %rax, -0x818(%rbp)
jmp 0x2f30
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0x818(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0x820(%rbp)
jmp 0x2f59
movq -0x820(%rbp), %rdi
leaq 0x3114(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x2f6e
leaq -0x5a8(%rbp), %rdi
callq 0x2100
jmp 0x4474
leaq 0x314a(%rip), %rsi      # 0x60d0
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x828(%rbp)
jmp 0x2f9f
movq -0x828(%rbp), %rax
cmpq $0x0, %rax
jne 0x304c
leaq 0x3121(%rip), %rsi      # 0x60d8
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x830(%rbp)
jmp 0x2fcc
leaq -0x5d0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x8, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x2fed
movq -0x830(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x2190
movq %rax, -0x838(%rbp)
jmp 0x3009
movq -0x838(%rbp), %rdi
leaq 0x3064(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x301e
leaq -0x5d0(%rbp), %rdi
callq 0x2100
jmp 0x4472
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x3093(%rip), %rsi      # 0x60e6
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x840(%rbp)
jmp 0x306c
movq -0x840(%rbp), %rax
cmpq $0x0, %rax
jne 0x3119
leaq 0x306a(%rip), %rsi      # 0x60ee
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x848(%rbp)
jmp 0x3099
leaq -0x5f0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x8, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x30ba
movq -0x848(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0x2190
movq %rax, -0x850(%rbp)
jmp 0x30d6
movq -0x850(%rbp), %rdi
leaq 0x2f97(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x30eb
leaq -0x5f0(%rbp), %rdi
callq 0x2100
jmp 0x4470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2fdc(%rip), %rsi      # 0x60fc
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x858(%rbp)
jmp 0x3139
movq -0x858(%rbp), %rax
cmpq $0x0, %rax
jne 0x31e6
leaq 0x2fb5(%rip), %rsi      # 0x6106
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x860(%rbp)
jmp 0x3166
leaq -0x610(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x9, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3187
movq -0x860(%rbp), %rdi
leaq -0x610(%rbp), %rsi
callq 0x2190
movq %rax, -0x868(%rbp)
jmp 0x31a3
movq -0x868(%rbp), %rdi
leaq 0x2eca(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x31b8
leaq -0x610(%rbp), %rdi
callq 0x2100
jmp 0x446e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2f27(%rip), %rsi      # 0x6114
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x870(%rbp)
jmp 0x3206
movq -0x870(%rbp), %rax
cmpq $0x0, %rax
jne 0x329f
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x878(%rbp)
jmp 0x3240
movq -0x878(%rbp), %rdi
leaq 0x2fad(%rip), %rsi      # 0x61fb
callq 0x21a0
movq %rax, -0x880(%rbp)
jmp 0x325c
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0x880(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0x888(%rbp)
jmp 0x3285
movq -0x888(%rbp), %rdi
leaq 0x2e8a(%rip), %rsi      # 0x611d
callq 0x21a0
jmp 0x329a
jmp 0x446c
leaq 0x2e7d(%rip), %rsi      # 0x6123
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x890(%rbp)
jmp 0x32bf
movq -0x890(%rbp), %rax
cmpq $0x0, %rax
jne 0x3358
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x898(%rbp)
jmp 0x32f9
movq -0x898(%rbp), %rdi
leaq 0x2ef4(%rip), %rsi      # 0x61fb
callq 0x21a0
movq %rax, -0x8a0(%rbp)
jmp 0x3315
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0x8a0(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0x8a8(%rbp)
jmp 0x333e
movq -0x8a8(%rbp), %rdi
leaq 0x2ddf(%rip), %rsi      # 0x612b
callq 0x21a0
jmp 0x3353
jmp 0x446a
leaq 0x2dcf(%rip), %rsi      # 0x612e
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x8b0(%rbp)
jmp 0x3378
movq -0x8b0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3411
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x8b8(%rbp)
jmp 0x33b2
movq -0x8b8(%rbp), %rdi
leaq 0x2e3b(%rip), %rsi      # 0x61fb
callq 0x21a0
movq %rax, -0x8c0(%rbp)
jmp 0x33ce
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0x8c0(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0x8c8(%rbp)
jmp 0x33f7
movq -0x8c8(%rbp), %rdi
leaq 0x2cc9(%rip), %rsi      # 0x60ce
callq 0x21a0
jmp 0x340c
jmp 0x4468
leaq 0x2d1d(%rip), %rsi      # 0x6135
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x8d0(%rbp)
jmp 0x3431
movq -0x8d0(%rbp), %rax
cmpq $0x0, %rax
jne 0x34ca
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x8d8(%rbp)
jmp 0x346b
movq -0x8d8(%rbp), %rdi
leaq 0x2d82(%rip), %rsi      # 0x61fb
callq 0x21a0
movq %rax, -0x8e0(%rbp)
jmp 0x3487
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0x8e0(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0x8e8(%rbp)
jmp 0x34b0
movq -0x8e8(%rbp), %rdi
leaq 0x2b9e(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x34c5
jmp 0x4466
leaq 0x2c70(%rip), %rsi      # 0x6141
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x8f0(%rbp)
jmp 0x34ea
movq -0x8f0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3609
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x8f8(%rbp)
jmp 0x3524
movq -0x8f8(%rbp), %rdi
leaq 0x2bfa(%rip), %rsi      # 0x612c
callq 0x21a0
movq %rax, -0x900(%rbp)
jmp 0x3540
xorl %eax, %eax
movl %eax, %esi
leaq -0x508(%rbp), %rdi
movq %rdi, -0x910(%rbp)
callq 0x4870
movq %rax, %rdi
callq 0x2120
movq -0x910(%rbp), %rdi
movq %rax, -0x908(%rbp)
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
callq 0x2120
movq %rax, %rcx
movq -0x908(%rbp), %rax
leaq 0x2(%rax,%rcx), %rdx
leaq -0x630(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movq $-0x1, %rcx
callq 0x21d0
jmp 0x35aa
movq -0x900(%rbp), %rdi
leaq -0x630(%rbp), %rsi
callq 0x2190
movq %rax, -0x918(%rbp)
jmp 0x35c6
movq -0x918(%rbp), %rdi
leaq 0x2aa7(%rip), %rsi      # 0x607b
callq 0x21a0
jmp 0x35db
leaq -0x630(%rbp), %rdi
callq 0x2100
jmp 0x4464
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2b37(%rip), %rsi      # 0x6147
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x920(%rbp)
jmp 0x3629
movq -0x920(%rbp), %rax
cmpq $0x0, %rax
jne 0x3679
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x928(%rbp)
jmp 0x365f
movq -0x928(%rbp), %rdi
leaq 0x2ae1(%rip), %rsi      # 0x614e
callq 0x21a0
jmp 0x3674
jmp 0x4462
leaq 0x2ad3(%rip), %rsi      # 0x6153
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x930(%rbp)
jmp 0x3699
movq -0x930(%rbp), %rax
cmpq $0x0, %rax
jne 0x3746
leaq 0x2aa7(%rip), %rsi      # 0x6158
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x938(%rbp)
jmp 0x36c6
leaq -0x650(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x5, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x36e7
movq -0x938(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x2190
movq %rax, -0x940(%rbp)
jmp 0x3703
movq -0x940(%rbp), %rdi
leaq 0x296b(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x3718
leaq -0x650(%rbp), %rdi
callq 0x2100
jmp 0x4460
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x650(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2a12(%rip), %rsi      # 0x615f
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x948(%rbp)
jmp 0x3766
movq -0x948(%rbp), %rax
cmpq $0x0, %rax
jne 0x3813
leaq 0x29e6(%rip), %rsi      # 0x6164
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x950(%rbp)
jmp 0x3793
leaq -0x670(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x5, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x37b4
movq -0x950(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0x2190
movq %rax, -0x958(%rbp)
jmp 0x37d0
movq -0x958(%rbp), %rdi
leaq 0x289e(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x37e5
leaq -0x670(%rbp), %rdi
callq 0x2100
jmp 0x445e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x670(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x294f(%rip), %rsi      # 0x6169
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x960(%rbp)
jmp 0x3833
movq -0x960(%rbp), %rax
cmpq $0x0, %rax
jne 0x38e0
leaq 0x2925(%rip), %rsi      # 0x6170
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x968(%rbp)
jmp 0x3860
leaq -0x690(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x7, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3881
movq -0x968(%rbp), %rdi
leaq -0x690(%rbp), %rsi
callq 0x2190
movq %rax, -0x970(%rbp)
jmp 0x389d
movq -0x970(%rbp), %rdi
leaq 0x27d1(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x38b2
leaq -0x690(%rbp), %rdi
callq 0x2100
jmp 0x445c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x690(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2890(%rip), %rsi      # 0x6177
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x978(%rbp)
jmp 0x3900
movq -0x978(%rbp), %rax
cmpq $0x0, %rax
jne 0x39ad
leaq 0x2867(%rip), %rsi      # 0x617f
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x980(%rbp)
jmp 0x392d
leaq -0x6b0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x8, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x394e
movq -0x980(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x2190
movq %rax, -0x988(%rbp)
jmp 0x396a
movq -0x988(%rbp), %rdi
leaq 0x2704(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x397f
leaq -0x6b0(%rbp), %rdi
callq 0x2100
jmp 0x445a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x27d3(%rip), %rsi      # 0x6187
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x990(%rbp)
jmp 0x39cd
movq -0x990(%rbp), %rax
cmpq $0x0, %rax
jne 0x3aec
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0x998(%rbp)
jmp 0x3a07
movq -0x998(%rbp), %rdi
leaq 0x277c(%rip), %rsi      # 0x6191
callq 0x21a0
movq %rax, -0x9a0(%rbp)
jmp 0x3a23
xorl %eax, %eax
movl %eax, %esi
leaq -0x508(%rbp), %rdi
movq %rdi, -0x9b0(%rbp)
callq 0x4870
movq %rax, %rdi
callq 0x2120
movq -0x9b0(%rbp), %rdi
movq %rax, -0x9a8(%rbp)
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
callq 0x2120
movq %rax, %rcx
movq -0x9a8(%rbp), %rax
leaq 0x1(%rax,%rcx), %rdx
leaq -0x6d0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3a8d
movq -0x9a0(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x2190
movq %rax, -0x9b8(%rbp)
jmp 0x3aa9
movq -0x9b8(%rbp), %rdi
leaq 0x25c5(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x3abe
leaq -0x6d0(%rbp), %rdi
callq 0x2100
jmp 0x4458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x6d0(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x26a2(%rip), %rsi      # 0x6195
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x9c0(%rbp)
jmp 0x3b0c
movq -0x9c0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3b33
leaq 0x2679(%rip), %rsi      # 0x6199
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x3b2e
jmp 0x4456
leaq 0x2667(%rip), %rsi      # 0x61a1
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x9c8(%rbp)
jmp 0x3b53
movq -0x9c8(%rbp), %rax
cmpq $0x0, %rax
jne 0x3c00
leaq 0x263e(%rip), %rsi      # 0x61a9
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x9d0(%rbp)
jmp 0x3b80
leaq -0x6f0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x3, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3ba1
movq -0x9d0(%rbp), %rdi
leaq -0x6f0(%rbp), %rsi
callq 0x2190
movq %rax, -0x9d8(%rbp)
jmp 0x3bbd
movq -0x9d8(%rbp), %rdi
leaq 0x2491(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x3bd2
leaq -0x6f0(%rbp), %rdi
callq 0x2100
jmp 0x4454
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x6f0(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2595(%rip), %rsi      # 0x619c
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x9e0(%rbp)
jmp 0x3c20
movq -0x9e0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3ccd
leaq 0x256c(%rip), %rsi      # 0x61a4
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0x9e8(%rbp)
jmp 0x3c4d
leaq -0x710(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x8, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3c6e
movq -0x9e8(%rbp), %rdi
leaq -0x710(%rbp), %rsi
callq 0x2190
movq %rax, -0x9f0(%rbp)
jmp 0x3c8a
movq -0x9f0(%rbp), %rdi
leaq 0x23c4(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x3c9f
leaq -0x710(%rbp), %rdi
callq 0x2100
jmp 0x4452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x24d9(%rip), %rsi      # 0x61ad
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0x9f8(%rbp)
jmp 0x3ced
movq -0x9f8(%rbp), %rax
cmpq $0x0, %rax
jne 0x3d9a
leaq 0x249f(%rip), %rsi      # 0x61a4
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa00(%rbp)
jmp 0x3d1a
leaq -0x730(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x5, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3d3b
movq -0xa00(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x2190
movq %rax, -0xa08(%rbp)
jmp 0x3d57
movq -0xa08(%rbp), %rdi
leaq 0x22f7(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x3d6c
leaq -0x730(%rbp), %rdi
callq 0x2100
jmp 0x4450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2411(%rip), %rsi      # 0x61b2
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xa10(%rbp)
jmp 0x3dba
movq -0xa10(%rbp), %rax
cmpq $0x0, %rax
jne 0x3de1
leaq 0x23e9(%rip), %rsi      # 0x61b7
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x3ddc
jmp 0x444e
leaq 0x23d7(%rip), %rsi      # 0x61bf
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xa18(%rbp)
jmp 0x3e01
movq -0xa18(%rbp), %rax
cmpq $0x0, %rax
jne 0x3eae
leaq 0x23ac(%rip), %rsi      # 0x61c5
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa20(%rbp)
jmp 0x3e2e
leaq -0x750(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x6, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3e4f
movq -0xa20(%rbp), %rdi
leaq -0x750(%rbp), %rsi
callq 0x2190
movq %rax, -0xa28(%rbp)
jmp 0x3e6b
movq -0xa28(%rbp), %rdi
leaq 0x21e3(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x3e80
leaq -0x750(%rbp), %rdi
callq 0x2100
jmp 0x444c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x750(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2317(%rip), %rsi      # 0x61cc
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xa30(%rbp)
jmp 0x3ece
movq -0xa30(%rbp), %rax
cmpq $0x0, %rax
jne 0x3f7b
leaq 0x22ea(%rip), %rsi      # 0x61d0
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa38(%rbp)
jmp 0x3efb
leaq -0x770(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
movl $0x4, %edx
movq $-0x1, %rcx
callq 0x21d0
jmp 0x3f1c
movq -0xa38(%rbp), %rdi
leaq -0x770(%rbp), %rsi
callq 0x2190
movq %rax, -0xa40(%rbp)
jmp 0x3f38
movq -0xa40(%rbp), %rdi
leaq 0x2116(%rip), %rsi      # 0x605c
callq 0x21a0
jmp 0x3f4d
leaq -0x770(%rbp), %rdi
callq 0x2100
jmp 0x444a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x770(%rbp), %rdi
callq 0x2100
jmp 0x44e4
leaq 0x2253(%rip), %rsi      # 0x61d5
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xa48(%rbp)
jmp 0x3f9b
movq -0xa48(%rbp), %rax
cmpq $0x0, %rax
jne 0x3fc2
leaq 0x20c1(%rip), %rsi      # 0x6070
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x3fbd
jmp 0x4448
leaq 0x2210(%rip), %rsi      # 0x61d9
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xa50(%rbp)
jmp 0x3fe2
movq -0xa50(%rbp), %rax
cmpq $0x0, %rax
jne 0x4247
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x2146(%rip), %rsi      # 0x6154
callq 0x4840
movb %al, -0xa51(%rbp)
jmp 0x401b
movb -0xa51(%rbp), %al
testb $0x1, %al
jne 0x4027
jmp 0x4086
leaq 0x21b5(%rip), %rsi      # 0x61e3
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa60(%rbp)
jmp 0x4043
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0xa60(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xa68(%rbp)
jmp 0x406c
movq -0xa68(%rbp), %rdi
leaq 0x2002(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x4081
jmp 0x4242
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x20c9(%rip), %rsi      # 0x616a
callq 0x4840
movb %al, -0xa69(%rbp)
jmp 0x40ae
movb -0xa69(%rbp), %al
testb $0x1, %al
jne 0x40ba
jmp 0x4119
leaq 0x212a(%rip), %rsi      # 0x61eb
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa78(%rbp)
jmp 0x40d6
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0xa78(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xa80(%rbp)
jmp 0x40ff
movq -0xa80(%rbp), %rdi
leaq 0x1f6f(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x4114
jmp 0x4240
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x2044(%rip), %rsi      # 0x6178
callq 0x4840
movb %al, -0xa81(%rbp)
jmp 0x4141
movb -0xa81(%rbp), %al
testb $0x1, %al
jne 0x414d
jmp 0x41ac
leaq 0x209f(%rip), %rsi      # 0x61f3
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xa90(%rbp)
jmp 0x4169
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0xa90(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xa98(%rbp)
jmp 0x4192
movq -0xa98(%rbp), %rdi
leaq 0x1edc(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x41a7
jmp 0x423e
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rdi
leaq 0x1f99(%rip), %rsi      # 0x6160
callq 0x4840
movb %al, -0xa99(%rbp)
jmp 0x41d4
movb -0xa99(%rbp), %al
testb $0x1, %al
jne 0x41e0
jmp 0x423c
leaq 0x1f7d(%rip), %rsi      # 0x6164
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xaa8(%rbp)
jmp 0x41fc
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0xaa8(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xab0(%rbp)
jmp 0x4225
movq -0xab0(%rbp), %rdi
leaq 0x1e49(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x423a
jmp 0x423c
jmp 0x423e
jmp 0x4240
jmp 0x4242
jmp 0x4446
leaq 0x1faf(%rip), %rsi      # 0x61fd
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xab8(%rbp)
jmp 0x4267
movq -0xab8(%rbp), %rax
cmpq $0x0, %rax
jne 0x4300
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x4b0(%rbp), %rdi
callq 0x2190
movq %rax, -0xac0(%rbp)
jmp 0x42a1
movq -0xac0(%rbp), %rdi
leaq 0x1f4c(%rip), %rsi      # 0x61fb
callq 0x21a0
movq %rax, -0xac8(%rbp)
jmp 0x42bd
leaq -0x508(%rbp), %rdi
movl $0x2, %esi
callq 0x4870
movq -0xac8(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xad0(%rbp)
jmp 0x42e6
movq -0xad0(%rbp), %rdi
leaq 0x1d88(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x42fb
jmp 0x4444
leaq 0x1f05(%rip), %rsi      # 0x620c
xorl %eax, %eax
movl %eax, %edx
leaq -0x4f0(%rbp), %rdi
callq 0x22f0
movq %rax, -0xad8(%rbp)
jmp 0x4320
movq -0xad8(%rbp), %rax
cmpq $0x0, %rax
jne 0x43b2
leaq 0x1ee2(%rip), %rsi      # 0x621a
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
movq %rax, -0xae0(%rbp)
jmp 0x434d
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq -0xae0(%rbp), %rdi
movq %rax, %rsi
callq 0x2190
movq %rax, -0xae8(%rbp)
jmp 0x4376
movq -0xae8(%rbp), %rdi
leaq 0x1cf8(%rip), %rsi      # 0x607c
callq 0x21a0
jmp 0x438b
leaq -0x508(%rbp), %rdi
movl $0x1, %esi
callq 0x4870
movq %rax, %rsi
leaq -0x290(%rbp), %rdi
callq 0x4600
jmp 0x43ad
jmp 0x4442
movq 0x4c17(%rip), %rdi      # 0x8fd0
leaq 0x1e5d(%rip), %rsi      # 0x621d
callq 0x21a0
movq %rax, -0xaf0(%rbp)
jmp 0x43ce
movq -0xaf0(%rbp), %rdi
movl -0x4b4(%rbp), %esi
callq 0x2300
movq %rax, -0xaf8(%rbp)
jmp 0x43e9
movq -0xaf8(%rbp), %rdi
leaq 0x1c90(%rip), %rsi      # 0x6087
callq 0x21a0
movq %rax, -0xb00(%rbp)
jmp 0x4405
movq -0xb00(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x2190
movq %rax, -0xb08(%rbp)
jmp 0x4421
movq -0xb08(%rbp), %rdi
leaq 0x1c58(%rip), %rsi      # 0x6087
callq 0x21a0
jmp 0x4436
movl $0x4, -0x774(%rbp)
jmp 0x4495
jmp 0x4444
jmp 0x4446
jmp 0x4448
jmp 0x444a
jmp 0x444c
jmp 0x444e
jmp 0x4450
jmp 0x4452
jmp 0x4454
jmp 0x4456
jmp 0x4458
jmp 0x445a
jmp 0x445c
jmp 0x445e
jmp 0x4460
jmp 0x4462
jmp 0x4464
jmp 0x4466
jmp 0x4468
jmp 0x446a
jmp 0x446c
jmp 0x446e
jmp 0x4470
jmp 0x4472
jmp 0x4474
jmp 0x4476
jmp 0x4478
jmp 0x447a
jmp 0x447c
movl -0x4b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4b4(%rbp)
movl $0x0, -0x774(%rbp)
leaq -0x508(%rbp), %rdi
callq 0x4670
movl -0x774(%rbp), %eax
testl %eax, %eax
jne 0x44b7
jmp 0x44ad
movl $0x0, -0x774(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x2100
movl -0x774(%rbp), %eax
testl %eax, %eax
je 0x44d1
jmp 0x44cf
jmp 0x44fe
jmp 0x44d3
leaq -0x4c8(%rbp), %rdi
callq 0x4890
jmp 0x2992
leaq -0x508(%rbp), %rdi
callq 0x4670
leaq -0x4f0(%rbp), %rdi
callq 0x2100
jmp 0x456c
leaq 0x1d23(%rip), %rsi      # 0x6228
leaq -0x4b0(%rbp), %rdi
callq 0x21a0
jmp 0x4513
leaq -0x4b0(%rbp), %rdi
callq 0x2280
jmp 0x4521
leaq -0x4b0(%rbp), %rdi
callq 0x22a0
leaq -0x290(%rbp), %rdi
callq 0x4670
leaq -0x278(%rbp), %rdi
callq 0x2060
leaq -0x70(%rbp), %rdi
callq 0x2100
leaq -0x50(%rbp), %rdi
callq 0x4670
leaq -0x28(%rbp), %rdi
callq 0x2100
movl -0x4(%rbp), %eax
addq $0xb10, %rsp            # imm = 0xB10
popq %rbp
retq
leaq -0x4b0(%rbp), %rdi
callq 0x22a0
leaq -0x290(%rbp), %rdi
callq 0x4670
leaq -0x278(%rbp), %rdi
callq 0x2060
leaq -0x70(%rbp), %rdi
callq 0x2100
leaq -0x50(%rbp), %rdi
callq 0x4670
leaq -0x28(%rbp), %rdi
callq 0x2100
movq -0x30(%rbp), %rdi
callq 0x2310
nopw %cs:(%rax,%rax)
nop