// File: BGI-Qingdao[P]ExtractNGSReads/filterPairFQ.cpp
// Function: main
int main(int argc , char ** argv )
{
    
    START_PARSE_ARGS
        DEFINE_ARG_REQUIRED(std::string,input_r1,"the input read1");
        DEFINE_ARG_REQUIRED(std::string,input_r2,"the input read2");
        DEFINE_ARG_REQUIRED(std::string,output_r1,"the output read1");
        DEFINE_ARG_REQUIRED(std::string,output_r2,"the output read2");
        DEFINE_ARG_REQUIRED(std::string,output_rs,"the output singlenton reads");
    END_PARSE_ARGS

    auto i_r1 = BGIQD::FILES::FileReaderFactory::GenerateReaderFromFileName(input_r1.to_string());
    auto i_r2 = BGIQD::FILES::FileReaderFactory::GenerateReaderFromFileName(input_r2.to_string());
    auto o_r1 = BGIQD::FILES::FileWriterFactory::GenerateWriterFromFileName(output_r1.to_string());
    auto o_r2 = BGIQD::FILES::FileWriterFactory::GenerateWriterFromFileName(output_r2.to_string());
    auto o_rs = BGIQD::FILES::FileWriterFactory::GenerateWriterFromFileName(output_rs.to_string());
    if( i_r1 == NULL )
        FATAL("input_r1 failed to open !!");
    if( ! o_r1 || !o_r2 || ! o_rs )
        FATAL("open output file failed !! ");
    if( i_r2 == NULL )
        FATAL("input_r2 failed to open !!");

    std::vector<Read> buffer;
    // Load read1
    Reader reader1;
    reader1.LoadAllFastq(*i_r1,buffer);
    std::cerr<<" Load "<<buffer.size()<<" reads from read1. "<<std::endl;
    for( const auto & r : buffer )
    {
        reads1[r.head.readName] = r ;
    }
    buffer.clear();
    delete i_r1 ;
    // Load read2
    Reader reader2;
    reader2.LoadAllFastq(*i_r2,buffer);
    std::cerr<<" Load "<<buffer.size()<<" reads from read2. "<<std::endl;
    for( const auto & r : buffer )
    {
        reads2[r.head.readName] = r ;
    }
    buffer.clear();
    delete i_r2 ;
    // find common ;
    std::set<std::string> common ;
    for( const auto & pair : reads1 )
    {
        if( reads2.find( pair.first ) != reads2.end() )
        {
            common.insert(pair.first) ;
        }
    }
    
    std::cerr<<" Total "<<common.size()<<" read pair detected. "<<std::endl;
    auto print_stlfr_reads = []( const Read & r , std::ostream & ost ) {
            ost<<r.head.Head()<<'\n'<<r.seq.atcgs<<"\n+\n"<<std::string(r.seq.atcgs.size() , 'F')<<'\n';
    };
    std::cerr<<"Start print read1 ... "<<std::endl;
    // print read1 
    for( const auto & pair : reads1 )
        if( common.find(pair.first) != common.end() )
            print_stlfr_reads(pair.second , *o_r1);
    delete o_r1 ;
    std::cerr<<"Start print read2 ... "<<std::endl;
    // print read2 
    for( const auto & pair : reads2 )
        if( common.find(pair.first) != common.end() )
            print_stlfr_reads(pair.second , *o_r2);
    delete o_r2 ;
    std::cerr<<"Start print singleton ... "<<std::endl;
    // print singleton
    for( const auto & pair : reads1 )
        if( common.find(pair.first) == common.end() )
            print_stlfr_reads(pair.second , *o_rs);
    for( const auto & pair : reads2 )
        if( common.find(pair.first) == common.end() )
            print_stlfr_reads(pair.second , *o_rs);
    delete o_rs ;
    std::cerr<<"Done ! "<<std::endl;
    return 0 ;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc40, %rsp            # imm = 0xC40
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x17988(%rip), %rdi     # 0x1d3e8
callq 0x8240
movl $0x0, 0x17a09(%rip)     # 0x1d478
leaq -0x89(%rbp), %rdi
callq 0x8260
movl %eax, -0x924(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x920(%rbp)
callq 0x56a0
movq -0x920(%rbp), %rdx
leaq 0xe562(%rip), %rsi      # 0x14004
leaq -0xb0(%rbp), %rdi
callq 0x5510
jmp 0x5ab0
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x930(%rbp)
callq 0x56a0
movq -0x930(%rbp), %rdx
leaq 0xe5dd(%rip), %rsi      # 0x140ae
leaq -0xe8(%rbp), %rdi
callq 0x5510
jmp 0x5adf
leaq -0x111(%rbp), %rdi
movq %rdi, -0x938(%rbp)
callq 0x56a0
movq -0x938(%rbp), %rdx
leaq 0xe50d(%rip), %rsi      # 0x1400d
leaq -0x110(%rbp), %rdi
callq 0x5510
jmp 0x5b0e
movl -0x924(%rbp), %esi
leaq -0x88(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
xorl %ecx, %ecx
leaq -0xe8(%rbp), %r8
leaq -0x110(%rbp), %r9
callq 0x8270
jmp 0x5b39
leaq -0x110(%rbp), %rdi
callq 0x5250
leaq -0x111(%rbp), %rdi
callq 0x5430
leaq -0xe8(%rbp), %rdi
callq 0x5250
leaq -0xe9(%rbp), %rdi
callq 0x5430
leaq -0xb0(%rbp), %rdi
callq 0x5250
leaq -0xb1(%rbp), %rdi
callq 0x5430
leaq 0x17860(%rip), %rdi     # 0x1d3e8
leaq 0x178e9(%rip), %rsi     # 0x1d478
callq 0x8460
movq %rax, -0x940(%rbp)
jmp 0x5b9d
movq -0x940(%rbp), %rax
leaq -0x88(%rbp), %rcx
movq %rcx, (%rax)
movl 0x178c4(%rip), %eax     # 0x1d478
incl %eax
movl %eax, 0x178bc(%rip)     # 0x1d478
leaq -0x191(%rbp), %rdi
callq 0x8260
movl %eax, -0x944(%rbp)
jmp 0x5bd0
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x950(%rbp)
callq 0x56a0
movq -0x950(%rbp), %rdx
leaq 0xe42c(%rip), %rsi      # 0x1401d
leaq -0x1b8(%rbp), %rdi
callq 0x5510
jmp 0x5bff
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x958(%rbp)
callq 0x56a0
movq -0x958(%rbp), %rdx
leaq 0xe48e(%rip), %rsi      # 0x140ae
leaq -0x1e0(%rbp), %rdi
callq 0x5510
jmp 0x5c2e
leaq -0x209(%rbp), %rdi
movq %rdi, -0x960(%rbp)
callq 0x56a0
movq -0x960(%rbp), %rdx
leaq 0xe3d7(%rip), %rsi      # 0x14026
leaq -0x208(%rbp), %rdi
callq 0x5510
jmp 0x5c5d
movl -0x944(%rbp), %esi
leaq -0x190(%rbp), %rdi
leaq -0x1b8(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x1e0(%rbp), %r8
leaq -0x208(%rbp), %r9
callq 0x8270
jmp 0x5c88
leaq -0x208(%rbp), %rdi
callq 0x5250
leaq -0x209(%rbp), %rdi
callq 0x5430
leaq -0x1e0(%rbp), %rdi
callq 0x5250
leaq -0x1e1(%rbp), %rdi
callq 0x5430
leaq -0x1b8(%rbp), %rdi
callq 0x5250
leaq -0x1b9(%rbp), %rdi
callq 0x5430
leaq 0x17711(%rip), %rdi     # 0x1d3e8
leaq 0x1779a(%rip), %rsi     # 0x1d478
callq 0x8460
movq %rax, -0x968(%rbp)
jmp 0x5cec
movq -0x968(%rbp), %rax
leaq -0x190(%rbp), %rcx
movq %rcx, (%rax)
movl 0x17775(%rip), %eax     # 0x1d478
incl %eax
movl %eax, 0x1776d(%rip)     # 0x1d478
leaq -0x289(%rbp), %rdi
callq 0x8260
movl %eax, -0x96c(%rbp)
jmp 0x5d1f
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0x978(%rbp)
callq 0x56a0
movq -0x978(%rbp), %rdx
leaq 0xe2f6(%rip), %rsi      # 0x14036
leaq -0x2b0(%rbp), %rdi
callq 0x5510
jmp 0x5d4e
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x980(%rbp)
callq 0x56a0
movq -0x980(%rbp), %rdx
leaq 0xe33f(%rip), %rsi      # 0x140ae
leaq -0x2d8(%rbp), %rdi
callq 0x5510
jmp 0x5d7d
leaq -0x301(%rbp), %rdi
movq %rdi, -0x988(%rbp)
callq 0x56a0
movq -0x988(%rbp), %rdx
leaq 0xe2a2(%rip), %rsi      # 0x14040
leaq -0x300(%rbp), %rdi
callq 0x5510
jmp 0x5dac
movl -0x96c(%rbp), %esi
leaq -0x288(%rbp), %rdi
leaq -0x2b0(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x2d8(%rbp), %r8
leaq -0x300(%rbp), %r9
callq 0x8270
jmp 0x5dd7
leaq -0x300(%rbp), %rdi
callq 0x5250
leaq -0x301(%rbp), %rdi
callq 0x5430
leaq -0x2d8(%rbp), %rdi
callq 0x5250
leaq -0x2d9(%rbp), %rdi
callq 0x5430
leaq -0x2b0(%rbp), %rdi
callq 0x5250
leaq -0x2b1(%rbp), %rdi
callq 0x5430
leaq 0x175c2(%rip), %rdi     # 0x1d3e8
leaq 0x1764b(%rip), %rsi     # 0x1d478
callq 0x8460
movq %rax, -0x990(%rbp)
jmp 0x5e3b
movq -0x990(%rbp), %rax
leaq -0x288(%rbp), %rcx
movq %rcx, (%rax)
movl 0x17626(%rip), %eax     # 0x1d478
incl %eax
movl %eax, 0x1761e(%rip)     # 0x1d478
leaq -0x381(%rbp), %rdi
callq 0x8260
movl %eax, -0x994(%rbp)
jmp 0x5e6e
leaq -0x3a9(%rbp), %rdi
movq %rdi, -0x9a0(%rbp)
callq 0x56a0
movq -0x9a0(%rbp), %rdx
leaq 0xe1c2(%rip), %rsi      # 0x14051
leaq -0x3a8(%rbp), %rdi
callq 0x5510
jmp 0x5e9d
leaq -0x3d1(%rbp), %rdi
movq %rdi, -0x9a8(%rbp)
callq 0x56a0
movq -0x9a8(%rbp), %rdx
leaq 0xe1f0(%rip), %rsi      # 0x140ae
leaq -0x3d0(%rbp), %rdi
callq 0x5510
jmp 0x5ecc
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x9b0(%rbp)
callq 0x56a0
movq -0x9b0(%rbp), %rdx
leaq 0xe16e(%rip), %rsi      # 0x1405b
leaq -0x3f8(%rbp), %rdi
callq 0x5510
jmp 0x5efb
movl -0x994(%rbp), %esi
leaq -0x380(%rbp), %rdi
leaq -0x3a8(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x3d0(%rbp), %r8
leaq -0x3f8(%rbp), %r9
callq 0x8270
jmp 0x5f26
leaq -0x3f8(%rbp), %rdi
callq 0x5250
leaq -0x3f9(%rbp), %rdi
callq 0x5430
leaq -0x3d0(%rbp), %rdi
callq 0x5250
leaq -0x3d1(%rbp), %rdi
callq 0x5430
leaq -0x3a8(%rbp), %rdi
callq 0x5250
leaq -0x3a9(%rbp), %rdi
callq 0x5430
leaq 0x17473(%rip), %rdi     # 0x1d3e8
leaq 0x174fc(%rip), %rsi     # 0x1d478
callq 0x8460
movq %rax, -0x9b8(%rbp)
jmp 0x5f8a
movq -0x9b8(%rbp), %rax
leaq -0x380(%rbp), %rcx
movq %rcx, (%rax)
movl 0x174d7(%rip), %eax     # 0x1d478
incl %eax
movl %eax, 0x174cf(%rip)     # 0x1d478
leaq -0x479(%rbp), %rdi
callq 0x8260
movl %eax, -0x9bc(%rbp)
jmp 0x5fbd
leaq -0x4a1(%rbp), %rdi
movq %rdi, -0x9c8(%rbp)
callq 0x56a0
movq -0x9c8(%rbp), %rdx
leaq 0xe08e(%rip), %rsi      # 0x1406c
leaq -0x4a0(%rbp), %rdi
callq 0x5510
jmp 0x5fec
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x9d0(%rbp)
callq 0x56a0
movq -0x9d0(%rbp), %rdx
leaq 0xe0a1(%rip), %rsi      # 0x140ae
leaq -0x4c8(%rbp), %rdi
callq 0x5510
jmp 0x601b
leaq -0x4f1(%rbp), %rdi
movq %rdi, -0x9d8(%rbp)
callq 0x56a0
movq -0x9d8(%rbp), %rdx
leaq 0xe03a(%rip), %rsi      # 0x14076
leaq -0x4f0(%rbp), %rdi
callq 0x5510
jmp 0x604a
movl -0x9bc(%rbp), %esi
leaq -0x478(%rbp), %rdi
leaq -0x4a0(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x4c8(%rbp), %r8
leaq -0x4f0(%rbp), %r9
callq 0x8270
jmp 0x6075
leaq -0x4f0(%rbp), %rdi
callq 0x5250
leaq -0x4f1(%rbp), %rdi
callq 0x5430
leaq -0x4c8(%rbp), %rdi
callq 0x5250
leaq -0x4c9(%rbp), %rdi
callq 0x5430
leaq -0x4a0(%rbp), %rdi
callq 0x5250
leaq -0x4a1(%rbp), %rdi
callq 0x5430
leaq 0x17324(%rip), %rdi     # 0x1d3e8
leaq 0x173ad(%rip), %rsi     # 0x1d478
callq 0x8460
movq %rax, -0x9e0(%rbp)
jmp 0x60d9
movq -0x9e0(%rbp), %rax
leaq -0x478(%rbp), %rcx
movq %rcx, (%rax)
movl 0x17388(%rip), %eax     # 0x1d478
addl $0x1, %eax
movl %eax, 0x1737f(%rip)     # 0x1d478
movl -0x8(%rbp), %ecx
movb $0x0, -0x51a(%rbp)
movb $0x0, -0x51b(%rbp)
movb $0x0, -0x542(%rbp)
movb $0x0, -0x543(%rbp)
movb $0x0, -0x56a(%rbp)
movb $0x0, -0x56b(%rbp)
movb $0x1, %al
cmpl $0x2, %ecx
movb %al, -0x9e1(%rbp)
jl 0x62a8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x9f8(%rbp)
leaq -0x519(%rbp), %rdi
movq %rdi, -0x9f0(%rbp)
callq 0x56a0
movq -0x9f8(%rbp), %rsi
movq -0x9f0(%rbp), %rdx
movb $0x1, -0x51a(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x5510
jmp 0x617c
movb $0x1, -0x51b(%rbp)
leaq 0xdf08(%rip), %rsi      # 0x14092
leaq -0x518(%rbp), %rdi
callq 0x8540
movb %al, -0x9f9(%rbp)
jmp 0x619e
movb -0x9f9(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x9e1(%rbp)
jne 0x62a8
jmp 0x61b7
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa10(%rbp)
leaq -0x541(%rbp), %rdi
movq %rdi, -0xa08(%rbp)
callq 0x56a0
movq -0xa10(%rbp), %rsi
movq -0xa08(%rbp), %rdx
movb $0x1, -0x542(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x5510
jmp 0x61fc
movb $0x1, -0x543(%rbp)
leaq 0xde8b(%rip), %rsi      # 0x14095
leaq -0x540(%rbp), %rdi
callq 0x8540
movb %al, -0xa11(%rbp)
jmp 0x621e
movb -0xa11(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x9e1(%rbp)
jne 0x62a8
jmp 0x6233
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa28(%rbp)
leaq -0x569(%rbp), %rdi
movq %rdi, -0xa20(%rbp)
callq 0x56a0
movq -0xa28(%rbp), %rsi
movq -0xa20(%rbp), %rdx
movb $0x1, -0x56a(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x5510
jmp 0x6278
movb $0x1, -0x56b(%rbp)
leaq 0xde11(%rip), %rsi      # 0x14097
leaq -0x568(%rbp), %rdi
callq 0x8540
movb %al, -0xa29(%rbp)
jmp 0x629a
movb -0xa29(%rbp), %al
movb %al, -0x9e1(%rbp)
jmp 0x62a8
movb -0x9e1(%rbp), %al
movb %al, -0xa2a(%rbp)
testb $0x1, -0x56b(%rbp)
jne 0x62bf
jmp 0x62cb
leaq -0x568(%rbp), %rdi
callq 0x5250
testb $0x1, -0x56a(%rbp)
jne 0x62d6
jmp 0x62e2
leaq -0x569(%rbp), %rdi
callq 0x5430
testb $0x1, -0x543(%rbp)
jne 0x62ed
jmp 0x62f9
leaq -0x540(%rbp), %rdi
callq 0x5250
testb $0x1, -0x542(%rbp)
jne 0x6304
jmp 0x6310
leaq -0x541(%rbp), %rdi
callq 0x5430
testb $0x1, -0x51b(%rbp)
jne 0x631b
jmp 0x6327
leaq -0x518(%rbp), %rdi
callq 0x5250
testb $0x1, -0x51a(%rbp)
jne 0x6332
jmp 0x633e
leaq -0x519(%rbp), %rdi
callq 0x5430
movb -0xa2a(%rbp), %al
testb $0x1, %al
jne 0x634d
jmp 0x6ad7
movq 0x16c9c(%rip), %rdi     # 0x1cff0
leaq 0xdd41(%rip), %rsi      # 0x1409c
callq 0x53b0
movq %rax, -0xa38(%rbp)
jmp 0x6369
movq -0xa38(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x53b0
movq %rax, -0xa40(%rbp)
jmp 0x6385
movq -0xa40(%rbp), %rdi
leaq 0xdd12(%rip), %rsi      # 0x140a5
callq 0x53b0
movq %rax, -0xa48(%rbp)
jmp 0x63a1
movq -0xa48(%rbp), %rdi
movq 0x16bf9(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x63b6
leaq 0x1702b(%rip), %rax     # 0x1d3e8
movq %rax, -0x578(%rbp)
leaq 0x1701d(%rip), %rdi     # 0x1d3e8
callq 0x8570
movq %rax, -0x580(%rbp)
leaq 0x1700a(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x588(%rbp)
leaq -0x580(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x85d0
testb $0x1, %al
jne 0x6406
jmp 0x6ac1
leaq -0x580(%rbp), %rdi
callq 0x8600
movq %rax, -0x590(%rbp)
movq 0x16bd0(%rip), %rdi     # 0x1cff0
leaq 0xdc85(%rip), %rsi      # 0x140ac
callq 0x53b0
movq %rax, -0xa50(%rbp)
jmp 0x6435
movq -0xa50(%rbp), %rdi
leaq 0xdcb2(%rip), %rsi      # 0x140f5
callq 0x53b0
movq %rax, -0xa58(%rbp)
jmp 0x6451
movq -0xa58(%rbp), %rdi
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x28, %rsi
callq 0x5350
jmp 0x646e
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
je 0x694a
movq 0x16b67(%rip), %rdi     # 0x1cff0
leaq 0xdc1d(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xa60(%rbp)
jmp 0x649e
movq -0xa60(%rbp), %rdi
leaq 0xdc03(%rip), %rsi      # 0x140af
callq 0x53b0
jmp 0x64b3
jmp 0x697d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6542
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x652a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6512
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x5250
leaq -0x111(%rbp), %rdi
callq 0x5430
leaq -0xe8(%rbp), %rdi
callq 0x5250
leaq -0xe9(%rbp), %rdi
callq 0x5430
leaq -0xb0(%rbp), %rdi
callq 0x5250
leaq -0xb1(%rbp), %rdi
callq 0x5430
jmp 0x802a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x801e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x65f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x65dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x65c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x5250
leaq -0x209(%rbp), %rdi
callq 0x5430
leaq -0x1e0(%rbp), %rdi
callq 0x5250
leaq -0x1e1(%rbp), %rdi
callq 0x5430
leaq -0x1b8(%rbp), %rdi
callq 0x5250
leaq -0x1b9(%rbp), %rdi
callq 0x5430
jmp 0x801e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x8012
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x66a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x668e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6676
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x5250
leaq -0x301(%rbp), %rdi
callq 0x5430
leaq -0x2d8(%rbp), %rdi
callq 0x5250
leaq -0x2d9(%rbp), %rdi
callq 0x5430
leaq -0x2b0(%rbp), %rdi
callq 0x5250
leaq -0x2b1(%rbp), %rdi
callq 0x5430
jmp 0x8012
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x8006
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6740
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6728
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x5250
leaq -0x3f9(%rbp), %rdi
callq 0x5430
leaq -0x3d0(%rbp), %rdi
callq 0x5250
leaq -0x3d1(%rbp), %rdi
callq 0x5430
leaq -0x3a8(%rbp), %rdi
callq 0x5250
leaq -0x3a9(%rbp), %rdi
callq 0x5430
jmp 0x8006
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x7ffa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x680a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x67f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x67da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x5250
leaq -0x4f1(%rbp), %rdi
callq 0x5430
leaq -0x4c8(%rbp), %rdi
callq 0x5250
leaq -0x4c9(%rbp), %rdi
callq 0x5430
leaq -0x4a0(%rbp), %rdi
callq 0x5250
leaq -0x4a1(%rbp), %rdi
callq 0x5430
jmp 0x7ffa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x7fee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x692e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6915
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x68fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x68e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x68ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
testb $0x1, -0x56b(%rbp)
jne 0x68bc
jmp 0x68c8
leaq -0x568(%rbp), %rdi
callq 0x5250
jmp 0x68ca
testb $0x1, -0x56a(%rbp)
jne 0x68d5
jmp 0x68e1
leaq -0x569(%rbp), %rdi
callq 0x5430
jmp 0x68e3
testb $0x1, -0x543(%rbp)
jne 0x68ee
jmp 0x68fa
leaq -0x540(%rbp), %rdi
callq 0x5250
jmp 0x68fc
testb $0x1, -0x542(%rbp)
jne 0x6907
jmp 0x6913
leaq -0x541(%rbp), %rdi
callq 0x5430
jmp 0x6915
testb $0x1, -0x51b(%rbp)
jne 0x6920
jmp 0x692c
leaq -0x518(%rbp), %rdi
callq 0x5250
jmp 0x692e
testb $0x1, -0x51a(%rbp)
jne 0x6939
jmp 0x6945
leaq -0x519(%rbp), %rdi
callq 0x5430
jmp 0x7fee
movq 0x1669f(%rip), %rdi     # 0x1cff0
leaq 0xd755(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xa68(%rbp)
jmp 0x6966
movq -0xa68(%rbp), %rdi
leaq 0xd746(%rip), %rsi      # 0x140ba
callq 0x53b0
jmp 0x697b
jmp 0x697d
movq 0x1666c(%rip), %rdi     # 0x1cff0
leaq 0xd722(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xa70(%rbp)
jmp 0x6999
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x68(%rax), %esi
leaq -0x5b0(%rbp), %rdi
callq 0x8620
jmp 0x69b5
movq -0xa70(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x5350
jmp 0x69ca
leaq -0x5b0(%rbp), %rdi
callq 0x5250
movq 0x16613(%rip), %rdi     # 0x1cff0
leaq 0xd6c9(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xa78(%rbp)
jmp 0x69f2
movq -0xa78(%rbp), %rdi
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
callq 0x5350
jmp 0x6a0f
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
je 0x6a99
movq 0x165ca(%rip), %rdi     # 0x1cff0
leaq 0xd698(%rip), %rsi      # 0x140c5
callq 0x53b0
movq %rax, -0xa80(%rbp)
jmp 0x6a3b
movq -0xa80(%rbp), %rdi
movq -0x590(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x48, %rsi
callq 0x5350
movq %rax, -0xa88(%rbp)
jmp 0x6a5f
movq -0xa88(%rbp), %rdi
leaq 0xd7f6(%rip), %rsi      # 0x14263
callq 0x53b0
jmp 0x6a74
jmp 0x6a99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq 0x16550(%rip), %rdi     # 0x1cff0
movq 0x16501(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x6aae
jmp 0x6ab0
leaq -0x580(%rbp), %rdi
callq 0x8880
jmp 0x63ea
movl $0x0, -0x4(%rbp)
movl $0x1, -0x5b4(%rbp)
jmp 0x7fa6
movl $0x0, -0x5b8(%rbp)
leaq 0x16900(%rip), %rax     # 0x1d3e8
movq %rax, -0x5c0(%rbp)
leaq 0x168f2(%rip), %rdi     # 0x1d3e8
callq 0x8570
movq %rax, -0x5c8(%rbp)
leaq 0x168df(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x5d0(%rbp)
leaq -0x5c8(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x85d0
testb $0x1, %al
jne 0x6b31
jmp 0x6c2f
leaq -0x5c8(%rbp), %rdi
callq 0x8600
movq %rax, -0x5d8(%rbp)
movq -0x5d8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x5dc(%rbp)
movq -0x5d8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x5e8(%rbp)
movq -0x5e8(%rbp), %rdi
addq $0x28, %rdi
callq 0x51b0
movq %rax, %rcx
movslq -0x5dc(%rbp), %rdx
leaq 0x168fa(%rip), %rax     # 0x1d480
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x5e8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
jne 0x6bbb
movslq -0x5dc(%rbp), %rcx
leaq 0x168d5(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x0, 0x8(%rax)
jmp 0x6bd7
movslq -0x5dc(%rbp), %rcx
leaq 0x168b7(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x1, 0x8(%rax)
movslq -0x5dc(%rbp), %rcx
leaq 0x1689b(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movq $0x0, 0x10(%rax)
movl -0x5dc(%rbp), %ecx
movslq -0x5dc(%rbp), %rdx
leaq 0x16878(%rip), %rax     # 0x1d480
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x18(%rax)
movl -0x5dc(%rbp), %eax
movl %eax, -0x5b8(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x8880
jmp 0x6b15
movl -0x5b8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5ec(%rbp)
cmpl $0xa, -0x5ec(%rbp)
jge 0x6cd0
movslq -0x5ec(%rbp), %rcx
leaq 0x16827(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movslq -0x5ec(%rbp), %rcx
leaq 0x1680b(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x0, 0x8(%rax)
movslq -0x5ec(%rbp), %rcx
leaq 0x167ef(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movq $0x0, 0x10(%rax)
movslq -0x5ec(%rbp), %rcx
leaq 0x167d2(%rip), %rax     # 0x1d480
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x0, 0x18(%rax)
movl -0x5ec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5ec(%rbp)
jmp 0x6c3e
movl $0x0, -0x5f4(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0xd3c6(%rip), %rdx      # 0x140ae
leaq 0x16791(%rip), %rcx     # 0x1d480
leaq -0x5f4(%rbp), %r8
callq 0x5090
movl %eax, -0x5f0(%rbp)
cmpl $-0x1, %eax
je 0x6da8
leaq 0x166d7(%rip), %rdi     # 0x1d3e8
leaq -0x5f0(%rbp), %rsi
callq 0x88b0
movq %rax, -0xa90(%rbp)
jmp 0x6d26
movq -0xa90(%rbp), %rax
movq %rax, -0x600(%rbp)
leaq 0x166ad(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x608(%rbp)
leaq -0x600(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0x88e0
testb $0x1, %al
jne 0x6d60
jmp 0x6d65
jmp 0x6cda
leaq -0x600(%rbp), %rdi
movq %rdi, -0xa98(%rbp)
callq 0x8910
movq -0xa98(%rbp), %rdi
movq 0x8(%rax), %rax
movb $0x1, 0x1(%rax)
callq 0x8910
movq 0x8(%rax), %rdi
movq 0x16219(%rip), %rax     # 0x1cfb0
movq (%rax), %rsi
xorl %edx, %edx
callq 0x8930
jmp 0x6da3
jmp 0x6cda
movb $0x1, -0x609(%rbp)
leaq 0x16632(%rip), %rax     # 0x1d3e8
movq %rax, -0x618(%rbp)
leaq 0x16624(%rip), %rdi     # 0x1d3e8
callq 0x8570
movq %rax, -0x620(%rbp)
leaq 0x16611(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x628(%rbp)
leaq -0x620(%rbp), %rdi
leaq -0x628(%rbp), %rsi
callq 0x85d0
testb $0x1, %al
jne 0x6dff
jmp 0x6ef6
leaq -0x620(%rbp), %rdi
callq 0x8600
movq %rax, -0x630(%rbp)
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
jne 0x6e8f
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, 0x1(%rax)
jne 0x6e8f
movq 0x161b6(%rip), %rdi     # 0x1cff0
leaq 0xd292(%rip), %rsi      # 0x140d3
callq 0x53b0
movq %rax, -0xaa0(%rbp)
jmp 0x6e4f
movq -0xaa0(%rbp), %rdi
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x28, %rsi
callq 0x5350
movq %rax, -0xaa8(%rbp)
jmp 0x6e73
movq -0xaa8(%rbp), %rdi
movq 0x16127(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x6e88
movb $0x0, -0x609(%rbp)
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
je 0x6ee3
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, 0x1(%rax)
jne 0x6ee3
movq -0x630(%rbp), %rax
movq 0x8(%rax), %rdi
movq %rdi, -0xab0(%rbp)
addq $0x48, %rdi
callq 0x51b0
movq -0xab0(%rbp), %rdi
movq %rax, %rsi
movl $0x1, %edx
callq 0x8930
jmp 0x6ee1
jmp 0x6ee3
jmp 0x6ee5
leaq -0x620(%rbp), %rdi
callq 0x8880
jmp 0x6de3
testb $0x1, -0x609(%rbp)
jne 0x71f4
movq 0x160e6(%rip), %rdi     # 0x1cff0
leaq 0xd18b(%rip), %rsi      # 0x1409c
callq 0x53b0
movq %rax, -0xab8(%rbp)
jmp 0x6f1f
movq -0xab8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x53b0
movq %rax, -0xac0(%rbp)
jmp 0x6f3b
movq -0xac0(%rbp), %rdi
leaq 0xd15c(%rip), %rsi      # 0x140a5
callq 0x53b0
movq %rax, -0xac8(%rbp)
jmp 0x6f57
movq -0xac8(%rbp), %rdi
movq 0x16043(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x6f6c
leaq 0x16475(%rip), %rax     # 0x1d3e8
movq %rax, -0x638(%rbp)
leaq 0x16467(%rip), %rdi     # 0x1d3e8
callq 0x8570
movq %rax, -0x640(%rbp)
leaq 0x16454(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x648(%rbp)
leaq -0x640(%rbp), %rdi
leaq -0x648(%rbp), %rsi
callq 0x85d0
testb $0x1, %al
jne 0x6fbc
jmp 0x71de
leaq -0x640(%rbp), %rdi
callq 0x8600
movq %rax, -0x650(%rbp)
movq 0x1601a(%rip), %rdi     # 0x1cff0
leaq 0xd0cf(%rip), %rsi      # 0x140ac
callq 0x53b0
movq %rax, -0xad0(%rbp)
jmp 0x6feb
movq -0xad0(%rbp), %rdi
leaq 0xd0fc(%rip), %rsi      # 0x140f5
callq 0x53b0
movq %rax, -0xad8(%rbp)
jmp 0x7007
movq -0xad8(%rbp), %rdi
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x28, %rsi
callq 0x5350
jmp 0x7024
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
je 0x7067
movq 0x15fb5(%rip), %rdi     # 0x1cff0
leaq 0xd06b(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xae0(%rbp)
jmp 0x7050
movq -0xae0(%rbp), %rdi
leaq 0xd051(%rip), %rsi      # 0x140af
callq 0x53b0
jmp 0x7065
jmp 0x709a
movq 0x15f82(%rip), %rdi     # 0x1cff0
leaq 0xd038(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xae8(%rbp)
jmp 0x7083
movq -0xae8(%rbp), %rdi
leaq 0xd029(%rip), %rsi      # 0x140ba
callq 0x53b0
jmp 0x7098
jmp 0x709a
movq 0x15f4f(%rip), %rdi     # 0x1cff0
leaq 0xd005(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xaf0(%rbp)
jmp 0x70b6
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x68(%rax), %esi
leaq -0x670(%rbp), %rdi
callq 0x8620
jmp 0x70d2
movq -0xaf0(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0x5350
jmp 0x70e7
leaq -0x670(%rbp), %rdi
callq 0x5250
movq 0x15ef6(%rip), %rdi     # 0x1cff0
leaq 0xcfac(%rip), %rsi      # 0x140ad
callq 0x53b0
movq %rax, -0xaf8(%rbp)
jmp 0x710f
movq -0xaf8(%rbp), %rdi
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
callq 0x5350
jmp 0x712c
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, (%rax)
je 0x71b6
movq 0x15ead(%rip), %rdi     # 0x1cff0
leaq 0xcf7b(%rip), %rsi      # 0x140c5
callq 0x53b0
movq %rax, -0xb00(%rbp)
jmp 0x7158
movq -0xb00(%rbp), %rdi
movq -0x650(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x48, %rsi
callq 0x5350
movq %rax, -0xb08(%rbp)
jmp 0x717c
movq -0xb08(%rbp), %rdi
leaq 0xd0d9(%rip), %rsi      # 0x14263
callq 0x53b0
jmp 0x7191
jmp 0x71b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x670(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq 0x15e33(%rip), %rdi     # 0x1cff0
movq 0x15de4(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x71cb
jmp 0x71cd
leaq -0x640(%rbp), %rdi
callq 0x8880
jmp 0x6fa0
movl $0x0, -0x4(%rbp)
movl $0x1, -0x5b4(%rbp)
jmp 0x7fa6
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq 0x15dee(%rip), %rdi     # 0x1cff0
callq 0x53b0
jmp 0x7209
leaq 0x161d8(%rip), %rax     # 0x1d3e8
movq %rax, -0x678(%rbp)
leaq 0x161ca(%rip), %rdi     # 0x1d3e8
callq 0x8570
movq %rax, -0x680(%rbp)
leaq 0x161b7(%rip), %rdi     # 0x1d3e8
callq 0x85a0
movq %rax, -0x688(%rbp)
leaq -0x680(%rbp), %rdi
leaq -0x688(%rbp), %rsi
callq 0x85d0
testb $0x1, %al
jne 0x7259
jmp 0x734f
leaq -0x680(%rbp), %rdi
callq 0x8600
movq %rax, -0x690(%rbp)
movq -0x690(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, 0x1(%rax)
je 0x733c
movq 0x15d68(%rip), %rdi     # 0x1cff0
leaq 0xce65(%rip), %rsi      # 0x140f4
callq 0x53b0
movq %rax, -0xb10(%rbp)
jmp 0x729d
movq -0xb10(%rbp), %rdi
movq -0x690(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x28, %rsi
callq 0x5350
movq %rax, -0xb18(%rbp)
jmp 0x72c1
movq -0xb18(%rbp), %rdi
leaq 0xcf54(%rip), %rsi      # 0x14223
callq 0x53b0
movq %rax, -0xb20(%rbp)
jmp 0x72dd
movq -0x690(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x6b0(%rbp), %rdi
callq 0x8d80
jmp 0x72f6
movq -0xb20(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x5350
jmp 0x730b
leaq -0x6b0(%rbp), %rdi
callq 0x5250
jmp 0x733c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x5250
jmp 0x7fee
jmp 0x733e
leaq -0x680(%rbp), %rdi
callq 0x8880
jmp 0x723d
movq 0x15c9a(%rip), %rdi     # 0x1cff0
movq 0x15c4b(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7364
jmp 0x7366
leaq -0x6d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x8ff0
jmp 0x737b
leaq -0x6d8(%rbp), %rdi
callq 0x11010
movq %rax, -0xb28(%rbp)
jmp 0x7390
leaq -0x6d8(%rbp), %rdi
callq 0x5250
movq -0xb28(%rbp), %rax
movq %rax, -0x6b8(%rbp)
leaq -0x700(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x8ff0
jmp 0x73bf
leaq -0x700(%rbp), %rdi
callq 0x11010
movq %rax, -0xb30(%rbp)
jmp 0x73d4
leaq -0x700(%rbp), %rdi
callq 0x5250
movq -0xb30(%rbp), %rax
movq %rax, -0x6e0(%rbp)
leaq -0x728(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x8ff0
jmp 0x7403
leaq -0x728(%rbp), %rdi
callq 0x11540
movq %rax, -0xb38(%rbp)
jmp 0x7418
leaq -0x728(%rbp), %rdi
callq 0x5250
movq -0xb38(%rbp), %rax
movq %rax, -0x708(%rbp)
leaq -0x750(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x8ff0
jmp 0x7447
leaq -0x750(%rbp), %rdi
callq 0x11540
movq %rax, -0xb40(%rbp)
jmp 0x745c
leaq -0x750(%rbp), %rdi
callq 0x5250
movq -0xb40(%rbp), %rax
movq %rax, -0x730(%rbp)
leaq -0x778(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x8ff0
jmp 0x748b
leaq -0x778(%rbp), %rdi
callq 0x11540
movq %rax, -0xb48(%rbp)
jmp 0x74a0
leaq -0x778(%rbp), %rdi
callq 0x5250
movq -0xb48(%rbp), %rax
movq %rax, -0x758(%rbp)
cmpq $0x0, -0x6b8(%rbp)
jne 0x7596
leaq 0xcc29(%rip), %rdi      # 0x140f8
leaq 0xcc44(%rip), %rsi      # 0x1411a
movl $0x21, %edx
leaq 0xcc49(%rip), %rcx      # 0x1412b
callq 0x5270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x700(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x750(%rbp), %rdi
callq 0x5250
jmp 0x7fee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x778(%rbp), %rdi
callq 0x5250
jmp 0x7fee
cmpq $0x0, -0x708(%rbp)
je 0x75b4
cmpq $0x0, -0x730(%rbp)
je 0x75b4
cmpq $0x0, -0x758(%rbp)
jne 0x75d3
leaq 0xcb87(%rip), %rdi      # 0x14142
leaq 0xcb58(%rip), %rsi      # 0x1411a
movl $0x23, %edx
leaq 0xcb5d(%rip), %rcx      # 0x1412b
callq 0x5270
cmpq $0x0, -0x6e0(%rbp)
jne 0x75fc
leaq 0xcb81(%rip), %rdi      # 0x14165
leaq 0xcb2f(%rip), %rsi      # 0x1411a
movl $0x25, %edx
leaq 0xcb34(%rip), %rcx      # 0x1412b
callq 0x5270
leaq -0x790(%rbp), %rdi
movq %rdi, -0xb50(%rbp)
callq 0x9080
movq -0xb50(%rbp), %rsi
movq -0x6b8(%rbp), %rdi
callq 0x90a0
jmp 0x7624
movq 0x159c5(%rip), %rdi     # 0x1cff0
leaq 0xcb55(%rip), %rsi      # 0x14187
callq 0x53b0
movq %rax, -0xb58(%rbp)
jmp 0x7640
leaq -0x790(%rbp), %rdi
callq 0x9390
movq -0xb58(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, -0xb60(%rbp)
jmp 0x7664
movq -0xb60(%rbp), %rdi
leaq 0xcb1c(%rip), %rsi      # 0x1418e
callq 0x53b0
movq %rax, -0xb68(%rbp)
jmp 0x7680
movq -0xb68(%rbp), %rdi
movq 0x1591a(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7695
leaq -0x790(%rbp), %rax
movq %rax, -0x7a0(%rbp)
movq -0x7a0(%rbp), %rdi
callq 0x93c0
movq %rax, -0x7a8(%rbp)
movq -0x7a0(%rbp), %rdi
callq 0x93f0
movq %rax, -0x7b0(%rbp)
leaq -0x7a8(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x9420
testb $0x1, %al
jne 0x76e2
jmp 0x7758
leaq -0x7a8(%rbp), %rdi
callq 0x9460
movq %rax, -0x7b8(%rbp)
movq -0x7b8(%rbp), %rsi
movq %rsi, -0xb78(%rbp)
addq $0x38, %rsi
leaq 0x15d0a(%rip), %rdi     # 0x1d418
callq 0x9480
movq %rax, -0xb70(%rbp)
jmp 0x771c
movq -0xb78(%rbp), %rsi
movq -0xb70(%rbp), %rdi
callq 0x9560
jmp 0x7731
jmp 0x7733
leaq -0x7a8(%rbp), %rdi
callq 0x95d0
jmp 0x76c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x7f98
leaq -0x790(%rbp), %rdi
callq 0x95f0
movq -0x6b8(%rbp), %rax
movq %rax, -0xb80(%rbp)
cmpq $0x0, %rax
je 0x7785
movq -0xb80(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x6e0(%rbp), %rdi
leaq -0x790(%rbp), %rsi
callq 0x90a0
jmp 0x779a
movq 0x1584f(%rip), %rdi     # 0x1cff0
leaq 0xc9df(%rip), %rsi      # 0x14187
callq 0x53b0
movq %rax, -0xb88(%rbp)
jmp 0x77b6
leaq -0x790(%rbp), %rdi
callq 0x9390
movq -0xb88(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, -0xb90(%rbp)
jmp 0x77da
movq -0xb90(%rbp), %rdi
leaq 0xc9ba(%rip), %rsi      # 0x141a2
callq 0x53b0
movq %rax, -0xb98(%rbp)
jmp 0x77f6
movq -0xb98(%rbp), %rdi
movq 0x157a4(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x780b
leaq -0x790(%rbp), %rax
movq %rax, -0x7c8(%rbp)
movq -0x7c8(%rbp), %rdi
callq 0x93c0
movq %rax, -0x7d0(%rbp)
movq -0x7c8(%rbp), %rdi
callq 0x93f0
movq %rax, -0x7d8(%rbp)
leaq -0x7d0(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
callq 0x9420
testb $0x1, %al
jne 0x7858
jmp 0x78b7
leaq -0x7d0(%rbp), %rdi
callq 0x9460
movq %rax, -0x7e0(%rbp)
movq -0x7e0(%rbp), %rsi
movq %rsi, -0xba8(%rbp)
addq $0x38, %rsi
leaq 0x15bc4(%rip), %rdi     # 0x1d448
callq 0x9480
movq %rax, -0xba0(%rbp)
jmp 0x7892
movq -0xba8(%rbp), %rsi
movq -0xba0(%rbp), %rdi
callq 0x9560
jmp 0x78a7
jmp 0x78a9
leaq -0x7d0(%rbp), %rdi
callq 0x95d0
jmp 0x783f
leaq -0x790(%rbp), %rdi
callq 0x95f0
movq -0x6e0(%rbp), %rax
movq %rax, -0xbb0(%rbp)
cmpq $0x0, %rax
je 0x78e4
movq -0xbb0(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
leaq -0x810(%rbp), %rdi
callq 0x9610
leaq 0x15b21(%rip), %rax     # 0x1d418
movq %rax, -0x818(%rbp)
leaq 0x15b13(%rip), %rdi     # 0x1d418
callq 0x9630
movq %rax, -0x820(%rbp)
leaq 0x15b00(%rip), %rdi     # 0x1d418
callq 0x9660
movq %rax, -0x828(%rbp)
leaq -0x820(%rbp), %rdi
leaq -0x828(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x7940
jmp 0x7a1d
leaq -0x820(%rbp), %rdi
callq 0x96c0
movq %rax, -0x830(%rbp)
movq -0x830(%rbp), %rsi
leaq 0x15ae7(%rip), %rdi     # 0x1d448
callq 0x96e0
movq %rax, -0xbb8(%rbp)
jmp 0x796f
movq -0xbb8(%rbp), %rax
movq %rax, -0x838(%rbp)
leaq 0x15ac4(%rip), %rdi     # 0x1d448
callq 0x9660
movq %rax, -0x840(%rbp)
leaq -0x838(%rbp), %rdi
leaq -0x840(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x79a9
jmp 0x7a0a
movq -0x830(%rbp), %rsi
leaq -0x810(%rbp), %rdi
callq 0x9710
movb %dl, -0xbc1(%rbp)
movq %rax, -0xbc0(%rbp)
jmp 0x79cb
movb -0xbc1(%rbp), %al
movq -0xbc0(%rbp), %rcx
movq %rcx, -0x850(%rbp)
movb %al, -0x848(%rbp)
jmp 0x7a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9880
jmp 0x7f98
jmp 0x7a0c
leaq -0x820(%rbp), %rdi
callq 0x9760
jmp 0x7924
movq 0x155cc(%rip), %rdi     # 0x1cff0
leaq 0xc78b(%rip), %rsi      # 0x141b6
callq 0x53b0
movq %rax, -0xbd0(%rbp)
jmp 0x7a39
leaq -0x810(%rbp), %rdi
callq 0x9790
movq -0xbd0(%rbp), %rdi
movq %rax, %rsi
callq 0x50c0
movq %rax, -0xbd8(%rbp)
jmp 0x7a5d
movq -0xbd8(%rbp), %rdi
leaq 0xc753(%rip), %rsi      # 0x141be
callq 0x53b0
movq %rax, -0xbe0(%rbp)
jmp 0x7a79
movq -0xbe0(%rbp), %rdi
movq 0x15521(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7a8e
movq 0x1555b(%rip), %rdi     # 0x1cff0
leaq 0xc738(%rip), %rsi      # 0x141d4
callq 0x53b0
movq %rax, -0xbe8(%rbp)
jmp 0x7aaa
movq -0xbe8(%rbp), %rdi
movq 0x154f0(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7abf
leaq 0x15952(%rip), %rax     # 0x1d418
movq %rax, -0x860(%rbp)
leaq 0x15944(%rip), %rdi     # 0x1d418
callq 0x9630
movq %rax, -0x868(%rbp)
leaq 0x15931(%rip), %rdi     # 0x1d418
callq 0x9660
movq %rax, -0x870(%rbp)
leaq -0x868(%rbp), %rdi
leaq -0x870(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x7b0f
jmp 0x7bad
leaq -0x868(%rbp), %rdi
callq 0x96c0
movq %rax, -0x878(%rbp)
movq -0x878(%rbp), %rsi
leaq -0x810(%rbp), %rdi
callq 0x97e0
movq %rax, -0xbf0(%rbp)
jmp 0x7b3e
movq -0xbf0(%rbp), %rax
movq %rax, -0x880(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9820
movq %rax, -0x888(%rbp)
leaq -0x880(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x97b0
testb $0x1, %al
jne 0x7b78
jmp 0x7b9a
movq -0x878(%rbp), %rsi
addq $0x20, %rsi
movq -0x708(%rbp), %rdx
leaq -0x851(%rbp), %rdi
callq 0x8040
jmp 0x7b98
jmp 0x7b9a
jmp 0x7b9c
leaq -0x868(%rbp), %rdi
callq 0x9760
jmp 0x7af3
movq -0x708(%rbp), %rax
movq %rax, -0xbf8(%rbp)
cmpq $0x0, %rax
je 0x7bce
movq -0xbf8(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x1541b(%rip), %rdi     # 0x1cff0
leaq 0xc60f(%rip), %rsi      # 0x141eb
callq 0x53b0
movq %rax, -0xc00(%rbp)
jmp 0x7bea
movq -0xc00(%rbp), %rdi
movq 0x153b0(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7bff
leaq 0x15842(%rip), %rax     # 0x1d448
movq %rax, -0x890(%rbp)
leaq 0x15834(%rip), %rdi     # 0x1d448
callq 0x9630
movq %rax, -0x898(%rbp)
leaq 0x15821(%rip), %rdi     # 0x1d448
callq 0x9660
movq %rax, -0x8a0(%rbp)
leaq -0x898(%rbp), %rdi
leaq -0x8a0(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x7c4f
jmp 0x7ced
leaq -0x898(%rbp), %rdi
callq 0x96c0
movq %rax, -0x8a8(%rbp)
movq -0x8a8(%rbp), %rsi
leaq -0x810(%rbp), %rdi
callq 0x97e0
movq %rax, -0xc08(%rbp)
jmp 0x7c7e
movq -0xc08(%rbp), %rax
movq %rax, -0x8b0(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9820
movq %rax, -0x8b8(%rbp)
leaq -0x8b0(%rbp), %rdi
leaq -0x8b8(%rbp), %rsi
callq 0x97b0
testb $0x1, %al
jne 0x7cb8
jmp 0x7cda
movq -0x8a8(%rbp), %rsi
addq $0x20, %rsi
movq -0x730(%rbp), %rdx
leaq -0x851(%rbp), %rdi
callq 0x8040
jmp 0x7cd8
jmp 0x7cda
jmp 0x7cdc
leaq -0x898(%rbp), %rdi
callq 0x9760
jmp 0x7c33
movq -0x730(%rbp), %rax
movq %rax, -0xc10(%rbp)
cmpq $0x0, %rax
je 0x7d0e
movq -0xc10(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x152db(%rip), %rdi     # 0x1cff0
leaq 0xc4e6(%rip), %rsi      # 0x14202
callq 0x53b0
movq %rax, -0xc18(%rbp)
jmp 0x7d2a
movq -0xc18(%rbp), %rdi
movq 0x15270(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7d3f
leaq 0x156d2(%rip), %rax     # 0x1d418
movq %rax, -0x8c0(%rbp)
leaq 0x156c4(%rip), %rdi     # 0x1d418
callq 0x9630
movq %rax, -0x8c8(%rbp)
leaq 0x156b1(%rip), %rdi     # 0x1d418
callq 0x9660
movq %rax, -0x8d0(%rbp)
leaq -0x8c8(%rbp), %rdi
leaq -0x8d0(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x7d8f
jmp 0x7e2d
leaq -0x8c8(%rbp), %rdi
callq 0x96c0
movq %rax, -0x8d8(%rbp)
movq -0x8d8(%rbp), %rsi
leaq -0x810(%rbp), %rdi
callq 0x97e0
movq %rax, -0xc20(%rbp)
jmp 0x7dbe
movq -0xc20(%rbp), %rax
movq %rax, -0x8e0(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9820
movq %rax, -0x8e8(%rbp)
leaq -0x8e0(%rbp), %rdi
leaq -0x8e8(%rbp), %rsi
callq 0x9850
testb $0x1, %al
jne 0x7df8
jmp 0x7e1a
movq -0x8d8(%rbp), %rsi
addq $0x20, %rsi
movq -0x758(%rbp), %rdx
leaq -0x851(%rbp), %rdi
callq 0x8040
jmp 0x7e18
jmp 0x7e1a
jmp 0x7e1c
leaq -0x8c8(%rbp), %rdi
callq 0x9760
jmp 0x7d73
leaq 0x15614(%rip), %rax     # 0x1d448
movq %rax, -0x8f0(%rbp)
leaq 0x15606(%rip), %rdi     # 0x1d448
callq 0x9630
movq %rax, -0x8f8(%rbp)
leaq 0x155f3(%rip), %rdi     # 0x1d448
callq 0x9660
movq %rax, -0x900(%rbp)
leaq -0x8f8(%rbp), %rdi
leaq -0x900(%rbp), %rsi
callq 0x9690
testb $0x1, %al
jne 0x7e7d
jmp 0x7f1b
leaq -0x8f8(%rbp), %rdi
callq 0x96c0
movq %rax, -0x908(%rbp)
movq -0x908(%rbp), %rsi
leaq -0x810(%rbp), %rdi
callq 0x97e0
movq %rax, -0xc28(%rbp)
jmp 0x7eac
movq -0xc28(%rbp), %rax
movq %rax, -0x910(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9820
movq %rax, -0x918(%rbp)
leaq -0x910(%rbp), %rdi
leaq -0x918(%rbp), %rsi
callq 0x9850
testb $0x1, %al
jne 0x7ee6
jmp 0x7f08
movq -0x908(%rbp), %rsi
addq $0x20, %rsi
movq -0x758(%rbp), %rdx
leaq -0x851(%rbp), %rdi
callq 0x8040
jmp 0x7f06
jmp 0x7f08
jmp 0x7f0a
leaq -0x8f8(%rbp), %rdi
callq 0x9760
jmp 0x7e61
movq -0x758(%rbp), %rax
movq %rax, -0xc30(%rbp)
cmpq $0x0, %rax
je 0x7f3c
movq -0xc30(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x150ad(%rip), %rdi     # 0x1cff0
leaq 0xc2d3(%rip), %rsi      # 0x1421d
callq 0x53b0
movq %rax, -0xc38(%rbp)
jmp 0x7f58
movq -0xc38(%rbp), %rdi
movq 0x15042(%rip), %rsi     # 0x1cfa8
callq 0x5410
jmp 0x7f6d
movl $0x0, -0x4(%rbp)
movl $0x1, -0x5b4(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x9880
leaq -0x790(%rbp), %rdi
callq 0x98a0
jmp 0x7fa6
leaq -0x790(%rbp), %rdi
callq 0x98a0
jmp 0x7fee
leaq -0x478(%rbp), %rdi
callq 0x9900
leaq -0x380(%rbp), %rdi
callq 0x9900
leaq -0x288(%rbp), %rdi
callq 0x9900
leaq -0x190(%rbp), %rdi
callq 0x9900
leaq -0x88(%rbp), %rdi
callq 0x9900
movl -0x4(%rbp), %eax
addq $0xc40, %rsp            # imm = 0xC40
popq %rbp
retq
leaq -0x478(%rbp), %rdi
callq 0x9900
leaq -0x380(%rbp), %rdi
callq 0x9900
leaq -0x288(%rbp), %rdi
callq 0x9900
leaq -0x190(%rbp), %rdi
callq 0x9900
leaq -0x88(%rbp), %rdi
callq 0x9900
movq -0xc0(%rbp), %rdi
callq 0x5690
nopw %cs:(%rax,%rax)