// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
callq 0x39b57
movl $0x208, %edi            # imm = 0x208
callq 0x8470
movq %rax, %r14
movq 0xcae66(%rip), %rsi     # 0x102998
movq %rax, %rdi
movl $0x8, %edx
callq 0x8860
leaq 0x200(%rsp), %rax
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
movq 0xca47c(%rip), %rdi     # 0x101fe8
leaq 0x954c5(%rip), %rsi     # 0xcd038
movl $0x8, %edx
callq 0x84e0
movq 0xcae14(%rip), %rsi     # 0x102998
movq 0xcae15(%rip), %rdx     # 0x1029a0
movq 0xca456(%rip), %rdi     # 0x101fe8
callq 0x84e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x128(%rsp), %r13
movq %r13, -0x10(%r13)
movq $0x0, -0x8(%r13)
movb $0x0, (%r13)
leaq 0x118(%rsp), %rbx
movq %rsp, %r15
leaq 0x1d0(%rsp), %r12
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x8870
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x37c46
movq %r15, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x4d650
movq (%rsp), %rsi
movq %r12, %rdi
callq 0x39efc
movb $0x1, (%rax)
movq %r15, %rdi
callq 0x2e784
jmp 0x37bed
movq %r14, %rdi
callq 0x80f0
movq 0xca393(%rip), %rbx     # 0x101fe8
leaq 0x9414b(%rip), %rsi     # 0xcbda7
movl $0x4, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq 0xca361(%rip), %rdi     # 0x101fe8
callq 0x8040
movq %rax, %rdi
callq 0x8300
movl $0x208, %edi            # imm = 0x208
callq 0x8470
movq %rax, %r15
movq 0xcad10(%rip), %rsi     # 0x1029b8
movq %rax, %rdi
movl $0x8, %edx
callq 0x8860
cmpb $0x1, 0xcad1c(%rip)     # 0x1029d8
jne 0x37e62
movl $0x200, %edi            # imm = 0x200
callq 0x8470
movq %rax, 0x60(%rsp)
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xcacd7(%rip), %rsi     # 0x1029b8
movq 0xcacd8(%rip), %rdx     # 0x1029c0
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x2ba06
leaq 0x95347(%rip), %rsi     # 0xcd041
movq %rsp, %rdi
callq 0x88c0
movq %rsp, %rsi
movq 0x60(%rsp), %rdi
movl $0x10, %edx
callq 0x88d0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x37d2a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movl $0x200, %edi            # imm = 0x200
callq 0x8470
movq %rax, 0x158(%rsp)
movq %rsp, %rdi
movq %r14, (%rdi)
movq 0xcac6f(%rip), %rsi     # 0x1029b8
movq 0xcac70(%rip), %rdx     # 0x1029c0
addq %rsi, %rdx
callq 0x2ba06
leaq 0x952f8(%rip), %rsi     # 0xcd057
movq %rsp, %rdi
callq 0x88c0
movq %rsp, %rsi
movq 0x158(%rsp), %rdi
movl $0x10, %edx
callq 0x88d0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x37d92
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movl $0x200, %edi            # imm = 0x200
callq 0x8470
movq %rax, 0x108(%rsp)
movq %rsp, %rdi
movq %r14, (%rdi)
movq 0xcac07(%rip), %rsi     # 0x1029b8
movq 0xcac08(%rip), %rdx     # 0x1029c0
addq %rsi, %rdx
callq 0x2ba06
leaq 0x9529f(%rip), %rsi     # 0xcd066
movq %rsp, %rdi
callq 0x88c0
movq %rsp, %rsi
movq 0x108(%rsp), %rdi
movl $0x10, %edx
callq 0x88d0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x37dfa
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movl $0x200, %edi            # imm = 0x200
callq 0x8470
movq %rax, 0x110(%rsp)
movq %rsp, %rdi
movq %r14, (%rdi)
movq 0xcab9f(%rip), %rsi     # 0x1029b8
movq 0xcaba0(%rip), %rdx     # 0x1029c0
addq %rsi, %rdx
callq 0x2ba06
leaq 0x95248(%rip), %rsi     # 0xcd077
movq %rsp, %rdi
callq 0x88c0
movq %rsp, %rsi
movq 0x110(%rsp), %rdi
movl $0x10, %edx
callq 0x88d0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x37e62
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x95b59(%rip), %rdx     # 0xcd9cb
movq %rsp, %rdi
movq %rdx, %rsi
callq 0x28a52
leaq 0xb8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x95b3a(%rip), %rdx     # 0xcd9cb
leaq 0xa8(%rsp), %rdi
movq %rdx, %rsi
callq 0x28a52
leaq 0x148(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x95b17(%rip), %rdx     # 0xcd9cb
leaq 0x138(%rsp), %rdi
movq %rdx, %rsi
callq 0x28a52
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x95af7(%rip), %rdx     # 0xcd9cb
leaq 0x68(%rsp), %rdi
movq %rdx, %rsi
callq 0x28a52
leaq 0xd8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x95ad7(%rip), %rdx     # 0xcd9cb
leaq 0xc8(%rsp), %rdi
movq %rdx, %rsi
callq 0x28a52
movq 0xca0dd(%rip), %rdi     # 0x101fe8
leaq 0x95178(%rip), %rsi     # 0xcd08a
movl $0xe, %edx
callq 0x84e0
movq 0xcaa95(%rip), %rsi     # 0x1029b8
movq 0xcaa96(%rip), %rdx     # 0x1029c0
movq 0xca0b7(%rip), %rdi     # 0x101fe8
callq 0x84e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x118(%rsp), %rbp
leaq 0x95a5b(%rip), %r13     # 0xcd9ca
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %edx
movq %r15, %rdi
movq %rbp, %rsi
callq 0x8870
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x39133
movq 0x118(%rsp), %rax
cmpb $0x23, (%rax)
je 0x37f6f
leaq 0x1b8(%rsp), %rdi
movq %rbp, %rsi
movl $0x9, %edx
callq 0x4d650
movq 0x1b8(%rsp), %rdi
addq $0x40, %rdi
leaq 0x950c1(%rip), %rsi     # 0xcd099
callq 0x8160
testl %eax, %eax
jne 0x39121
movq 0x1b8(%rsp), %rsi
movl $0x100, %eax            # imm = 0x100
addq %rax, %rsi
leaq 0x160(%rsp), %rdi
movl $0x20, %edx
callq 0x4d650
leaq 0x1a8(%rsp), %rax
movq %rax, 0x198(%rsp)
leaq 0x198(%rsp), %rdi
leaq 0x959a5(%rip), %rdx     # 0xcd9cb
movq %rdx, %rsi
callq 0x28a52
movq 0x160(%rsp), %rdi
addq $0x40, %rdi
leaq 0x9505c(%rip), %rbx     # 0xcd09d
movq %rbx, %rsi
callq 0x8160
testl %eax, %eax
je 0x380d6
movq 0x160(%rsp), %rdi
subq $-0x80, %rdi
movq %rbx, %rsi
callq 0x8160
testl %eax, %eax
jne 0x381a7
movq 0x160(%rsp), %rsi
movl $0xa0, %ebx
addq %rbx, %rsi
movl $0x1, %edx
leaq 0x20(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x160(%rsp), %rsi
addq %rbx, %rsi
movl $0x1, %edx
leaq 0x40(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x48(%rsp), %rcx
addq $-0x2, %rcx
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x84a0
jmp 0x3813a
movq 0x160(%rsp), %rsi
addq $0x60, %rsi
movl $0x1, %edx
leaq 0x20(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x160(%rsp), %rsi
addq $0x60, %rsi
movl $0x1, %edx
leaq 0x40(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x48(%rsp), %rcx
addq $-0x2, %rcx
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x84a0
leaq 0x198(%rsp), %rdi
movq %rbx, %rsi
callq 0x8540
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x3816f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3818b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x381a7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x1d0(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x3a034
testq %rax, %rax
je 0x390ef
movq 0x160(%rsp), %rsi
addq $0x20, %rsi
movl $0x1, %edx
leaq 0x20(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x160(%rsp), %rsi
addq $0x20, %rsi
movl $0x1, %edx
leaq 0x40(%rsp), %rdi
movq $-0x1, %rcx
callq 0x84a0
movq 0x48(%rsp), %rcx
addq $-0x2, %rcx
leaq 0x88(%rsp), %rdi
leaq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x84a0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x38242
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x3825e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x1b8(%rsp), %rax
leaq 0x30(%rsp), %rcx
movq %rcx, 0x20(%rsp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0x2ba06
movq 0x1b8(%rsp), %rax
leaq 0x50(%rsp), %rcx
movq %rcx, 0x40(%rsp)
movq 0x60(%rax), %rsi
movq 0x68(%rax), %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0x2ba06
movq 0x1b8(%rsp), %rax
leaq 0x188(%rsp), %rcx
movq %rcx, 0x178(%rsp)
movq 0x80(%rax), %rsi
movq 0x88(%rax), %rdx
addq %rsi, %rdx
leaq 0x178(%rsp), %rdi
callq 0x2ba06
movq 0x1b8(%rsp), %rax
leaq 0xf8(%rsp), %rcx
movq %rcx, 0xe8(%rsp)
movq 0xc0(%rax), %rsi
movq 0xc8(%rax), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0x2ba06
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0xc9c90(%rip), %rdi     # 0x101fb8
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x178(%rsp), %rsi
movq 0x180(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
cmpb $0x1, 0xca5d4(%rip)     # 0x1029d8
jne 0x38fed
movq 0x90(%rsp), %rdx
cmpq 0x8(%rsp), %rdx
jne 0x3843b
testq %rdx, %rdx
je 0x38f74
movq (%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x8490
testl %eax, %eax
je 0x38d43
leaq 0xc8(%rsp), %rdi
leaq 0x94c61(%rip), %rsi     # 0xcd0ab
callq 0x8160
testl %eax, %eax
jne 0x38678
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x110(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc9ff9(%rip), %ecx     # 0x1024b8
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x94b70(%rip), %rsi     # 0xcd0ad
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc9eea(%rip), %ecx     # 0x1024b8
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x94a61(%rip), %rsi     # 0xcd0ad
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0xc8(%rsp), %rdi
leaq 0x94a31(%rip), %rsi     # 0xcd0b8
callq 0x8160
testl %eax, %eax
jne 0x388b5
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x108(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc9dc0(%rip), %ecx     # 0x1024bc
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x94940(%rip), %rsi     # 0xcd0ba
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc9cb1(%rip), %ecx     # 0x1024bc
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x94831(%rip), %rsi     # 0xcd0ba
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0xe8(%rsp), %rdi
leaq 0x947e7(%rip), %rsi     # 0xcd0ab
callq 0x8160
testl %eax, %eax
jne 0x38afc
movq 0x40(%rsp), %rdi
callq 0x86e0
movl 0xc9bda(%rip), %r14d    # 0x1024bc
notl %r14d
addl %eax, %r14d
testl %r14d, %r14d
movl $0x0, %ecx
cmovlel %ecx, %r14d
cmpl $0x2, %eax
jl 0x38afc
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x108(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %rbx, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x40(%rsp), %rdi
callq 0x86e0
leal -0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x946e8(%rip), %rsi     # 0xcd0ba
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %rbx, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x40(%rsp), %rdi
callq 0x86e0
leal -0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x945ea(%rip), %rsi     # 0xcd0ba
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0xe8(%rsp), %rdi
leaq 0x945ad(%rip), %rsi     # 0xcd0b8
callq 0x8160
testl %eax, %eax
jne 0x38d43
movq 0x40(%rsp), %rdi
callq 0x86e0
movl 0xc9993(%rip), %r14d    # 0x1024bc
notl %r14d
addl %eax, %r14d
testl %r14d, %r14d
movl $0x0, %ecx
cmovlel %ecx, %r14d
cmpl $0x2, %eax
jl 0x38d43
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x110(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %rbx, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x40(%rsp), %rdi
callq 0x86e0
leal -0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x94494(%rip), %rsi     # 0xcd0ad
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %rbx, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x40(%rsp), %rdi
callq 0x86e0
leal -0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x94396(%rip), %rsi     # 0xcd0ad
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0x90(%rsp), %rdx
cmpq 0x8(%rsp), %rdx
jne 0x38fed
testq %rdx, %rdx
je 0x38d74
movq (%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x8490
testl %eax, %eax
jne 0x38fed
movq 0x68(%rsp), %rdi
callq 0x86e0
movl %eax, %ebx
incl %ebx
movq 0x40(%rsp), %rdi
callq 0x86e0
movl %eax, %r14d
decl %r14d
cmpl %ebx, %r14d
jle 0x38f7b
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x158(%rsp), %rdi
callq 0x84e0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %r12, %rdi
movl %ebx, %esi
callq 0x8810
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %r12, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %r12, %rdi
callq 0x84e0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %r12, %rdi
callq 0x84e0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x6, %edx
movq %r12, %rdi
leaq 0x9425e(%rip), %rsi     # 0xcd0c3
callq 0x84e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %r12, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %r12, %rdi
movl %ebx, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq %rbx, %rdi
movl %r14d, %esi
callq 0x8810
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0xe8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x84e0
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x9416a(%rip), %rsi     # 0xcd0c3
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
jmp 0x38fda
xorl %edx, %edx
jmp 0x38d4b
movl $0x1c, %edx
movq 0xc9061(%rip), %rdi     # 0x101fe8
leaq 0x9413c(%rip), %rsi     # 0xcd0ca
callq 0x84e0
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq 0xc903e(%rip), %rdi     # 0x101fe8
callq 0x84e0
movq %rax, %rbx
movl $0x14, %edx
movq %rax, %rdi
leaq 0x94126(%rip), %rsi     # 0xcd0e7
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq %rsp, %rdi
leaq 0x88(%rsp), %rsi
callq 0x8270
leaq 0x138(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x8270
leaq 0x68(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x8270
leaq 0xc8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x8270
leaq 0xa8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x8270
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x3906d
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x39092
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x390ae
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x390ca
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x390ef
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x39114
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x160(%rsp), %rdi
callq 0x2e784
leaq 0x1b8(%rsp), %rdi
callq 0x2e784
jmp 0x37f6f
movq %r15, %rdi
callq 0x80f0
cmpb $0x1, 0xc9896(%rip)     # 0x1029d8
jne 0x39612
leaq 0x93f5c(%rip), %rsi     # 0xcd0ab
leaq 0xc8(%rsp), %rdi
callq 0x8160
testl %eax, %eax
jne 0x393ad
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x110(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x9483f(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x94813(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc92e4(%rip), %ecx     # 0x1024b8
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x947df(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x947b0(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x94788(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
leaq 0x93e57(%rip), %rsi     # 0xcd0ad
movl $0xa, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x9471c(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x946f0(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc91c1(%rip), %ecx     # 0x1024b8
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x946bc(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x9468d(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x94665(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
leaq 0x93d34(%rip), %rsi     # 0xcd0ad
movl $0xa, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
leaq 0x93d04(%rip), %rsi     # 0xcd0b8
leaq 0xc8(%rsp), %rdi
callq 0x8160
testl %eax, %eax
jne 0x39612
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x108(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x945da(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x945ae(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc9083(%rip), %ecx     # 0x1024bc
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x9457a(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x9454b(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x94523(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
leaq 0x93bff(%rip), %rsi     # 0xcd0ba
movl $0x8, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x944b7(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
leal 0x1(%rax), %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x9448b(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0x68(%rsp), %rdi
callq 0x86e0
movl 0xc8f60(%rip), %ecx     # 0x1024bc
leal (%rax,%rcx), %esi
incl %esi
movq %rbx, %rdi
callq 0x8810
movq %rax, %rbx
leaq 0x94457(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x94428(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x84e0
movq %rax, %rbx
leaq 0x94400(%rip), %rsi     # 0xcd9ca
movl $0x1, %edx
movq %rax, %rdi
callq 0x84e0
leaq 0x93adc(%rip), %rsi     # 0xcd0ba
movl $0x8, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xc89cf(%rip), %rbx     # 0x101fe8
leaq 0x92787(%rip), %rsi     # 0xcbda7
movl $0x4, %edx
movq %rbx, %rdi
callq 0x84e0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x8450
movsbl %al, %esi
movq 0xc899d(%rip), %rdi     # 0x101fe8
callq 0x8040
movq %rax, %rdi
callq 0x8300
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
leaq 0x128(%rsp), %rbx
leaq 0x10(%rsp), %r14
leaq 0xb8(%rsp), %r15
leaq 0x148(%rsp), %r12
je 0x3969a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x396b6
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x396d3
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x396f0
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x8480
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x39706
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x118(%rsp), %rdi
cmpq %rbx, %rdi
je 0x39723
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x1d0(%rsp), %rdi
callq 0x289b4
xorl %eax, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x39746
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x39764
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x39764
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq 0x110(%rsp), %rdi
jmp 0x39b20
jmp 0x39778
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x39796
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x39796
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq 0x108(%rsp), %rdi
jmp 0x39b20
jmp 0x397aa
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x397c8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x397c8
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq 0x158(%rsp), %rdi
jmp 0x39b20
jmp 0x397dc
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x397fa
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
jmp 0x397fa
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq 0x60(%rsp), %rdi
jmp 0x39b20
movq %rax, %rbx
leaq 0x78(%rsp), %r15
jmp 0x39abe
movq %rax, %rbx
jmp 0x39ad5
movq %rax, %rbx
jmp 0x39af2
movq %rax, %rbx
jmp 0x39b0f
jmp 0x39986
movq %rax, %rbx
movl $0x208, %esi            # imm = 0x208
movq %r15, %rdi
jmp 0x39b20
jmp 0x39986
movq %rax, %rbx
movl $0x208, %esi            # imm = 0x208
movq %r14, %rdi
callq 0x8480
jmp 0x39b4f
jmp 0x39891
jmp 0x39884
jmp 0x39938
jmp 0x39986
jmp 0x39938
jmp 0x39891
jmp 0x39884
movq %rax, %rbx
jmp 0x399b6
movq %rax, %rbx
jmp 0x399db
movq %rax, %rbx
jmp 0x398b0
movq %rax, %rbx
jmp 0x399f7
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x398b0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x39a38
movq 0x30(%rsp), %rsi
jmp 0x39a30
jmp 0x39938
movq %rax, %rbx
jmp 0x39a13
jmp 0x39986
movq %rax, %rbx
jmp 0x39b42
movq %rax, %rbx
leaq 0x128(%rsp), %r13
leaq 0x10(%rsp), %r14
leaq 0xb8(%rsp), %r12
leaq 0x148(%rsp), %rbp
leaq 0x78(%rsp), %r15
jmp 0x39a7f
movq %rax, %rbx
leaq 0x128(%rsp), %r13
leaq 0x10(%rsp), %r14
leaq 0xb8(%rsp), %r12
leaq 0x148(%rsp), %rbp
leaq 0x78(%rsp), %r15
jmp 0x39a8c
movq %rax, %rbx
jmp 0x39a38
jmp 0x3998e
jmp 0x3998e
jmp 0x3998e
jmp 0x3995c
jmp 0x3995c
movq %rax, %rbx
movq %rsp, %rdi
callq 0x2e784
jmp 0x39b25
jmp 0x39986
movq %rax, %rbx
leaq 0x128(%rsp), %r13
leaq 0x10(%rsp), %r14
leaq 0xb8(%rsp), %r12
leaq 0x148(%rsp), %rbp
leaq 0x78(%rsp), %r15
jmp 0x39a99
movq %rax, %rbx
jmp 0x39b25
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x399b6
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x399db
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x399f7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x39a13
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x39a38
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x128(%rsp), %r13
leaq 0x10(%rsp), %r14
leaq 0xb8(%rsp), %r12
leaq 0x148(%rsp), %rbp
leaq 0x78(%rsp), %r15
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x39a7f
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x160(%rsp), %rdi
callq 0x2e784
leaq 0x1b8(%rsp), %rdi
callq 0x2e784
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x39abe
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x39ad5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x138(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39af2
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0xa8(%rsp), %rdi
cmpq %r12, %rdi
je 0x39b0f
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x8480
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x39b25
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8480
movq 0x118(%rsp), %rdi
cmpq %r13, %rdi
je 0x39b42
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x8480
leaq 0x1d0(%rsp), %rdi
callq 0x289b4
movq %rbx, %rdi
callq 0x8840