// File: millanek[P]evo/process_vcf_shortRNA.cpp
// Function: shortRNAMain(int, char**)
int shortRNAMain(int argc, char** argv) {
    parseShortRNAOptions(argc, argv);
    
    std::ifstream* smallRNAFile = new std::ifstream(opt::smallRNAFile);
    
    string refFastaFileRoot;
    if (opt::out.empty()) {
        refFastaFileRoot = stripExtension(opt::smallRNAFile);
    } else {
        refFastaFileRoot = opt::out;
    }
    
    string outDistribution = refFastaFileRoot + "smallRNAdist.forR";
    string outDistributionUnique = refFastaFileRoot + "smallRNAdistUnique.forR";
  
    std::cerr << "Output will be in: " << outDistribution << std::endl;
    std::cerr << "and: " << outDistributionUnique << std::endl;
    std::ofstream* outDistributionFile = new std::ofstream(outDistribution);
    std::ofstream* outDistributionUniqueFile = new std::ofstream(outDistributionUnique);
    
    std::map<string, bool> seen;
    
    string line;
    getline(*smallRNAFile, line);
    bool fastq = false;
    if (line[0] == '@') { fastq = true; } else if (line[0] == '>') { fastq = false; } else { std::cerr << "File format not recognised" << std::endl; exit(1); }
    int linesRead = 1;
    
    std::vector<std::vector<int> > counts; std::vector<std::vector<int> > uniqueCounts; counts.resize(34); uniqueCounts.resize(34);
    for (std::vector<std::vector<int> >::size_type i = 0; i != counts.size(); i++) {
        counts[i].resize(4); uniqueCounts[i].resize(4);
    }
    
    while (getline(*smallRNAFile, line)) {
        linesRead++;
        if ((!fastq && (linesRead % 2 == 0))
            || (fastq && ((linesRead+2) % 4 == 0))) {
            if (line[0] == 'N') { continue; }
            else {
                // std::cerr << "Seq: " << line << std::endl;
                string::size_type l = line.length();
                if (seen.find(line) == seen.end()) {
                    switch (line[0]) {
                        case 'A': counts[l][0]++; uniqueCounts[l][0]++;
                            // std::cerr << "l: " << l << " fb: " << line[0] << "c: " << counts[l][0] << std::endl;
                            break;
                        case 'C': counts[l][1]++; uniqueCounts[l][1]++; break;
                        case 'G': counts[l][2]++; uniqueCounts[l][2]++; break;
                        case 'T': counts[l][3]++; uniqueCounts[l][3]++; break;
                        default: std::cerr << "Unknown base in the sequence: " << line[0] << " Exiting..." << std::endl; exit(1);
                    }
                    seen[line] = true;
                } else {
                    switch (line[0]) {
                        case 'A': counts[l][0]++;
                            // std::cerr << "l: " << l << " fb: " << line[0] << "c: " << counts[l][0] << std::endl;
                            break;
                        case 'C': counts[l][1]++; break;
                        case 'G': counts[l][2]++; break;
                        case 'T': counts[l][3]++; break;
                        default: std::cerr << "Unknown base in the sequence: " << line[0] << " Exiting..." << std::endl; exit(1);
                    }
                }
            }
        }
    }
    
    //std::cerr << "Counts_size: " << counts.size() << " " << counts[18][1] << std::endl;
    
    for (std::vector<int>::size_type j = 0; j != 4; j++) {
        for (std::vector<std::vector<int> >::size_type i = 18; i != counts.size(); i++) {
            //std::cerr << " i: " << i << " " << counts[i][j] << std::endl;
            if (i == (counts.size()-1)) {
                *outDistributionFile << counts[i][j] << std::endl;
                *outDistributionUniqueFile << uniqueCounts[i][j] << std::endl;
            }
            else {
                *outDistributionFile << counts[i][j] << "\t";
                *outDistributionUniqueFile << uniqueCounts[i][j] << "\t";
            }
        }
    }
    
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0xe84f0
movl $0x208, %edi            # imm = 0x208
callq 0xa5d0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x178(%rbp)
leaq 0xb379c(%rip), %rsi     # 0x19b048
movl $0x8, %edx
callq 0xaa00
jmp 0xe78b8
movq -0x178(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xa820
leaq 0xb3795(%rip), %rdi     # 0x19b068
callq 0xaa70
testb $0x1, %al
jne 0xe78de
jmp 0xe793b
leaq 0xb3763(%rip), %rsi     # 0x19b048
leaq -0x68(%rbp), %rdi
callq 0x7be70
jmp 0xe78f0
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa710
leaq -0x68(%rbp), %rdi
callq 0xac88
jmp 0xe794f
movq -0x178(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x208, %esi            # imm = 0x208
callq 0xa5e0
jmp 0xe84d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xe84cf
leaq 0xb3726(%rip), %rsi     # 0x19b068
leaq -0x48(%rbp), %rdi
callq 0xa060
jmp 0xe794d
jmp 0xe794f
leaq 0x61942(%rip), %rdx     # 0x149298
leaq -0x88(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3da80
jmp 0xe7968
leaq 0x6193b(%rip), %rdx     # 0x1492aa
leaq -0xa8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3da80
jmp 0xe7981
movq 0xb1668(%rip), %rdi     # 0x198ff0
leaq 0x61933(%rip), %rsi     # 0x1492c2
callq 0xa5c0
movq %rax, -0x180(%rbp)
jmp 0xe799d
movq -0x180(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xa520
movq %rax, -0x188(%rbp)
jmp 0xe79b9
movq -0x188(%rbp), %rdi
movq 0xb15c1(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe79ce
movq 0xb161b(%rip), %rdi     # 0x198ff0
leaq 0x46dde(%rip), %rsi     # 0x12e7ba
callq 0xa5c0
movq %rax, -0x190(%rbp)
jmp 0xe79ea
movq -0x190(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0xa520
movq %rax, -0x198(%rbp)
jmp 0xe7a06
movq -0x198(%rbp), %rdi
movq 0xb1574(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe7a1b
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1a0(%rbp)
jmp 0xe7a2e
movq -0x1a0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0xe7a48
movq -0x1a0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0x1a8(%rbp)
jmp 0xe7a69
movq -0x1a8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x10, %edx
callq 0xac00
jmp 0xe7a83
movq -0x1a8(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xe8780
leaq -0x108(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0xa820
movq -0x1b0(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0xa0d0
jmp 0xe7ac2
movb $0x0, -0x109(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x1b8(%rbp)
jmp 0xe7ae2
movq -0x1b8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xe7b78
movb $0x1, -0x109(%rbp)
jmp 0xe7be6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xe84c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xe84b7
movq -0x1a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xe84b7
movq -0x1a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0xe84b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xe849f
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x1c0(%rbp)
jmp 0xe7b91
movq -0x1c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0xe7ba9
movb $0x0, -0x109(%rbp)
jmp 0xe7be4
movq 0xb1440(%rip), %rdi     # 0x198ff0
leaq 0x6171f(%rip), %rsi     # 0x1492d6
callq 0xa5c0
movq %rax, -0x1c8(%rbp)
jmp 0xe7bc5
movq -0x1c8(%rbp), %rdi
movq 0xb13b5(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe7bda
movl $0x1, %edi
callq 0xa700
jmp 0xe7be6
movl $0x1, -0x110(%rbp)
leaq -0x128(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x6ccb0
leaq -0x140(%rbp), %rdi
callq 0x6ccb0
movq -0x1d0(%rbp), %rdi
movl $0x22, %esi
callq 0xe87a0
jmp 0xe7c22
leaq -0x140(%rbp), %rdi
movl $0x22, %esi
callq 0xe87a0
jmp 0xe7c35
movq $0x0, -0x148(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x6d780
movq %rax, %rcx
movq -0x1d8(%rbp), %rax
cmpq %rcx, %rax
je 0xe7cf3
movq -0x148(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x4, %esi
callq 0x83c30
jmp 0xe7c8f
movq -0x148(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x4, %esi
callq 0x83c30
jmp 0xe7cb1
jmp 0xe7cb3
movq -0x148(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x148(%rbp)
jmp 0xe7c40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x6d0b0
leaq -0x128(%rbp), %rdi
callq 0x6d0b0
jmp 0xe849f
jmp 0xe7cf5
movq -0x18(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xa0d0
movq %rax, -0x1e0(%rbp)
jmp 0xe7d0e
movq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa740
movb %al, -0x1e1(%rbp)
jmp 0xe7d2c
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0xe7d3b
jmp 0xe8218
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
testb $0x1, -0x109(%rbp)
jne 0xe7d66
movl -0x110(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xe7d8d
testb $0x1, -0x109(%rbp)
je 0xe8213
movl -0x110(%rbp), %eax
addl $0x2, %eax
movl $0x4, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0xe8213
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x1f0(%rbp)
jmp 0xe7da6
movq -0x1f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4e, %eax
jne 0xe7dba
jmp 0xe7cf5
leaq -0x108(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0xa930
movq -0x200(%rbp), %rsi
movq %rax, -0x150(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xe8860
movq %rax, -0x1f8(%rbp)
jmp 0xe7df0
movq -0x1f8(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xe8890
movq %rax, -0x160(%rbp)
leaq -0x158(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0xe8830
testb $0x1, %al
jne 0xe7e2d
jmp 0xe8080
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x208(%rbp)
jmp 0xe7e46
movq -0x208(%rbp), %rax
movsbl (%rax), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x210(%rbp)
subl $0x13, %eax
ja 0xe7fc6
movq -0x210(%rbp), %rax
leaq 0x613d5(%rip), %rcx     # 0x149248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x150(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe8055
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x150(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe8055
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x2, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x150(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x2, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe8055
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x3, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x150(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x3, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe8055
movq 0xb1023(%rip), %rdi     # 0x198ff0
leaq 0x6131d(%rip), %rsi     # 0x1492f1
callq 0xa5c0
movq %rax, -0x218(%rbp)
jmp 0xe7fe2
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x220(%rbp)
jmp 0xe7ffb
movq -0x218(%rbp), %rdi
movq -0x220(%rbp), %rax
movsbl (%rax), %esi
callq 0xa6d0
movq %rax, -0x228(%rbp)
jmp 0xe801a
movq -0x228(%rbp), %rdi
leaq 0x612e8(%rip), %rsi     # 0x149310
callq 0xa5c0
movq %rax, -0x230(%rbp)
jmp 0xe8036
movq -0x230(%rbp), %rdi
movq 0xb0f44(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe804b
movl $0x1, %edi
callq 0xa700
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xe88c0
movq %rax, -0x238(%rbp)
jmp 0xe8071
movq -0x238(%rbp), %rax
movb $0x1, (%rax)
jmp 0xe820f
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x240(%rbp)
jmp 0xe8099
movq -0x240(%rbp), %rax
movsbl (%rax), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x248(%rbp)
subl $0x13, %eax
ja 0xe817e
movq -0x248(%rbp), %rax
leaq 0x61132(%rip), %rcx     # 0x1491f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe820d
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe820d
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x2, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe820d
movq -0x150(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movl $0x3, %esi
callq 0x4d100
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xe820d
movq 0xb0e6b(%rip), %rdi     # 0x198ff0
leaq 0x61165(%rip), %rsi     # 0x1492f1
callq 0xa5c0
movq %rax, -0x250(%rbp)
jmp 0xe819a
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
callq 0xac60
movq %rax, -0x258(%rbp)
jmp 0xe81b3
movq -0x250(%rbp), %rdi
movq -0x258(%rbp), %rax
movsbl (%rax), %esi
callq 0xa6d0
movq %rax, -0x260(%rbp)
jmp 0xe81d2
movq -0x260(%rbp), %rdi
leaq 0x61130(%rip), %rsi     # 0x149310
callq 0xa5c0
movq %rax, -0x268(%rbp)
jmp 0xe81ee
movq -0x268(%rbp), %rdi
movq 0xb0d8c(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe8203
movl $0x1, %edi
callq 0xa700
jmp 0xe820f
jmp 0xe8211
jmp 0xe8213
jmp 0xe7cf5
movq $0x0, -0x168(%rbp)
cmpq $0x4, -0x168(%rbp)
je 0xe8443
movq $0x12, -0x170(%rbp)
movq -0x170(%rbp), %rax
movq %rax, -0x270(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x6d780
movq %rax, %rcx
movq -0x270(%rbp), %rax
cmpq %rcx, %rax
je 0xe842a
movq -0x170(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x6d780
movq %rax, %rcx
movq -0x278(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0xe8357
movq -0xb0(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x170(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movq -0x168(%rbp), %rsi
callq 0x4d100
movq -0x288(%rbp), %rdi
movl (%rax), %esi
callq 0xab20
movq %rax, -0x280(%rbp)
jmp 0xe82e1
movq -0x280(%rbp), %rdi
movq 0xb0c99(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe82f6
movq -0xb8(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x170(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movq -0x168(%rbp), %rsi
callq 0x4d100
movq -0x298(%rbp), %rdi
movl (%rax), %esi
callq 0xab20
movq %rax, -0x290(%rbp)
jmp 0xe833d
movq -0x290(%rbp), %rdi
movq 0xb0c3d(%rip), %rsi     # 0x198f88
callq 0xa610
jmp 0xe8352
jmp 0xe8411
movq -0xb0(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x170(%rbp), %rsi
leaq -0x128(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movq -0x168(%rbp), %rsi
callq 0x4d100
movq -0x2a8(%rbp), %rdi
movl (%rax), %esi
callq 0xab20
movq %rax, -0x2a0(%rbp)
jmp 0xe839e
movq -0x2a0(%rbp), %rdi
leaq 0x4db32(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xe83b3
movq -0xb8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x170(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x705d0
movq %rax, %rdi
movq -0x168(%rbp), %rsi
callq 0x4d100
movq -0x2b8(%rbp), %rdi
movl (%rax), %esi
callq 0xab20
movq %rax, -0x2b0(%rbp)
jmp 0xe83fa
movq -0x2b0(%rbp), %rdi
leaq 0x4dad6(%rip), %rsi     # 0x135ede
callq 0xa5c0
jmp 0xe840f
jmp 0xe8411
jmp 0xe8413
movq -0x170(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x170(%rbp)
jmp 0xe823c
jmp 0xe842c
movq -0x168(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x168(%rbp)
jmp 0xe8223
leaq -0x140(%rbp), %rdi
callq 0x6d0b0
leaq -0x128(%rbp), %rdi
callq 0x6d0b0
leaq -0x108(%rbp), %rdi
callq 0xac88
leaq -0xe8(%rbp), %rdi
callq 0xe89a0
leaq -0xa8(%rbp), %rdi
callq 0xac88
leaq -0x88(%rbp), %rdi
callq 0xac88
leaq -0x48(%rbp), %rdi
callq 0xac88
xorl %eax, %eax
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
leaq -0x108(%rbp), %rdi
callq 0xac88
leaq -0xe8(%rbp), %rdi
callq 0xe89a0
leaq -0xa8(%rbp), %rdi
callq 0xac88
leaq -0x88(%rbp), %rdi
callq 0xac88
leaq -0x48(%rbp), %rdi
callq 0xac88
movq -0x20(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)