// File: millanek[P]evo/evo_fullAnnotationExtract.cpp
// Function: AnnotationPreformat(int, char**)
int AnnotationPreformat(int argc, char** argv) {
    parseAnnotExtractOptions(argc, argv);
    // Load up the annotation file
    std::ifstream* gpFile = new std::ifstream(opt::gpFile.c_str());
    std::unordered_map<string, bool> gpTranscripts;
    std::cerr << "Loading " << opt::gpFile << std::endl;
    std::string line;
    while (getline(*gpFile, line)) {
        gpTranscripts[split(line, '\t')[0]] = true;
    } gpFile->close();
    std::cerr << "Done" << std::endl;
    
    
    std::ifstream* annotFile = new std::ifstream(opt::annotationFile.c_str());
    std::ofstream* regulatoryFile;
    std::ofstream* intronFile;
    std::ofstream* upstreamFile;
    std::ofstream* downstreamFile;
    if (opt::regulatory) {
        regulatoryFile = new std::ofstream(opt::annotationFile+"Extract_allRegulatory");
        intronFile = new std::ofstream(opt::annotationFile+"Extract_Intron");
        upstreamFile = new std::ofstream(opt::annotationFile+"Extract_Upstream");
        downstreamFile = new std::ofstream(opt::annotationFile+"Extract_Downstream");
    }
    string geneLastLine = ""; string scaffoldLastLine = ""; string startLastLine = ""; string endLastLine = "";
    string directionLastLine = "";
    std::cerr << "Going through " << opt::annotationFile << std::endl;
    while (getline(*annotFile, line)) {
        if (line[0] == '#') continue;
        std::vector<string> annotVec = split(line, '\t');
        if (annotVec[2] == "CDS") { // only outputting CDS coordinates
            std::vector<string> descriptionVec = split(annotVec[8], ' ');
            string transcript = "";
            if (descriptionVec[2] == "transcript_id") {
                transcript = descriptionVec[3].substr(1).substr(0,descriptionVec[3].substr(1).length()-2);
            } else if (descriptionVec[4] == "transcript_id") {
                transcript = descriptionVec[5].substr(1).substr(0,descriptionVec[5].substr(1).length()-2);
            }
            if (gpTranscripts.count(transcript) == 1) {
                string gene = descriptionVec[1].substr(1).substr(0,descriptionVec[1].substr(1).length()-2);
                string scaffold = annotVec[0];
                string start = annotVec[3];
                string end = annotVec[4];
                string direction = annotVec[6];
                std::cout << scaffold << "\t" << start << "\t" << end << "\t" << direction << "\t" << gene << std::endl;
                if (opt::regulatory) {
                    if (gene != geneLastLine) {
                        // First sort out the previous gene:
                        if (directionLastLine == "+") {
                            *downstreamFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_3prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "downstream" << std::endl;
                            *regulatoryFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_3prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "downstream" << std::endl;
                        }
                        if (directionLastLine == "-") {
                            *upstreamFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_5prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "upstream" << std::endl;
                            *regulatoryFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_5prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "upstream" << std::endl;
                        }
                        // Now sort out this gene:
                        if (direction == "+") {
                            int startUpstream = atoi(start.c_str())-opt::bp_5prime-1;
                            if (startUpstream < 0) startUpstream = 0;
                            int endUpstream = atoi(start.c_str())-1;
                            if (endUpstream > 0) {
                                *upstreamFile << scaffold << "\t" << startUpstream << "\t" << atoi(start.c_str())-1 << "\t" << direction << "\t" << gene << "\t" << "upstream" << std::endl;
                                *regulatoryFile << scaffold << "\t" << startUpstream << "\t" << atoi(start.c_str())-1 << "\t" << direction << "\t" << gene << "\t" << "upstream" << std::endl;
                            }
                        }
                        if (direction == "-") {
                            int startDownstream = atoi(start.c_str())-opt::bp_5prime-1;
                            if (startDownstream < 0) startDownstream = 0;
                            int endDownstream = atoi(start.c_str())-1;
                            if (endDownstream > 0) {
                                *downstreamFile << scaffold << "\t" << startDownstream << "\t" << atoi(start.c_str())-1 << "\t" << direction << "\t" << gene << "\t" << "downstream" << std::endl;
                                *regulatoryFile << scaffold << "\t" << startDownstream << "\t" << atoi(start.c_str())-1 << "\t" << direction << "\t" << gene << "\t" << "downstream" << std::endl;
                            }
                        }
                    }
                    if (gene == geneLastLine) {
                        int startIntron = atoi(endLastLine.c_str())+1;
                        int endIntron = atoi(start.c_str())-1;
                        if (endIntron > startIntron) {
                            *intronFile << scaffold << "\t" << startIntron << "\t" << endIntron << "\t" << direction << "\t" << gene << "\t" << "intron" << std::endl;
                            *regulatoryFile << scaffold << "\t" << startIntron << "\t" << endIntron << "\t" << direction << "\t" << gene << "\t" << "intron" << std::endl;
                        } else {
                            std::cerr << "WARNING: an intron for gene " << gene << " has negative length" << std::endl;
                        }
                    }
                }
                geneLastLine = gene; startLastLine = start; endLastLine = end; directionLastLine = direction;
                scaffoldLastLine = scaffold;
            }
            //
        }
        // if (gpTranscripts.count() == 1) {
        // }
    } annotFile->close();
    // and the final noncoding element:
    if (opt::regulatory) {
        if (directionLastLine == "+") {
            *downstreamFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_3prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "downstream" << std::endl;
            *regulatoryFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_3prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "downstream" << std::endl;
        }
        if (directionLastLine == "-") {
            *upstreamFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_5prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "upstream" << std::endl;
            *regulatoryFile << scaffoldLastLine << "\t" << atoi(endLastLine.c_str())+1 << "\t" << atoi(endLastLine.c_str())+opt::bp_5prime+1 << "\t" << directionLastLine << "\t" << geneLastLine << "\t" << "upstream" << std::endl;
        }
    }
    std::cerr << "Done" << std::endl;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa90, %rsp            # imm = 0xA90
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x56500
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x440(%rbp)
movq %rax, -0x448(%rbp)
leaq 0x14602b(%rip), %rdi    # 0x199e78
callq 0xa220
movq -0x440(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x53e68
movq -0x448(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x56900
movq 0x14516d(%rip), %rdi    # 0x198ff0
leaq 0xe0c06(%rip), %rsi     # 0x134a90
callq 0xa5c0
movq %rax, -0x450(%rbp)
jmp 0x53e98
movq -0x450(%rbp), %rdi
leaq 0x145fd2(%rip), %rsi    # 0x199e78
callq 0xa520
movq %rax, -0x458(%rbp)
jmp 0x53eb4
movq -0x458(%rbp), %rdi
movq 0x1450c6(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x53ec9
leaq -0x80(%rbp), %rdi
callq 0xa820
movq -0x18(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x460(%rbp)
jmp 0x53ee8
movq -0x460(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x461(%rbp)
jmp 0x53f06
movb -0x461(%rbp), %al
testb $0x1, %al
jne 0x53f15
jmp 0x53fcd
leaq -0x98(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x53f2c
xorl %eax, %eax
movl %eax, %esi
leaq -0x98(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x60(%rbp), %rdi
callq 0x56920
movq %rax, -0x470(%rbp)
jmp 0x53f51
movq -0x470(%rbp), %rax
movb $0x1, (%rax)
leaq -0x98(%rbp), %rdi
callq 0x3dfa0
jmp 0x53ed2
movq -0x448(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x564e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x564df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x3dfa0
jmp 0x564d6
movq -0x18(%rbp), %rdi
callq 0xa110
jmp 0x53fd8
movq 0x145011(%rip), %rdi    # 0x198ff0
leaq 0xde309(%rip), %rsi     # 0x1322ef
callq 0xa5c0
movq %rax, -0x478(%rbp)
jmp 0x53ff4
movq -0x478(%rbp), %rdi
movq 0x144f86(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x54009
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, -0x480(%rbp)
jmp 0x5401c
leaq 0x145e75(%rip), %rdi    # 0x199e98
callq 0xa220
movq -0x480(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0xab90
jmp 0x5403e
movq -0x480(%rbp), %rax
movq %rax, -0xa0(%rbp)
testb $0x1, 0x145e65(%rip)    # 0x199eb8
je 0x54360
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x488(%rbp)
jmp 0x5406c
movb $0x1, -0xe1(%rbp)
leaq 0x145e1e(%rip), %rsi    # 0x199e98
leaq 0xe0a18(%rip), %rdx     # 0x134a99
leaq -0xe0(%rbp), %rdi
callq 0x3da80
jmp 0x5408f
movq -0x488(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0x540a9
movq -0x488(%rbp), %rax
movb $0x0, -0xe1(%rbp)
movq %rax, -0xa8(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x490(%rbp)
jmp 0x540dd
movb $0x1, -0x109(%rbp)
leaq 0x145dad(%rip), %rsi    # 0x199e98
leaq 0xe09bd(%rip), %rdx     # 0x134aaf
leaq -0x108(%rbp), %rdi
callq 0x3da80
jmp 0x54100
movq -0x490(%rbp), %rdi
leaq -0x108(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0x5411a
movq -0x490(%rbp), %rax
movb $0x0, -0x109(%rbp)
movq %rax, -0xb0(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x498(%rbp)
jmp 0x5414e
movb $0x1, -0x131(%rbp)
leaq 0x145d3c(%rip), %rsi    # 0x199e98
leaq 0xe095b(%rip), %rdx     # 0x134abe
leaq -0x130(%rbp), %rdi
callq 0x3da80
jmp 0x54171
movq -0x498(%rbp), %rdi
leaq -0x130(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0x5418b
movq -0x498(%rbp), %rax
movb $0x0, -0x131(%rbp)
movq %rax, -0xb8(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x4a0(%rbp)
jmp 0x541bf
movb $0x1, -0x159(%rbp)
leaq 0x145ccb(%rip), %rsi    # 0x199e98
leaq 0xe08fb(%rip), %rdx     # 0x134acf
leaq -0x158(%rbp), %rdi
callq 0x3da80
jmp 0x541e2
movq -0x4a0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0x541fc
movq -0x4a0(%rbp), %rax
movb $0x0, -0x159(%rbp)
movq %rax, -0xc0(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac88
jmp 0x54360
movq -0x480(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x5426a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0xac88
testb $0x1, -0xe1(%rbp)
jne 0x54275
jmp 0x54286
movq -0x488(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x542b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x108(%rbp), %rdi
callq 0xac88
testb $0x1, -0x109(%rbp)
jne 0x542bc
jmp 0x542cd
movq -0x490(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x542f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xac88
testb $0x1, -0x131(%rbp)
jne 0x54303
jmp 0x54314
movq -0x498(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x5433f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x158(%rbp), %rdi
callq 0xac88
testb $0x1, -0x159(%rbp)
jne 0x5434a
jmp 0x5435b
movq -0x4a0(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x564d6
leaq -0x181(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0xab60
movq -0x4a8(%rbp), %rdx
leaq 0xe1b5e(%rip), %rsi     # 0x135edf
leaq -0x180(%rbp), %rdi
callq 0x2d6c0
jmp 0x5438f
leaq -0x181(%rbp), %rdi
callq 0xa640
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0xab60
movq -0x4b0(%rbp), %rdx
leaq 0xe1b23(%rip), %rsi     # 0x135edf
leaq -0x1a8(%rbp), %rdi
callq 0x2d6c0
jmp 0x543ca
leaq -0x1a9(%rbp), %rdi
callq 0xa640
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0xab60
movq -0x4b8(%rbp), %rdx
leaq 0xe1ae8(%rip), %rsi     # 0x135edf
leaq -0x1d0(%rbp), %rdi
callq 0x2d6c0
jmp 0x54405
leaq -0x1d1(%rbp), %rdi
callq 0xa640
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0xab60
movq -0x4c0(%rbp), %rdx
leaq 0xe1aad(%rip), %rsi     # 0x135edf
leaq -0x1f8(%rbp), %rdi
callq 0x2d6c0
jmp 0x54440
leaq -0x1f9(%rbp), %rdi
callq 0xa640
leaq -0x221(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0xab60
movq -0x4c8(%rbp), %rdx
leaq 0xe1a72(%rip), %rsi     # 0x135edf
leaq -0x220(%rbp), %rdi
callq 0x2d6c0
jmp 0x5447b
leaq -0x221(%rbp), %rdi
callq 0xa640
movq 0x144b62(%rip), %rdi    # 0x198ff0
leaq 0xe064d(%rip), %rsi     # 0x134ae2
callq 0xa5c0
movq %rax, -0x4d0(%rbp)
jmp 0x544a3
movq -0x4d0(%rbp), %rdi
leaq 0x1459e7(%rip), %rsi    # 0x199e98
callq 0xa520
movq %rax, -0x4d8(%rbp)
jmp 0x544bf
movq -0x4d8(%rbp), %rdi
movq 0x144abb(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x544d4
jmp 0x544d6
movq -0xa0(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x4e0(%rbp)
jmp 0x544ef
movq -0x4e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x4e1(%rbp)
jmp 0x5450d
movb -0x4e1(%rbp), %al
testb $0x1, %al
jne 0x5451c
jmp 0x55dbf
xorl %eax, %eax
movl %eax, %esi
leaq -0x80(%rbp), %rdi
callq 0xac60
movq %rax, -0x4f0(%rbp)
jmp 0x54532
movq -0x4f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x545e9
jmp 0x544d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x181(%rbp), %rdi
callq 0xa640
jmp 0x564d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1a9(%rbp), %rdi
callq 0xa640
jmp 0x564ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1d1(%rbp), %rdi
callq 0xa640
jmp 0x564be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0xa640
jmp 0x564b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x221(%rbp), %rdi
callq 0xa640
jmp 0x564a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x5649a
leaq -0x240(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x9, %edx
callq 0x7bbe0
jmp 0x54600
leaq -0x240(%rbp), %rdi
movl $0x2, %esi
callq 0x3d940
movq %rax, %rdi
leaq 0xe04d6(%rip), %rsi     # 0x134af1
callq 0x2d770
movb %al, -0x4f1(%rbp)
jmp 0x54628
movb -0x4f1(%rbp), %al
testb $0x1, %al
jne 0x54637
jmp 0x55d9d
leaq -0x240(%rbp), %rdi
movl $0x8, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x258(%rbp), %rdi
movl $0x20, %edx
callq 0x7bbe0
jmp 0x5465e
leaq -0x279(%rbp), %rdi
movq %rdi, -0x500(%rbp)
callq 0xab60
movq -0x500(%rbp), %rdx
leaq 0xe1860(%rip), %rsi     # 0x135edf
leaq -0x278(%rbp), %rdi
callq 0x2d6c0
jmp 0x5468d
leaq -0x279(%rbp), %rdi
callq 0xa640
leaq -0x258(%rbp), %rdi
movl $0x2, %esi
callq 0x3d940
movq %rax, %rdi
leaq 0xe0441(%rip), %rsi     # 0x134af5
callq 0x2d770
movb %al, -0x501(%rbp)
jmp 0x546c1
movb -0x501(%rbp), %al
testb $0x1, %al
jne 0x546d0
jmp 0x5480a
leaq -0x258(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x546fe
leaq -0x258(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x2e0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x5472c
leaq -0x2e0(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
addq $-0x2, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0xa5f0
jmp 0x54758
leaq -0x278(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0xa710
leaq -0x2a0(%rbp), %rdi
callq 0xac88
leaq -0x2e0(%rbp), %rdi
callq 0xac88
leaq -0x2c0(%rbp), %rdi
callq 0xac88
jmp 0x5493b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55dae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x279(%rbp), %rdi
callq 0xa640
jmp 0x55d8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55d83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x547f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0xac88
leaq -0x2c0(%rbp), %rdi
callq 0xac88
jmp 0x55d83
leaq -0x258(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rdi
leaq 0xe02d0(%rip), %rsi     # 0x134af5
callq 0x2d770
movb %al, -0x502(%rbp)
jmp 0x54832
movb -0x502(%rbp), %al
testb $0x1, %al
jne 0x54841
jmp 0x54939
leaq -0x258(%rbp), %rdi
movl $0x5, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x320(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x5486f
leaq -0x258(%rbp), %rdi
movl $0x5, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x340(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x5489d
leaq -0x340(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
addq $-0x2, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0xa5f0
jmp 0x548c9
leaq -0x278(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0xa710
leaq -0x300(%rbp), %rdi
callq 0xac88
leaq -0x340(%rbp), %rdi
callq 0xac88
leaq -0x320(%rbp), %rdi
callq 0xac88
jmp 0x54939
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x54928
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x340(%rbp), %rdi
callq 0xac88
leaq -0x320(%rbp), %rdi
callq 0xac88
jmp 0x55d83
jmp 0x5493b
leaq -0x60(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x56950
movq %rax, -0x510(%rbp)
jmp 0x54954
movq -0x510(%rbp), %rax
cmpq $0x1, %rax
jne 0x55d69
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x518(%rbp)
callq 0x3d940
movq -0x518(%rbp), %rdx
movq %rax, %rsi
leaq -0x380(%rbp), %rdi
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x5499c
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
movq %rsi, -0x520(%rbp)
callq 0x3d940
movq -0x520(%rbp), %rdx
movq %rax, %rsi
leaq -0x3a0(%rbp), %rdi
movq $-0x1, %rcx
callq 0xa5f0
jmp 0x549d3
leaq -0x3a0(%rbp), %rdi
callq 0xa930
movq %rax, %rcx
addq $-0x2, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x360(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0xa5f0
jmp 0x549ff
leaq -0x3a0(%rbp), %rdi
callq 0xac88
leaq -0x380(%rbp), %rdi
callq 0xac88
xorl %eax, %eax
movl %eax, %esi
leaq -0x240(%rbp), %rdi
callq 0x3d940
movq %rax, %rsi
leaq -0x3c0(%rbp), %rdi
callq 0xa250
jmp 0x54a38
leaq -0x240(%rbp), %rdi
movl $0x3, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x3e0(%rbp), %rdi
callq 0xa250
jmp 0x54a5a
leaq -0x240(%rbp), %rdi
movl $0x4, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x400(%rbp), %rdi
callq 0xa250
jmp 0x54a7c
leaq -0x240(%rbp), %rdi
movl $0x6, %esi
callq 0x3d940
movq %rax, %rsi
leaq -0x420(%rbp), %rdi
callq 0xa250
jmp 0x54a9e
movq 0x144513(%rip), %rdi    # 0x198fb8
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x528(%rbp)
jmp 0x54aba
movq -0x528(%rbp), %rdi
leaq 0xe1416(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x530(%rbp)
jmp 0x54ad6
movq -0x530(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0xa520
movq %rax, -0x538(%rbp)
jmp 0x54af2
movq -0x538(%rbp), %rdi
leaq 0xe13de(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x540(%rbp)
jmp 0x54b0e
movq -0x540(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0xa520
movq %rax, -0x548(%rbp)
jmp 0x54b2a
movq -0x548(%rbp), %rdi
leaq 0xe13a6(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x550(%rbp)
jmp 0x54b46
movq -0x550(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x558(%rbp)
jmp 0x54b62
movq -0x558(%rbp), %rdi
leaq 0xe136e(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x560(%rbp)
jmp 0x54b7e
movq -0x560(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x568(%rbp)
jmp 0x54b9a
movq -0x568(%rbp), %rdi
movq 0x1443e0(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x54baf
testb $0x1, 0x145302(%rip)    # 0x199eb8
je 0x55c90
leaq -0x360(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x56980
testb $0x1, %al
jne 0x54bd8
jmp 0x55929
leaq 0xdff24(%rip), %rsi     # 0x134b03
leaq -0x220(%rbp), %rdi
callq 0x2d770
movb %al, -0x569(%rbp)
jmp 0x54bf3
movb -0x569(%rbp), %al
testb $0x1, %al
jne 0x54c02
jmp 0x54f8d
movq -0xc0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x578(%rbp)
jmp 0x54c1e
movq -0x578(%rbp), %rdi
leaq 0xe12b2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x580(%rbp)
jmp 0x54c3a
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x580(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x588(%rbp)
jmp 0x54c67
movq -0x588(%rbp), %rdi
leaq 0xe1269(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x590(%rbp)
jmp 0x54c83
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x590(%rbp), %rdi
movl %eax, %ecx
movl 0x144a32(%rip), %edx    # 0x1996d8
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x598(%rbp)
jmp 0x54cbc
movq -0x598(%rbp), %rdi
leaq 0xe1214(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5a0(%rbp)
jmp 0x54cd8
movq -0x5a0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x5a8(%rbp)
jmp 0x54cf4
movq -0x5a8(%rbp), %rdi
leaq 0xe11dc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5b0(%rbp)
jmp 0x54d10
movq -0x5b0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x5b8(%rbp)
jmp 0x54d2c
movq -0x5b8(%rbp), %rdi
leaq 0xe11a4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5c0(%rbp)
jmp 0x54d48
movq -0x5c0(%rbp), %rdi
leaq 0xdfdaf(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x5c8(%rbp)
jmp 0x54d64
movq -0x5c8(%rbp), %rdi
movq 0x144216(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x54d79
movq -0xa8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x5d0(%rbp)
jmp 0x54d95
movq -0x5d0(%rbp), %rdi
leaq 0xe113b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5d8(%rbp)
jmp 0x54db1
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x5d8(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x5e0(%rbp)
jmp 0x54dde
movq -0x5e0(%rbp), %rdi
leaq 0xe10f2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5e8(%rbp)
jmp 0x54dfa
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x5e8(%rbp), %rdi
movl %eax, %ecx
movl 0x1448bb(%rip), %edx    # 0x1996d8
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x5f0(%rbp)
jmp 0x54e33
movq -0x5f0(%rbp), %rdi
leaq 0xe109d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x5f8(%rbp)
jmp 0x54e4f
movq -0x5f8(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x600(%rbp)
jmp 0x54e6b
movq -0x600(%rbp), %rdi
leaq 0xe1065(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x608(%rbp)
jmp 0x54e87
movq -0x608(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x610(%rbp)
jmp 0x54ea3
movq -0x610(%rbp), %rdi
leaq 0xe102d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x618(%rbp)
jmp 0x54ebf
movq -0x618(%rbp), %rdi
leaq 0xdfc38(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x620(%rbp)
jmp 0x54edb
movq -0x620(%rbp), %rdi
movq 0x14409f(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x54ef0
jmp 0x54f8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x54f1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0xac88
leaq -0x380(%rbp), %rdi
callq 0xac88
jmp 0x55d83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55d5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55d4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55d43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x55d37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x420(%rbp), %rdi
callq 0xac88
jmp 0x55d37
leaq 0xdfb7c(%rip), %rsi     # 0x134b10
leaq -0x220(%rbp), %rdi
callq 0x2d770
movb %al, -0x621(%rbp)
jmp 0x54fa8
movb -0x621(%rbp), %al
testb $0x1, %al
jne 0x54fb7
jmp 0x552a7
movq -0xb8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x630(%rbp)
jmp 0x54fd3
movq -0x630(%rbp), %rdi
leaq 0xe0efd(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x638(%rbp)
jmp 0x54fef
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x638(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x640(%rbp)
jmp 0x5501c
movq -0x640(%rbp), %rdi
leaq 0xe0eb4(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x648(%rbp)
jmp 0x55038
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x648(%rbp), %rdi
movl %eax, %ecx
movl 0x144681(%rip), %edx    # 0x1996dc
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x650(%rbp)
jmp 0x55071
movq -0x650(%rbp), %rdi
leaq 0xe0e5f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x658(%rbp)
jmp 0x5508d
movq -0x658(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x660(%rbp)
jmp 0x550a9
movq -0x660(%rbp), %rdi
leaq 0xe0e27(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x668(%rbp)
jmp 0x550c5
movq -0x668(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x670(%rbp)
jmp 0x550e1
movq -0x670(%rbp), %rdi
leaq 0xe0def(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x678(%rbp)
jmp 0x550fd
movq -0x678(%rbp), %rdi
leaq 0xdfa07(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0x680(%rbp)
jmp 0x55119
movq -0x680(%rbp), %rdi
movq 0x143e61(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5512e
movq -0xa8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x688(%rbp)
jmp 0x5514a
movq -0x688(%rbp), %rdi
leaq 0xe0d86(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x690(%rbp)
jmp 0x55166
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x690(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x698(%rbp)
jmp 0x55193
movq -0x698(%rbp), %rdi
leaq 0xe0d3d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6a0(%rbp)
jmp 0x551af
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x6a0(%rbp), %rdi
movl %eax, %ecx
movl 0x14450a(%rip), %edx    # 0x1996dc
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x6a8(%rbp)
jmp 0x551e8
movq -0x6a8(%rbp), %rdi
leaq 0xe0ce8(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6b0(%rbp)
jmp 0x55204
movq -0x6b0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x6b8(%rbp)
jmp 0x55220
movq -0x6b8(%rbp), %rdi
leaq 0xe0cb0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6c0(%rbp)
jmp 0x5523c
movq -0x6c0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x6c8(%rbp)
jmp 0x55258
movq -0x6c8(%rbp), %rdi
leaq 0xe0c78(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6d0(%rbp)
jmp 0x55274
movq -0x6d0(%rbp), %rdi
leaq 0xdf890(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0x6d8(%rbp)
jmp 0x55290
movq -0x6d8(%rbp), %rdi
movq 0x143cea(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x552a5
jmp 0x552a7
leaq 0xdf855(%rip), %rsi     # 0x134b03
leaq -0x420(%rbp), %rdi
callq 0x2d770
movb %al, -0x6d9(%rbp)
jmp 0x552c2
movb -0x6d9(%rbp), %al
testb $0x1, %al
jne 0x552d1
jmp 0x555e7
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
subl 0x1443f1(%rip), %eax    # 0x1996dc
subl $0x1, %eax
movl %eax, -0x424(%rbp)
cmpl $0x0, -0x424(%rbp)
jge 0x55307
movl $0x0, -0x424(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
subl $0x1, %eax
movl %eax, -0x428(%rbp)
cmpl $0x0, -0x428(%rbp)
jle 0x555e5
movq -0xb8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x6e8(%rbp)
jmp 0x5534d
movq -0x6e8(%rbp), %rdi
leaq 0xe0b83(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x6f0(%rbp)
jmp 0x55369
movq -0x6f0(%rbp), %rdi
movl -0x424(%rbp), %esi
callq 0xab20
movq %rax, -0x6f8(%rbp)
jmp 0x55384
movq -0x6f8(%rbp), %rdi
leaq 0xe0b4c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x700(%rbp)
jmp 0x553a0
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x700(%rbp), %rdi
movl %eax, %esi
decl %esi
callq 0xab20
movq %rax, -0x708(%rbp)
jmp 0x553cd
movq -0x708(%rbp), %rdi
leaq 0xe0b03(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x710(%rbp)
jmp 0x553e9
movq -0x710(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x718(%rbp)
jmp 0x55405
movq -0x718(%rbp), %rdi
leaq 0xe0acb(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x720(%rbp)
jmp 0x55421
movq -0x720(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x728(%rbp)
jmp 0x5543d
movq -0x728(%rbp), %rdi
leaq 0xe0a93(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x730(%rbp)
jmp 0x55459
movq -0x730(%rbp), %rdi
leaq 0xdf6ab(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0x738(%rbp)
jmp 0x55475
movq -0x738(%rbp), %rdi
movq 0x143b05(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5548a
movq -0xa8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x740(%rbp)
jmp 0x554a6
movq -0x740(%rbp), %rdi
leaq 0xe0a2a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x748(%rbp)
jmp 0x554c2
movq -0x748(%rbp), %rdi
movl -0x424(%rbp), %esi
callq 0xab20
movq %rax, -0x750(%rbp)
jmp 0x554dd
movq -0x750(%rbp), %rdi
leaq 0xe09f3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x758(%rbp)
jmp 0x554f9
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x758(%rbp), %rdi
movl %eax, %esi
decl %esi
callq 0xab20
movq %rax, -0x760(%rbp)
jmp 0x55526
movq -0x760(%rbp), %rdi
leaq 0xe09aa(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x768(%rbp)
jmp 0x55542
movq -0x768(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x770(%rbp)
jmp 0x5555e
movq -0x770(%rbp), %rdi
leaq 0xe0972(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x778(%rbp)
jmp 0x5557a
movq -0x778(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x780(%rbp)
jmp 0x55596
movq -0x780(%rbp), %rdi
leaq 0xe093a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x788(%rbp)
jmp 0x555b2
movq -0x788(%rbp), %rdi
leaq 0xdf552(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0x790(%rbp)
jmp 0x555ce
movq -0x790(%rbp), %rdi
movq 0x1439ac(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x555e3
jmp 0x555e5
jmp 0x555e7
leaq 0xdf522(%rip), %rsi     # 0x134b10
leaq -0x420(%rbp), %rdi
callq 0x2d770
movb %al, -0x791(%rbp)
jmp 0x55602
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x55611
jmp 0x55927
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
subl 0x1440b1(%rip), %eax    # 0x1996dc
subl $0x1, %eax
movl %eax, -0x42c(%rbp)
cmpl $0x0, -0x42c(%rbp)
jge 0x55647
movl $0x0, -0x42c(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
subl $0x1, %eax
movl %eax, -0x430(%rbp)
cmpl $0x0, -0x430(%rbp)
jle 0x55925
movq -0xc0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x7a0(%rbp)
jmp 0x5568d
movq -0x7a0(%rbp), %rdi
leaq 0xe0843(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7a8(%rbp)
jmp 0x556a9
movq -0x7a8(%rbp), %rdi
movl -0x42c(%rbp), %esi
callq 0xab20
movq %rax, -0x7b0(%rbp)
jmp 0x556c4
movq -0x7b0(%rbp), %rdi
leaq 0xe080c(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7b8(%rbp)
jmp 0x556e0
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x7b8(%rbp), %rdi
movl %eax, %esi
decl %esi
callq 0xab20
movq %rax, -0x7c0(%rbp)
jmp 0x5570d
movq -0x7c0(%rbp), %rdi
leaq 0xe07c3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7c8(%rbp)
jmp 0x55729
movq -0x7c8(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x7d0(%rbp)
jmp 0x55745
movq -0x7d0(%rbp), %rdi
leaq 0xe078b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7d8(%rbp)
jmp 0x55761
movq -0x7d8(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x7e0(%rbp)
jmp 0x5577d
movq -0x7e0(%rbp), %rdi
leaq 0xe0753(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x7e8(%rbp)
jmp 0x55799
movq -0x7e8(%rbp), %rdi
leaq 0xdf35e(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x7f0(%rbp)
jmp 0x557b5
movq -0x7f0(%rbp), %rdi
movq 0x1437c5(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x557ca
movq -0xa8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x7f8(%rbp)
jmp 0x557e6
movq -0x7f8(%rbp), %rdi
leaq 0xe06ea(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x800(%rbp)
jmp 0x55802
movq -0x800(%rbp), %rdi
movl -0x42c(%rbp), %esi
callq 0xab20
movq %rax, -0x808(%rbp)
jmp 0x5581d
movq -0x808(%rbp), %rdi
leaq 0xe06b3(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x810(%rbp)
jmp 0x55839
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x810(%rbp), %rdi
movl %eax, %esi
decl %esi
callq 0xab20
movq %rax, -0x818(%rbp)
jmp 0x55866
movq -0x818(%rbp), %rdi
leaq 0xe066a(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x820(%rbp)
jmp 0x55882
movq -0x820(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x828(%rbp)
jmp 0x5589e
movq -0x828(%rbp), %rdi
leaq 0xe0632(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x830(%rbp)
jmp 0x558ba
movq -0x830(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x838(%rbp)
jmp 0x558d6
movq -0x838(%rbp), %rdi
leaq 0xe05fa(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x840(%rbp)
jmp 0x558f2
movq -0x840(%rbp), %rdi
leaq 0xdf205(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x848(%rbp)
jmp 0x5590e
movq -0x848(%rbp), %rdi
movq 0x14366c(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x55923
jmp 0x55925
jmp 0x55927
jmp 0x55929
leaq -0x360(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x39210
testb $0x1, %al
jne 0x55945
jmp 0x55c8e
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
addl $0x1, %eax
movl %eax, -0x434(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
subl $0x1, %eax
movl %eax, -0x438(%rbp)
movl -0x438(%rbp), %eax
cmpl -0x434(%rbp), %eax
jle 0x55c21
movq -0xb0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x850(%rbp)
jmp 0x559ad
movq -0x850(%rbp), %rdi
leaq 0xe0523(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x858(%rbp)
jmp 0x559c9
movq -0x858(%rbp), %rdi
movl -0x434(%rbp), %esi
callq 0xab20
movq %rax, -0x860(%rbp)
jmp 0x559e4
movq -0x860(%rbp), %rdi
leaq 0xe04ec(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x868(%rbp)
jmp 0x55a00
movq -0x868(%rbp), %rdi
movl -0x438(%rbp), %esi
callq 0xab20
movq %rax, -0x870(%rbp)
jmp 0x55a1b
movq -0x870(%rbp), %rdi
leaq 0xe04b5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x878(%rbp)
jmp 0x55a37
movq -0x878(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x880(%rbp)
jmp 0x55a53
movq -0x880(%rbp), %rdi
leaq 0xe047d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x888(%rbp)
jmp 0x55a6f
movq -0x888(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x890(%rbp)
jmp 0x55a8b
movq -0x890(%rbp), %rdi
leaq 0xe0445(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x898(%rbp)
jmp 0x55aa7
movq -0x898(%rbp), %rdi
leaq 0xdf066(%rip), %rsi     # 0x134b1b
callq 0xa5c0
movq %rax, -0x8a0(%rbp)
jmp 0x55ac3
movq -0x8a0(%rbp), %rdi
movq 0x1434b7(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x55ad8
movq -0xa8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa520
movq %rax, -0x8a8(%rbp)
jmp 0x55af4
movq -0x8a8(%rbp), %rdi
leaq 0xe03dc(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8b0(%rbp)
jmp 0x55b10
movq -0x8b0(%rbp), %rdi
movl -0x434(%rbp), %esi
callq 0xab20
movq %rax, -0x8b8(%rbp)
jmp 0x55b2b
movq -0x8b8(%rbp), %rdi
leaq 0xe03a5(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8c0(%rbp)
jmp 0x55b47
movq -0x8c0(%rbp), %rdi
movl -0x438(%rbp), %esi
callq 0xab20
movq %rax, -0x8c8(%rbp)
jmp 0x55b62
movq -0x8c8(%rbp), %rdi
leaq 0xe036e(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8d0(%rbp)
jmp 0x55b7e
movq -0x8d0(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa520
movq %rax, -0x8d8(%rbp)
jmp 0x55b9a
movq -0x8d8(%rbp), %rdi
leaq 0xe0336(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8e0(%rbp)
jmp 0x55bb6
movq -0x8e0(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x8e8(%rbp)
jmp 0x55bd2
movq -0x8e8(%rbp), %rdi
leaq 0xe02fe(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x8f0(%rbp)
jmp 0x55bee
movq -0x8f0(%rbp), %rdi
leaq 0xdef1f(%rip), %rsi     # 0x134b1b
callq 0xa5c0
movq %rax, -0x8f8(%rbp)
jmp 0x55c0a
movq -0x8f8(%rbp), %rdi
movq 0x143370(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x55c1f
jmp 0x55c8c
movq 0x1433c8(%rip), %rdi    # 0x198ff0
leaq 0xdeef3(%rip), %rsi     # 0x134b22
callq 0xa5c0
movq %rax, -0x900(%rbp)
jmp 0x55c3d
movq -0x900(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa520
movq %rax, -0x908(%rbp)
jmp 0x55c59
movq -0x908(%rbp), %rdi
leaq 0xdeed8(%rip), %rsi     # 0x134b3f
callq 0xa5c0
movq %rax, -0x910(%rbp)
jmp 0x55c75
movq -0x910(%rbp), %rdi
movq 0x143305(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x55c8a
jmp 0x55c8c
jmp 0x55c8e
jmp 0x55c90
leaq -0x180(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0xa060
jmp 0x55ca5
leaq -0x1d0(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0xa060
jmp 0x55cba
leaq -0x1f8(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0xa060
jmp 0x55ccf
leaq -0x220(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa060
jmp 0x55ce4
leaq -0x1a8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xa060
jmp 0x55cf9
leaq -0x420(%rbp), %rdi
callq 0xac88
leaq -0x400(%rbp), %rdi
callq 0xac88
leaq -0x3e0(%rbp), %rdi
callq 0xac88
leaq -0x3c0(%rbp), %rdi
callq 0xac88
leaq -0x360(%rbp), %rdi
callq 0xac88
jmp 0x55d69
leaq -0x400(%rbp), %rdi
callq 0xac88
leaq -0x3e0(%rbp), %rdi
callq 0xac88
leaq -0x3c0(%rbp), %rdi
callq 0xac88
leaq -0x360(%rbp), %rdi
callq 0xac88
jmp 0x55d83
leaq -0x278(%rbp), %rdi
callq 0xac88
leaq -0x258(%rbp), %rdi
callq 0x3dfa0
jmp 0x55d9d
leaq -0x278(%rbp), %rdi
callq 0xac88
leaq -0x258(%rbp), %rdi
callq 0x3dfa0
jmp 0x55dae
leaq -0x240(%rbp), %rdi
callq 0x3dfa0
jmp 0x544d6
leaq -0x240(%rbp), %rdi
callq 0x3dfa0
jmp 0x5649a
movq -0xa0(%rbp), %rdi
callq 0xa110
jmp 0x55dcd
testb $0x1, 0x1440e4(%rip)    # 0x199eb8
je 0x56410
leaq 0xded22(%rip), %rsi     # 0x134b03
leaq -0x220(%rbp), %rdi
callq 0x2d770
movb %al, -0x911(%rbp)
jmp 0x55df5
movb -0x911(%rbp), %al
testb $0x1, %al
jne 0x55e04
jmp 0x560f4
movq -0xc0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x920(%rbp)
jmp 0x55e20
movq -0x920(%rbp), %rdi
leaq 0xe00b0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x928(%rbp)
jmp 0x55e3c
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x928(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x930(%rbp)
jmp 0x55e69
movq -0x930(%rbp), %rdi
leaq 0xe0067(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x938(%rbp)
jmp 0x55e85
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x938(%rbp), %rdi
movl %eax, %ecx
movl 0x143830(%rip), %edx    # 0x1996d8
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x940(%rbp)
jmp 0x55ebe
movq -0x940(%rbp), %rdi
leaq 0xe0012(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x948(%rbp)
jmp 0x55eda
movq -0x948(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x950(%rbp)
jmp 0x55ef6
movq -0x950(%rbp), %rdi
leaq 0xdffda(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x958(%rbp)
jmp 0x55f12
movq -0x958(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x960(%rbp)
jmp 0x55f2e
movq -0x960(%rbp), %rdi
leaq 0xdffa2(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x968(%rbp)
jmp 0x55f4a
movq -0x968(%rbp), %rdi
leaq 0xdebad(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x970(%rbp)
jmp 0x55f66
movq -0x970(%rbp), %rdi
movq 0x143014(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x55f7b
movq -0xa8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x978(%rbp)
jmp 0x55f97
movq -0x978(%rbp), %rdi
leaq 0xdff39(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x980(%rbp)
jmp 0x55fb3
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x980(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x988(%rbp)
jmp 0x55fe0
movq -0x988(%rbp), %rdi
leaq 0xdfef0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x990(%rbp)
jmp 0x55ffc
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x990(%rbp), %rdi
movl %eax, %ecx
movl 0x1436b9(%rip), %edx    # 0x1996d8
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x998(%rbp)
jmp 0x56035
movq -0x998(%rbp), %rdi
leaq 0xdfe9b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9a0(%rbp)
jmp 0x56051
movq -0x9a0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0x9a8(%rbp)
jmp 0x5606d
movq -0x9a8(%rbp), %rdi
leaq 0xdfe63(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9b0(%rbp)
jmp 0x56089
movq -0x9b0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0x9b8(%rbp)
jmp 0x560a5
movq -0x9b8(%rbp), %rdi
leaq 0xdfe2b(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9c0(%rbp)
jmp 0x560c1
movq -0x9c0(%rbp), %rdi
leaq 0xdea36(%rip), %rsi     # 0x134b05
callq 0xa5c0
movq %rax, -0x9c8(%rbp)
jmp 0x560dd
movq -0x9c8(%rbp), %rdi
movq 0x142e9d(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x560f2
jmp 0x560f4
leaq 0xdea15(%rip), %rsi     # 0x134b10
leaq -0x220(%rbp), %rdi
callq 0x2d770
movb %al, -0x9c9(%rbp)
jmp 0x5610f
movb -0x9c9(%rbp), %al
testb $0x1, %al
jne 0x5611e
jmp 0x5640e
movq -0xb8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0x9d8(%rbp)
jmp 0x5613a
movq -0x9d8(%rbp), %rdi
leaq 0xdfd96(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9e0(%rbp)
jmp 0x56156
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x9e0(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0x9e8(%rbp)
jmp 0x56183
movq -0x9e8(%rbp), %rdi
leaq 0xdfd4d(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0x9f0(%rbp)
jmp 0x5619f
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0x9f0(%rbp), %rdi
movl %eax, %ecx
movl 0x14351a(%rip), %edx    # 0x1996dc
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0x9f8(%rbp)
jmp 0x561d8
movq -0x9f8(%rbp), %rdi
leaq 0xdfcf8(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa00(%rbp)
jmp 0x561f4
movq -0xa00(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0xa08(%rbp)
jmp 0x56210
movq -0xa08(%rbp), %rdi
leaq 0xdfcc0(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa10(%rbp)
jmp 0x5622c
movq -0xa10(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0xa18(%rbp)
jmp 0x56248
movq -0xa18(%rbp), %rdi
leaq 0xdfc88(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa20(%rbp)
jmp 0x56264
movq -0xa20(%rbp), %rdi
leaq 0xde8a0(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0xa28(%rbp)
jmp 0x56280
movq -0xa28(%rbp), %rdi
movq 0x142cfa(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x56295
movq -0xa8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xa520
movq %rax, -0xa30(%rbp)
jmp 0x562b1
movq -0xa30(%rbp), %rdi
leaq 0xdfc1f(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa38(%rbp)
jmp 0x562cd
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0xa38(%rbp), %rdi
movl %eax, %esi
incl %esi
callq 0xab20
movq %rax, -0xa40(%rbp)
jmp 0x562fa
movq -0xa40(%rbp), %rdi
leaq 0xdfbd6(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa48(%rbp)
jmp 0x56316
leaq -0x1f8(%rbp), %rdi
callq 0xa220
movq %rax, %rdi
callq 0xa970
movq -0xa48(%rbp), %rdi
movl %eax, %ecx
movl 0x1433a3(%rip), %edx    # 0x1996dc
movl %ecx, %eax
movl %edx, %ecx
leal 0x1(%rax,%rcx), %esi
callq 0xab20
movq %rax, -0xa50(%rbp)
jmp 0x5634f
movq -0xa50(%rbp), %rdi
leaq 0xdfb81(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa58(%rbp)
jmp 0x5636b
movq -0xa58(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa520
movq %rax, -0xa60(%rbp)
jmp 0x56387
movq -0xa60(%rbp), %rdi
leaq 0xdfb49(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa68(%rbp)
jmp 0x563a3
movq -0xa68(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xa520
movq %rax, -0xa70(%rbp)
jmp 0x563bf
movq -0xa70(%rbp), %rdi
leaq 0xdfb11(%rip), %rsi     # 0x135ede
callq 0xa5c0
movq %rax, -0xa78(%rbp)
jmp 0x563db
movq -0xa78(%rbp), %rdi
leaq 0xde729(%rip), %rsi     # 0x134b12
callq 0xa5c0
movq %rax, -0xa80(%rbp)
jmp 0x563f7
movq -0xa80(%rbp), %rdi
movq 0x142b83(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x5640c
jmp 0x5640e
jmp 0x56410
movq 0x142bd9(%rip), %rdi    # 0x198ff0
leaq 0xdbed1(%rip), %rsi     # 0x1322ef
callq 0xa5c0
movq %rax, -0xa88(%rbp)
jmp 0x5642c
movq -0xa88(%rbp), %rdi
movq 0x142b4e(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x56441
leaq -0x220(%rbp), %rdi
callq 0xac88
leaq -0x1f8(%rbp), %rdi
callq 0xac88
leaq -0x1d0(%rbp), %rdi
callq 0xac88
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x180(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0xac88
leaq -0x60(%rbp), %rdi
callq 0x2d6a0
xorl %eax, %eax
addq $0xa90, %rsp            # imm = 0xA90
popq %rbp
retq
leaq -0x220(%rbp), %rdi
callq 0xac88
leaq -0x1f8(%rbp), %rdi
callq 0xac88
leaq -0x1d0(%rbp), %rdi
callq 0xac88
leaq -0x1a8(%rbp), %rdi
callq 0xac88
leaq -0x180(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0xac88
leaq -0x60(%rbp), %rdi
callq 0x2d6a0
movq -0x20(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)