// File: /workspace/github_cpp_makefile_star2_O2/tedsharpe[P]ORFCall/ORFCall.cc
// Function: main
int main( int argc, char** argv )
{
    bool dumpNonAligners = false;
    unsigned K = 25;
    double maxMismatchFrac = .1;
    std::string outputFilename = "orfcall";
    bool pairedMode = false;
    unsigned minQ = 20;
    unsigned maxSeqErrs = 2;
    std::string codonTranslation =
            "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVZYZYSSSSZCWCLFLF";

    int opt;
    while ( (opt = getopt(argc, argv, "dE:K:M:O:pQ:T:")) != -1 )
    {
        switch ( opt )
        {
        case 'd':
            dumpNonAligners = true;
            break;
        case 'E':
        { std::istringstream iss(optarg);
          if ( !(iss >> maxSeqErrs) )
              FatalErr("Can't interpret E='" << optarg
                      << "'. Expecting an integer maximum for sequencing errors per read."); }
          break;
        case 'K':
          { std::istringstream iss(optarg);
            if ( !(iss >> K) || K < 14 || K > 64 )
                FatalErr("Can't interpret K='" << optarg
                        << "'. Expecting an integer between 14 and 64"
                           " for kmer size."); }
            // note to self:  we don't have to worry about palindromes because
            // we're adding the rc of the ref to the dictionary, too, and that
            // will cause palindromes to be discarded as dups.
            break;
        case 'M':
          { std::istringstream iss(optarg);
            if ( !(iss >> maxMismatchFrac) ||
                    maxMismatchFrac < 0. || maxMismatchFrac > 1. )
                FatalErr("Can't interpret M='" << optarg
                        << "'. Expecting a fraction between "
                           "0. and 1. for max mismatch rate."); }
            break;
        case 'O':
            outputFilename = optarg;
            break;
        case 'p':
            pairedMode = true;
            break;
        case 'Q':
          { std::istringstream iss(optarg);
            if ( !(iss >> minQ) || minQ > 60 )
                FatalErr("Can't interpret Q='" << optarg
                        << "'. Expecting an integer min quality score."); }
            break;
        case 'T':
            codonTranslation = optarg;
            if ( codonTranslation.size() != NCODONS )
                FatalErr("Can't interpret T='" << optarg <<
                        " as a table of codon calls.  Expected 64 characters.");
            break;
        case '?':
            if ( optopt == 'E' )
                FatalErr("Need value for E (max seq errs) option.");
            else if ( optopt == 'K' )
                FatalErr("Need value for K (kmer size) option.");
            else if ( optopt == 'M' )
                FatalErr("Need value for M (max mismatch fraction) option.");
            else if ( optopt == 'O' )
                FatalErr("Need value for O (output filename) option.");
            else if ( optopt == 'Q' )
                FatalErr("Need value for Q (min quality score) option.");
            else if ( optopt == 'T' )
                FatalErr("Need value for T (table of codon calls) option.");
            else
                FatalErr("Unknown option character " << optopt);
            break;
        }
    }

    if ( optind+2 > argc )
        FatalErr("Usage: ORFCall [-d] [-E MAX_SEQ_ERRS] [-K KMER_SIZE] "
                      " [-M MAX_MISMATCH_FRACTION]"
                      " [-O OUTPUT_FILENAME] [-p] [-Q MIN_QUAL] [-T CODON_TABLE] "
                      "ref.fasta codons_used.dat reads1.fastq [reads2.fastq...]\n"
                      "The -p flag signals paired mode.\n");

    Reference ref(argv[optind],argv[optind+1],K);
    ref.report();
    optind += 2;

    std::ofstream* pJunkOS = nullptr;
    if ( dumpNonAligners )
        pJunkOS = new std::ofstream(outputFilename+".unaligned.fasta");
    AminoAcidNamer aaNamer(codonTranslation);
    ORFCaller caller(ref,minQ,maxSeqErrs,aaNamer,pJunkOS);
    char** beg = argv+optind;
    char** end = argv+argc;
    if ( !pairedMode )
        caller.processFastqs(beg,end);
    else
        caller.processPairedFastqs(beg,end);
    std::cerr << "Aligned reads: " << 100.*caller.getFractionAligned() << "%\n";

    if ( pJunkOS )
        delete pJunkOS;

    caller.writeCodonCounts(outputFilename+".cdn");
    caller.writeAminoAcidCounts(outputFilename+".aa");
    caller.writeIndelCounts(outputFilename+".indels");
    caller.report(std::cout);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x838, %rsp            # imm = 0x838
movq %rsi, 0x8(%rsp)
movl %edi, 0x10(%rsp)
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
leaq 0x7b29(%rip), %rsi      # 0xb080
leaq 0x250(%rsp), %rdi
leaq 0x618(%rsp), %rdx
movl $0x19, 0x3c(%rsp)
movq %rax, 0x188(%rsp)
callq 0x30c0
movl $0x14, 0x38(%rsp)
movl $0x2, 0x7c(%rsp)
leaq 0x7af5(%rip), %rsi      # 0xb088
leaq 0x230(%rsp), %rdi
leaq 0x618(%rsp), %rdx
callq 0x30c0
movq 0xca01(%rip), %r14      # 0xffb0
leaq 0x7b13(%rip), %rbx      # 0xb0c9
leaq 0x410(%rsp), %r15
leaq 0x618(%rsp), %rbp
movl $0x0, 0x20(%rsp)
pushq $0x8
popq %r12
leaq 0x7a47(%rip), %r13      # 0xb020
movl $0x0, 0x28(%rsp)
movl 0x10(%rsp), %edi
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
callq 0x3050
leal -0x4b(%rax), %ecx
cmpl $0x9, %ecx
ja 0x3661
movslq (%r13,%rcx,4), %rax
addq %r13, %rax
jmpq *%rax
movq (%r14), %rsi
leaq 0x270(%rsp), %rdx
movq %r15, %rdi
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl %r12d, %edx
callq 0x3320
movq %r15, %rdi
callq 0x30f0
leaq 0x3c(%rsp), %rsi
movq %rbp, %rdi
callq 0x3380
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5867
movl 0x3c(%rsp), %eax
addl $-0x41, %eax
cmpl $-0x34, %eax
ja 0x37f3
jmp 0x5867
cmpl $0x45, %eax
je 0x37ab
cmpl $0x64, %eax
je 0x37a0
cmpl $0x70, %eax
je 0x3795
cmpl $-0x1, %eax
je 0x3800
cmpl $0x3f, %eax
jne 0x35e1
jmp 0x58a1
movq (%r14), %rsi
leaq 0x230(%rsp), %rdi
callq 0x33d0
cmpq $0x40, 0x238(%rsp)
je 0x35e1
jmp 0x57f3
movq (%r14), %rsi
leaq 0x250(%rsp), %rdi
callq 0x33d0
jmp 0x35e1
movq (%r14), %rsi
leaq 0x270(%rsp), %rdx
movq %r15, %rdi
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl %r12d, %edx
callq 0x3320
movq %r15, %rdi
callq 0x30f0
leaq 0x38(%rsp), %rsi
movq %rbp, %rdi
callq 0x3380
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x582d
cmpl $0x3d, 0x38(%rsp)
jb 0x37f3
jmp 0x582d
movq (%r14), %rsi
leaq 0x270(%rsp), %rdx
movq %r15, %rdi
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl %r12d, %edx
callq 0x3320
movq %r15, %rdi
callq 0x30f0
leaq 0x188(%rsp), %rsi
movq %rbp, %rdi
callq 0x3140
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x57b9
vmovsd 0x188(%rsp), %xmm0
vxorpd %xmm1, %xmm1, %xmm1
vucomisd %xmm0, %xmm1
ja 0x57b9
vucomisd 0x787a(%rip), %xmm0     # 0xb008
jbe 0x37f3
jmp 0x57b9
movb $0x1, %al
movl %eax, 0x20(%rsp)
jmp 0x35e1
movb $0x1, %al
movl %eax, 0x28(%rsp)
jmp 0x35e1
movq (%r14), %rsi
leaq 0x270(%rsp), %rdx
movq %r15, %rdi
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl %r12d, %edx
callq 0x3320
movq %r15, %rdi
callq 0x30f0
leaq 0x7c(%rsp), %rsi
movq %rbp, %rdi
callq 0x3380
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x58e6
movq %rbp, %rdi
callq 0x3100
jmp 0x35e1
movq 0xc7c9(%rip), %rax      # 0xffd0
movslq (%rax), %rax
leal 0x2(%rax), %ecx
cmpl 0x10(%rsp), %ecx
jg 0x5b1c
movq 0x8(%rsp), %rcx
movl 0x3c(%rsp), %edi
leaq 0x100(%rsp), %rdx
vxorpd %xmm0, %xmm0, %xmm0
movq (%rcx,%rax,8), %rbx
movq 0x8(%rcx,%rax,8), %rax
leaq 0xd0(%rsp), %rcx
movl %edi, -0x8(%rcx)
vmovupd %ymm0, -0x30(%rdx)
vmovupd %ymm0, -0x20(%rdx)
movl %edi, (%rdx)
movl %edi, 0x4(%rdx)
leaq 0x138(%rsp), %rcx
leaq 0x128(%rsp), %rdi
vxorpd %xmm0, %xmm0, %xmm0
movq %rcx, -0x30(%rcx)
movq $0x1, -0x28(%rcx)
vmovupd %xmm0, -0x10(%rdi)
movl $0x3f800000, (%rdi)     # imm = 0x3F800000
vmovupd %xmm0, 0x8(%rdi)
movq %rax, 0x18(%rsp)
xorl %esi, %esi
vzeroupper
callq 0x3160
movq %rax, %r15
cmpq 0x110(%rsp), %rax
jbe 0x38bb
leaq 0x100(%rsp), %rdi
movq %r15, %rsi
callq 0x628c
movq %rax, 0x108(%rsp)
movq %r15, 0x110(%rsp)
leaq 0x170(%rsp), %rax
vxorpd %xmm0, %xmm0, %xmm0
andq $0x0, 0x10(%rax)
vmovupd %zmm0, -0x30(%rax)
leaq 0x618(%rsp), %rdi
pushq $0xe
popq %rdx
movq %rbx, %rsi
vzeroupper
callq 0x33a0
movq 0x618(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x638(%rsp,%rax)
jne 0x5b3c
leaq 0x618(%rsp), %rdi
callq 0x3360
leaq 0xd0(%rsp), %rdi
movq %rax, %rsi
callq 0x883e
leaq 0x618(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3220
leaq 0x420(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x618(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x3040
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5b67
cmpq $0x0, 0x418(%rsp)
je 0x5afc
movq 0x410(%rsp), %rax
cmpb $0x3e, (%rax)
jne 0x5afc
leaq 0x270(%rsp), %rbp
xorl %r15d, %r15d
xorl %ebx, %ebx
leaq 0x618(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x3040
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x3b29
movq 0x410(%rsp), %r12
movq 0x418(%rsp), %r13
incl %ebx
xorl %r14d, %r14d
movl %ebx, 0x30(%rsp)
cmpq %r14, %r13
je 0x3b20
movsbl (%r12,%r14), %ebx
movl %ebx, %edi
callq 0x3030
testl %eax, %eax
je 0x39fa
incq %r14
jmp 0x39dc
movzbl %bl, %eax
leal -0x54(%rax), %ecx
cmpl $0x2, %ecx
jb 0x3a5b
leal -0x74(%rax), %ecx
cmpl $0x2, %ecx
jb 0x3a5b
cmpl $0x41, %eax
je 0x3a41
cmpl $0x43, %eax
je 0x3a92
cmpl $0x47, %eax
je 0x3a75
cmpl $0x5b, %eax
je 0x3aaf
cmpl $0x5d, %eax
je 0x3af2
cmpl $0x67, %eax
je 0x3a75
cmpl $0x63, %eax
je 0x3a92
cmpl $0x61, %eax
jne 0x596a
movb $0x0, 0x270(%rsp)
leaq 0xd0(%rsp), %rdi
movq %rbp, %rsi
callq 0x897c
jmp 0x39f5
movb $0x3, 0x270(%rsp)
leaq 0xd0(%rsp), %rdi
movq %rbp, %rsi
callq 0x897c
jmp 0x39f5
movb $0x2, 0x270(%rsp)
leaq 0xd0(%rsp), %rdi
movq %rbp, %rsi
callq 0x897c
jmp 0x39f5
movb $0x1, 0x270(%rsp)
leaq 0xd0(%rsp), %rdi
movq %rbp, %rsi
callq 0x897c
jmp 0x39f5
testb $0x1, %r15b
jne 0x59b5
movq 0xd8(%rsp), %rax
subq 0xd0(%rsp), %rax
movq %rax, 0x270(%rsp)
andq $0x0, 0x278(%rsp)
leaq 0x140(%rsp), %rdi
movq %rbp, %rsi
callq 0x62e6
movb $0x1, %r15b
jmp 0x39f5
testb $0x1, %r15b
je 0x59e1
movq 0xd8(%rsp), %rax
movq 0x148(%rsp), %rcx
xorl %r15d, %r15d
subq 0xd0(%rsp), %rax
movq %rax, -0x8(%rcx)
jmp 0x39f5
movl 0x30(%rsp), %ebx
jmp 0x399c
testb $0x1, %r15b
jne 0x5b87
movq 0x140(%rsp), %rax
cmpq 0x148(%rsp), %rax
jne 0x3b8d
movq 0xc4a4(%rip), %rdi      # 0xfff0
leaq 0x7a16(%rip), %rsi      # 0xb569
callq 0x31d0
movq %rax, %rdi
callq 0x3110
movq 0xd8(%rsp), %rax
leaq 0x270(%rsp), %rsi
andq $0x0, (%rsi)
subq 0xd0(%rsp), %rax
movq %rax, 0x8(%rsi)
leaq 0x140(%rsp), %rdi
callq 0x62e6
movq 0x618(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x638(%rsp,%rax)
je 0x5ba7
movq 0xd8(%rsp), %rax
movl 0xc8(%rsp), %ecx
subq 0xd0(%rsp), %rax
cmpq %rcx, %rax
jb 0x5bc7
leaq 0x270(%rsp), %rsi
movq %rax, (%rsi)
movq %rax, 0x8(%rsi)
leaq 0x140(%rsp), %rdi
callq 0x62e6
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rcx
xorl %ebx, %ebx
cmpq %rcx, %rax
je 0x3c07
addq 0x8(%rax), %rbx
subq (%rax), %rbx
addq $0x10, %rax
jmp 0x3bf5
pushq $0x3
popq %rcx
movq %rbx, %rax
xorl %edx, %edx
divq %rcx
testq %rdx, %rdx
jne 0x5c0e
leaq 0x270(%rsp), %rdi
vxorpd %xmm0, %xmm0, %xmm0
movq %rax, %r15
andq $0x0, 0x10(%rdi)
vmovapd %xmm0, (%rdi)
movq %rbx, %rsi
callq 0x883e
movq 0x140(%rsp), %r14
movq 0x148(%rsp), %r12
leaq 0x270(%rsp), %rbx
cmpq %r12, %r14
je 0x3c78
movq 0xd0(%rsp), %rsi
movq (%r14), %rdi
addq %rsi, %rdi
addq 0x8(%r14), %rsi
movq %rbx, %rdx
callq 0x8a8c
addq $0x10, %r14
jmp 0x3c53
leaq 0x158(%rsp), %rdi
movq %r15, %rsi
callq 0x88c4
movq 0x270(%rsp), %r14
movq 0x278(%rsp), %r15
leaq 0x40(%rsp), %rbx
cmpq %r15, %r14
jae 0x3cd4
movzbl (%r14), %eax
movzbl 0x1(%r14), %ecx
movzbl 0x2(%r14), %edx
shll $0x4, %eax
shll $0x2, %ecx
orl %eax, %ecx
orl %ecx, %edx
movl %edx, 0x40(%rsp)
leaq 0x158(%rsp), %rdi
movq %rbx, %rsi
callq 0x8bca
addq $0x3, %r14
jmp 0x3c9d
leaq 0x270(%rsp), %rdi
callq 0x9070
leaq 0x410(%rsp), %rdi
callq 0x30f0
leaq 0x618(%rsp), %rdi
callq 0x3060
leaq 0x618(%rsp), %rdi
pushq $0xc
popq %rdx
movq 0x18(%rsp), %rsi
callq 0x33a0
movq 0x618(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x638(%rsp,%rax)
leaq 0x420(%rsp), %rax
jne 0x5c48
leaq 0x410(%rsp), %rsi
movq %rax, (%rsi)
andq $0x0, 0x8(%rsi)
movb $0x0, 0x10(%rsi)
leaq 0x618(%rsp), %rdi
callq 0x3040
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5c75
cmpq $0xff, 0x418(%rsp)
jne 0x5c75
movq 0x160(%rsp), %r12
subq 0x158(%rsp), %r12
sarq $0x2, %r12
leaq 0x170(%rsp), %rdi
movq %r12, %rsi
callq 0x8ce8
leaq 0x410(%rsp), %r15
xorl %r14d, %r14d
leaq 0x618(%rsp), %rdi
movq %r15, %rsi
callq 0x3040
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x3e77
cmpq $0x7f, 0x418(%rsp)
leaq 0x1(%r14), %r13
jne 0x5920
andq $0x0, 0x90(%rsp)
movq 0x410(%rsp), %rax
xorl %ecx, %ecx
cmpq $0x3f, %rcx
je 0x3e0c
movzbl 0x1(%rax,%rcx,2), %edx
cmpl $0x9, %edx
je 0x3e07
cmpl $0x20, %edx
jne 0x5692
incq %rcx
jmp 0x3dee
movq 0x158(%rsp), %rcx
xorl %ebx, %ebx
xorl %edx, %edx
cmpq $0x40, %rbx
je 0x3e5a
movzbl (%rax,%rbx,2), %esi
cmpl $0x30, %esi
je 0x3e55
cmpl $0x32, %esi
je 0x3e43
cmpl $0x31, %esi
jne 0x56d9
btsq %rbx, %rdx
movq %rdx, 0x90(%rsp)
jmp 0x3e55
cmpq %r12, %r13
ja 0x3e55
movl (%rcx,%r14,4), %ebp
cmpq %rbp, %rbx
jne 0x5723
incq %rbx
jmp 0x3e18
leaq 0x170(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x8d78
movq %r13, %r14
jmp 0x3da6
movq 0x178(%rsp), %rax
subq 0x170(%rsp), %rax
sarq $0x3, %rax
cmpq %r12, %rax
ja 0x5c95
jae 0x3f06
movq 0xc153(%rip), %rdi      # 0xfff0
leaq 0x789e(%rip), %rsi      # 0xb742
callq 0x31d0
movq 0x178(%rsp), %rsi
subq 0x170(%rsp), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x7893(%rip), %rsi      # 0xb75f
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
movq %r12, %rsi
callq 0x3150
leaq 0x7853(%rip), %rsi      # 0xb739
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
leaq 0x170(%rsp), %rdi
movq %r12, %rsi
callq 0x8d98
leaq 0x410(%rsp), %rdi
callq 0x30f0
leaq 0x618(%rsp), %rdi
callq 0x3060
movq 0xd8(%rsp), %rsi
subq 0xd0(%rsp), %rsi
leaq 0xe8(%rsp), %rdi
callq 0x883e
movq 0xd0(%rsp), %r14
movq 0xd8(%rsp), %r15
pushq $0x4
popq %rbp
leaq 0x618(%rsp), %rbx
cmpq %r14, %r15
je 0x3f8a
movb -0x1(%r15), %al
movl %eax, %ecx
xorb $0x3, %cl
cmpb $0x4, %al
movzbl %cl, %eax
cmovel %ebp, %eax
movb %al, 0x618(%rsp)
leaq 0xe8(%rsp), %rdi
movq %rbx, %rsi
callq 0x897c
decq %r15
jmp 0x3f58
movq 0xd8(%rsp), %rax
movq 0x120(%rsp), %rcx
movq 0x130(%rsp), %rbx
subq 0xd0(%rsp), %rax
incq %rcx
movq %rbx, 0x618(%rsp)
addq %rax, %rax
vcvtusi2sd %rax, %xmm1, %xmm0
vcvtss2sd 0x128(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vroundsd $0xa, %xmm0, %xmm0, %xmm0
vcvttsd2usi %xmm0, %rsi
vcvtusi2sd %rcx, %xmm2, %xmm0
vdivsd %xmm1, %xmm0, %xmm0
vroundsd $0xa, %xmm0, %xmm0, %xmm0
vcvttsd2usi %xmm0, %rax
cmpq %rsi, %rax
cmovaq %rax, %rsi
leaq 0x128(%rsp), %rdi
callq 0x3160
cmpq 0x110(%rsp), %rax
jne 0x4015
movq %rbx, 0x130(%rsp)
jmp 0x402d
leaq 0x618(%rsp), %rdx
leaq 0x100(%rsp), %rdi
movq %rax, %rsi
callq 0x65a0
movq 0xd8(%rsp), %r14
movl 0xc8(%rsp), %eax
movq 0xd0(%rsp), %r15
leaq 0x618(%rsp), %rbx
xorl %r12d, %r12d
subq %rax, %r14
incq %r14
leaq (%r15,%r12), %rax
movq %rax, 0x618(%rsp)
cmpq %r14, %rax
je 0x4092
leaq 0x100(%rsp), %rdi
movq %rbx, %rsi
callq 0x646c
cmpb $0x0, 0x9(%rax)
movb $0x2, %cl
jne 0x408a
movl %r12d, %ecx
movq %rcx, (%rax)
movb $0x1, %cl
movb $0x0, 0x8(%rax)
movb %cl, 0x9(%rax)
incq %r12
jmp 0x4055
movq 0xf0(%rsp), %r14
movl 0xc8(%rsp), %eax
movq 0xe8(%rsp), %r15
leaq 0x618(%rsp), %rbx
xorl %r12d, %r12d
subq %rax, %r14
incq %r14
leaq (%r15,%r12), %rax
movq %rax, 0x618(%rsp)
cmpq %r14, %rax
je 0x40f7
leaq 0x100(%rsp), %rdi
movq %rbx, %rsi
callq 0x646c
cmpb $0x0, 0x9(%rax)
movb $0x2, %cl
jne 0x40ef
movl %r12d, %ecx
movq %rcx, (%rax)
movb $0x1, %cl
movb $0x1, 0x8(%rax)
movb %cl, 0x9(%rax)
incq %r12
jmp 0x40ba
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0x41ba
cmpb $0x1, 0x19(%rdi)
jne 0x4113
movq (%rdi), %rdi
jmp 0x40ff
movq 0x110(%rsp), %r11
movq 0x20(%rdi), %rax
movq 0x108(%rsp), %rsi
xorl %edx, %edx
divq %r11
movq (%rsi,%rdx,8), %r10
movq %rdx, %rcx
movq %r10, %rax
movq %rax, %r8
movq (%rax), %rax
cmpq %rdi, %rax
jne 0x4136
movq (%rdi), %r9
cmpq %r8, %r10
je 0x4162
testq %r9, %r9
je 0x419f
movq 0x20(%r9), %rax
xorl %edx, %edx
divq %r11
cmpq %rcx, %rdx
je 0x419f
movq %r8, (%rsi,%rdx,8)
jmp 0x419f
testq %r9, %r9
je 0x4185
movq 0x20(%r9), %rax
xorl %edx, %edx
divq %r11
cmpq %rcx, %rdx
je 0x419f
movq %r10, (%rsi,%rdx,8)
movq 0x108(%rsp), %rsi
movq (%rsi,%rcx,8), %r10
leaq 0x118(%rsp), %rax
cmpq %r10, %rax
jne 0x419a
movq %r9, 0x118(%rsp)
andq $0x0, (%rsi,%rcx,8)
movq (%rdi), %rbx
movq %rbx, (%r8)
callq 0x31c0
decq 0x120(%rsp)
movq %rbx, %rdi
jmp 0x40ff
movq 0xd8(%rsp), %rbx
subq 0xd0(%rsp), %rbx
movq 0xbe1f(%rip), %rdi      # 0xfff0
leaq 0x75bd(%rip), %rsi      # 0xb795
callq 0x31d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3150
leaq 0x75d9(%rip), %rsi      # 0xb7c8
movq %rax, %rdi
callq 0x31d0
movq 0xbdf2(%rip), %rdi      # 0xfff0
leaq 0x75a3(%rip), %rsi      # 0xb7a8
callq 0x31d0
movq 0x120(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x7593(%rip), %rsi      # 0xb7b4
movq %rax, %rdi
callq 0x31d0
movl 0xc8(%rsp), %ecx
subq %rcx, %rbx
addq %rbx, %rbx
subq 0x120(%rsp), %rbx
addq $0x2, %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3150
leaq 0x7563(%rip), %rsi      # 0xb7b7
movq %rax, %rdi
callq 0x31d0
movq 0xbd8d(%rip), %rdi      # 0xfff0
leaq 0x7561(%rip), %rsi      # 0xb7cb
callq 0x31d0
movq 0x160(%rsp), %rsi
subq 0x158(%rsp), %rsi
sarq $0x2, %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x7536(%rip), %rsi      # 0xb7c8
movq %rax, %rdi
callq 0x31d0
movq 0xbd4f(%rip), %rdi      # 0xfff0
leaq 0x753a(%rip), %rsi      # 0xb7e2
callq 0x31d0
movq 0x148(%rsp), %r15
movq 0x140(%rsp), %r14
movq 0xbd2c(%rip), %rbx      # 0xfff0
movb $0x20, %al
addq $-0x10, %r15
pushq $0x3a
popq %rbp
cmpq %r15, %r14
je 0x430c
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3200
movq (%r14), %rsi
incq %rsi
movq %rax, %rdi
callq 0x3150
movq %rax, %rdi
movl %ebp, %esi
callq 0x3200
movq 0x8(%r14), %rsi
incq %rsi
movq %rax, %rdi
callq 0x3150
addq $0x10, %r14
movb $0x2c, %al
jmp 0x42cd
movq 0xbcdd(%rip), %rdi      # 0xfff0
leaq 0x74ae(%rip), %rsi      # 0xb7c8
callq 0x31d0
movq 0xbcaa(%rip), %rax      # 0xffd0
addl $0x2, (%rax)
testb $0x1, 0x28(%rsp)
je 0x437b
movl $0x200, %edi            # imm = 0x200
callq 0x31e0
leaq 0x711a(%rip), %rdx      # 0xb45b
leaq 0x618(%rsp), %rdi
leaq 0x250(%rsp), %rsi
movq %rax, %r13
callq 0x87cc
leaq 0x618(%rsp), %rsi
pushq $0x10
popq %rdx
movq %r13, %rdi
callq 0x33e0
leaq 0x618(%rsp), %rdi
callq 0x30f0
jmp 0x437e
xorl %r13d, %r13d
leaq 0x618(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x3260
cmpq $0x40, 0x238(%rsp)
jne 0x5cfa
movq 0x618(%rsp), %rbx
movq 0x620(%rsp), %r15
addq %rbx, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x907d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9450
subq %rbx, %rax
leaq 0x618(%rsp), %r15
movq %rax, %rsi
movq %r15, %rdi
callq 0x3270
movq 0x618(%rsp), %r12
xorl %r14d, %r14d
addq 0x620(%rsp), %r12
cmpq $0x40, %r14
je 0x4420
movq 0x230(%rsp), %rdx
addq %r14, %rdx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x94b1
subq %rbx, %rax
movq %rax, 0x638(%rsp,%r14,8)
incq %r14
jmp 0x43f4
movb 0x38(%rsp), %al
movl 0x7c(%rsp), %ecx
leaq 0xc8(%rsp), %rdx
movq %rdx, 0x270(%rsp)
movb %al, 0x278(%rsp)
movl %ecx, 0x27c(%rsp)
movq 0x98(%rdx), %rcx
movq 0x90(%rdx), %rax
movabsq $0x3d226357e16ecf, %rdx # imm = 0x3D226357E16ECF
movq %r15, 0x280(%rsp)
movq %rcx, %r14
subq %rax, %r14
sarq $0x2, %r14
cmpq %rdx, %r14
jae 0x5d34
leaq 0x288(%rsp), %rdx
vxorpd %xmm0, %xmm0, %xmm0
andq $0x0, 0x10(%rdx)
vmovupd %xmm0, (%rdx)
cmpq %rax, %rcx
je 0x44a4
imulq $0x218, %r14, %rdi      # imm = 0x218
callq 0x31e0
movq %rax, %rbx
jmp 0x44a6
xorl %ebx, %ebx
imulq $0x218, %r14, %rax      # imm = 0x218
movq %rbx, 0x288(%rsp)
addq %rbx, %rax
movq %rax, 0x298(%rsp)
subq $0x1, %r14
jb 0x44de
movl $0x218, %edx            # imm = 0x218
movq %rbx, %rdi
xorl %esi, %esi
callq 0x3130
addq $0x218, %rbx            # imm = 0x218
jmp 0x44c0
leaq 0x370(%rsp), %rax
vxorpd %xmm0, %xmm0, %xmm0
vxorpd %xmm1, %xmm1, %xmm1
leaq 0x390(%rsp), %rsi
leaq 0x3b0(%rsp), %rdx
xorl %ecx, %ecx
movq %r13, 0x70(%rsp)
movq %rbx, -0xe0(%rax)
vmovupd %ymm0, -0xd0(%rax)
vxorpd %xmm0, %xmm0, %xmm0
movq %r13, -0xb0(%rax)
andq $0x0, -0x18(%rax)
vmovupd %xmm0, -0x28(%rax)
vmovupd %zmm1, -0xa8(%rax)
vmovupd %zmm1, -0x70(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
movq %rsi, -0x10(%rsi)
andq $0x0, -0x8(%rsi)
movb %cl, (%rsi)
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %cl, (%rdx)
movq 0xba6b(%rip), %rcx      # 0xffd0
movq 0x8(%rsp), %rdx
testb $0x1, 0x20(%rsp)
movslq (%rcx), %rax
movslq 0x10(%rsp), %rcx
leaq (%rdx,%rax,8), %r15
leaq (%rdx,%rcx,8), %rdx
movq %rdx, 0x88(%rsp)
je 0x4c7f
shlq $0x3, %rax
shlq $0x3, %rcx
subl %ecx, %eax
testb $0x8, %al
jne 0x5de7
leaq 0x1d0(%rsp), %rcx
leaq 0x1b0(%rsp), %rax
leaq 0x3c0(%rsp), %rdx
movq $0x0, 0x80(%rsp)
vmovapd %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
leaq 0x210(%rsp), %rcx
andq $0x0, 0x10(%rax)
andq $0x0, 0x10(%rdx)
vmovapd %xmm0, (%rax)
vmovapd %xmm0, (%rdx)
andq $0x0, 0x10(%rcx)
vmovapd %xmm0, (%rcx)
cmpq 0x88(%rsp), %r15
je 0x4e36
movq (%r15), %rax
movq 0x8(%r15), %rcx
movq %rax, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq 0xb9db(%rip), %rdi      # 0xfff0
leaq 0x7231(%rip), %rsi      # 0xb84d
vzeroupper
callq 0x31d0
movq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x7398(%rip), %rsi      # 0xb9d0
movq %rax, %rdi
callq 0x31d0
movq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x7202(%rip), %rsi      # 0xb856
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
movq 0x28(%rsp), %rsi
leaq 0x3f8(%rsp), %rdi
callq 0x677e
movq 0x20(%rsp), %rsi
leaq 0x3e0(%rsp), %rdi
callq 0x677e
addq $0x10, %r15
movq $0x0, 0x10(%rsp)
movq %r15, 0x18(%rsp)
leaq 0x3f8(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
leaq 0x3c0(%rsp), %rdx
callq 0x6852
testb %al, %al
je 0x4be8
movq 0x1b8(%rsp), %rbx
subq 0x1b0(%rsp), %rbx
leaq 0x3e0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x210(%rsp), %rdx
callq 0x6852
testb %al, %al
je 0x566f
movq 0x1d0(%rsp), %r14
movq 0x1d8(%rsp), %rax
subq %r14, %rax
cmpq %rax, %rbx
jne 0x566f
movq 0x1b8(%rsp), %rax
movq 0x3c0(%rsp), %rcx
movq 0x1b0(%rsp), %rbp
movq 0x210(%rsp), %r12
leaq 0x428(%rsp), %rbx
movq %rax, 0x30(%rsp)
movq %rcx, 0x8(%rsp)
cmpq 0x30(%rsp), %rbp
je 0x4bde
addq $0x2, 0x2a0(%rsp)
movq 0x270(%rsp), %rsi
leaq 0x190(%rsp), %rdi
movq %rbp, %rdx
callq 0x6dec
movq 0x270(%rsp), %rsi
leaq 0x1f0(%rsp), %rdi
movq %r14, %rdx
callq 0x6dec
movq 0x190(%rsp), %rcx
movq 0x198(%rsp), %rax
cmpq %rax, %rcx
jne 0x4800
movq 0x28(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %r8
leaq 0x270(%rsp), %rdi
movq %rbp, %rcx
callq 0x6f4a
movq 0x1f0(%rsp), %rax
leaq 0x1f0(%rsp), %rcx
movq %r14, %rsi
movq %r12, %rdx
cmpq 0x1f8(%rsp), %rax
jne 0x487f
movq 0x20(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x270(%rsp), %rdi
movq %r14, %rcx
movq %r12, %r8
callq 0x6f4a
jmp 0x488c
movq 0x1f0(%rsp), %rdx
movq 0x1f8(%rsp), %rsi
cmpq %rsi, %rdx
jne 0x4844
movq 0x20(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x270(%rsp), %rdi
movq %r14, %rcx
movq %r12, %r8
callq 0x6f4a
movq 0x8(%rsp), %rdx
movq %rbp, %rsi
leaq 0x190(%rsp), %rcx
jmp 0x487f
cmpq %rsi, %rcx
setbe %cl
cmpq %rax, %rdx
setbe %al
testb %cl, %al
jne 0x48a8
movq 0x8(%rsp), %rdx
leaq 0x270(%rsp), %rdi
leaq 0x190(%rsp), %rcx
movq %rbp, %rsi
callq 0x701c
leaq 0x1f0(%rsp), %rcx
movq %r14, %rsi
movq %r12, %rdx
leaq 0x270(%rsp), %rdi
callq 0x701c
incq 0x10(%rsp)
addq $0x18, 0x8(%rsp)
addq $0x18, %rbp
addq $0x18, %r14
addq $0x18, %r12
jmp 0x4742
addq $0x2, 0x2a8(%rsp)
movq 0x8(%rsp), %rcx
leaq 0x410(%rsp), %rdi
leaq 0x270(%rsp), %rsi
leaq 0x190(%rsp), %r8
movq %rbp, %rdx
callq 0x70e8
movl 0x27c(%rsp), %eax
cmpq %rax, 0x420(%rsp)
ja 0x4905
movq 0x430(%rsp), %rax
subq 0x428(%rsp), %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
cmpq $0x2, %rax
jb 0x4944
movq 0x8(%rsp), %r8
leaq 0x40(%rsp), %r13
leaq 0x270(%rsp), %rsi
leaq 0x190(%rsp), %rdx
movq %rbp, %rcx
movq %r13, %rdi
callq 0x7212
leaq 0x410(%rsp), %rdi
movq %r13, %rsi
callq 0x7b70
leaq 0x58(%rsp), %rdi
callq 0x7e6a
leaq 0x40(%rsp), %rdi
leaq 0x270(%rsp), %rsi
leaq 0x1f0(%rsp), %r8
movq %r14, %rdx
movq %r12, %rcx
callq 0x70e8
movq 0x50(%rsp), %rcx
movl 0x27c(%rsp), %esi
cmpq %rsi, %rcx
ja 0x498d
movq 0x60(%rsp), %rax
subq 0x58(%rsp), %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
cmpq $0x2, %rax
jb 0x49d9
leaq 0x90(%rsp), %r13
leaq 0x270(%rsp), %rsi
leaq 0x1f0(%rsp), %rdx
movq %r14, %rcx
movq %r12, %r8
movq %r13, %rdi
callq 0x7212
leaq 0x40(%rsp), %rdi
movq %r13, %rsi
callq 0x7b70
leaq 0xa8(%rsp), %rdi
callq 0x7e6a
movl 0x27c(%rsp), %esi
movq 0x50(%rsp), %rcx
movq 0x420(%rsp), %rax
cmpq %rsi, %rax
jbe 0x49fe
cmpq %rsi, %rcx
ja 0x4bc7
leaq 0x270(%rsp), %rdi
leaq 0x40(%rsp), %rsi
jmp 0x4a13
cmpq %rsi, %rcx
jbe 0x4a1d
leaq 0x270(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x7bca
jmp 0x4bc7
movq 0x410(%rsp), %rdx
movq 0x40(%rsp), %rdi
movq 0x418(%rsp), %rsi
movq 0x48(%rsp), %r8
cmpq %rdx, %rdi
cmovbq %rdi, %rdx
cmpq %r8, %rsi
cmovaq %rsi, %r8
addq %rcx, %rax
movq %rdx, 0x90(%rsp)
movq %r8, 0x98(%rsp)
movq %rax, 0xa0(%rsp)
leaq 0xa8(%rsp), %r13
movq %rbx, %rsi
movq %r13, %rdi
callq 0x7ff8
movq 0x58(%rsp), %rdx
movq 0xb0(%rsp), %rsi
movq 0x60(%rsp), %rcx
movq %r13, %rdi
callq 0x8068
movq 0xa8(%rsp), %rbx
movq 0xb0(%rsp), %r13
cmpq %r13, %rbx
je 0x4b98
movq %r13, %r15
subq %rbx, %r15
movq %r15, %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
movq %rbx, %rdi
movq %r13, %rsi
lzcntq %rax, %rdx
addl %edx, %edx
xorq $0x7e, %rdx
callq 0x8248
cmpq $0x181, %r15            # imm = 0x181
jl 0x4afb
leaq 0x180(%rbx), %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x865d
cmpq %r13, %r15
je 0x4b06
movq %r15, %rdi
callq 0x86fd
addq $0x18, %r15
jmp 0x4ae8
movq %rbx, %rdi
movq %r13, %rsi
callq 0x865d
leaq 0x18(%rbx), %r15
cmpq %r13, %r15
je 0x4b98
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8760
movq %r15, %rbx
testb %al, %al
je 0x4b06
leaq -0x18(%r15), %rbx
addq $0x18, %r15
cmpq %r13, %r15
je 0x4b59
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8760
testb %al, %al
jne 0x4b29
movq 0x10(%r15), %rax
movq %rax, 0x28(%rbx)
vmovupd (%r15), %xmm0
vmovupd %xmm0, 0x18(%rbx)
addq $0x18, %rbx
jmp 0x4b29
addq $0x18, %rbx
cmpq %r13, %rbx
je 0x4b98
movq 0xb0(%rsp), %rax
movq %rax, %r15
subq %r13, %r15
je 0x4b85
movq %r13, %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %r13
callq 0x3300
jmp 0x4b88
xorl %r15d, %r15d
addq %r15, %rbx
cmpq %rbx, %r13
je 0x4b98
movq %rbx, 0xb0(%rsp)
leaq 0x270(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x7bca
leaq 0xa8(%rsp), %rdi
callq 0x7e6a
movq 0x18(%rsp), %r15
leaq 0x428(%rsp), %rbx
leaq 0x58(%rsp), %rdi
callq 0x7e6a
movq %rbx, %rdi
callq 0x7e6a
jmp 0x488c
movq 0x70(%rsp), %r13
jmp 0x469a
leaq 0x3e0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x210(%rsp), %rdx
callq 0x6852
testb %al, %al
jne 0x5a0d
movq 0xb3dc(%rip), %rdi      # 0xfff0
movq 0x10(%rsp), %rsi
callq 0x3150
leaq 0x6de5(%rip), %rsi      # 0xba0a
movq %rax, %rdi
callq 0x31d0
movq 0x80(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x6b84(%rip), %rsi      # 0xb7c8
movq %rax, %rdi
callq 0x31d0
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x4c5f
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x3f8(%rsp), %rdi
testq %rdi, %rdi
je 0x4c72
movq (%rdi), %rax
callq *0x8(%rax)
incq 0x80(%rsp)
jmp 0x45ef
leaq 0x40(%rsp), %rax
leaq 0x90(%rsp), %rcx
leaq 0x410(%rsp), %rbp
movq $0x0, 0x8(%rsp)
andq $0x0, 0x10(%rax)
andq $0x0, 0x10(%rcx)
vmovapd %xmm0, (%rax)
vmovapd %xmm0, (%rcx)
cmpq 0x88(%rsp), %r15
je 0x4e15
movq %r15, 0x18(%rsp)
movq (%r15), %r15
movq 0xb324(%rip), %rdi      # 0xfff0
leaq 0x6b7a(%rip), %rsi      # 0xb84d
vzeroupper
callq 0x31d0
movq %rax, %rdi
movq %r15, %rsi
callq 0x31d0
leaq 0x6b69(%rip), %rsi      # 0xb856
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
leaq 0x190(%rsp), %rdi
movq %r15, %rsi
callq 0x677e
addq $0x8, 0x18(%rsp)
xorl %ebx, %ebx
leaq 0x190(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x6852
testb %al, %al
je 0x4db9
movq 0x90(%rsp), %r14
movq 0x40(%rsp), %r13
movq 0x48(%rsp), %r12
cmpq %r12, %r13
je 0x4d15
incq 0x2a0(%rsp)
movq 0x270(%rsp), %rsi
movq %rbp, %rdi
movq %r13, %rdx
callq 0x6dec
movq 0x410(%rsp), %rax
cmpq 0x418(%rsp), %rax
jne 0x4d96
leaq 0x270(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r13, %rcx
movq %r14, %r8
callq 0x6f4a
jmp 0x4dac
leaq 0x270(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x701c
incq %rbx
addq $0x18, %r14
addq $0x18, %r13
jmp 0x4d49
movq 0xb230(%rip), %rdi      # 0xfff0
movq %rbx, %rsi
callq 0x3150
leaq 0x6a8b(%rip), %rsi      # 0xb85a
movq %rax, %rdi
callq 0x31d0
movq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x69dd(%rip), %rsi      # 0xb7c8
movq %rax, %rdi
callq 0x31d0
movq 0x190(%rsp), %rdi
movq 0x18(%rsp), %r15
testq %rdi, %rdi
je 0x4e0b
movq (%rdi), %rax
callq *0x8(%rax)
incq 0x8(%rsp)
jmp 0x4caf
leaq 0x90(%rsp), %rdi
vzeroupper
callq 0x94da
leaq 0x40(%rsp), %rdi
callq 0x94da
movq 0x70(%rsp), %r13
jmp 0x4e6d
leaq 0x210(%rsp), %rdi
vzeroupper
callq 0x94da
leaq 0x3c0(%rsp), %rdi
callq 0x94da
leaq 0x1d0(%rsp), %rdi
callq 0x94da
leaq 0x1b0(%rsp), %rdi
callq 0x94da
movq 0xb17c(%rip), %rdi      # 0xfff0
leaq 0x65f1(%rip), %rsi      # 0xb46c
callq 0x31d0
movq 0x2a0(%rsp), %rcx
vcvtusi2sd %rcx, %xmm2, %xmm0
vcvtusi2sdq 0x2a8(%rsp), %xmm2, %xmm1
testq %rcx, %rcx
sete %dl
kmovd %edx, %k1
vdivsd %xmm0, %xmm1, %xmm0
vxorpd %xmm1, %xmm1, %xmm1
vmulsd 0x6160(%rip), %xmm0, %xmm0 # 0xb010
vmovsd %xmm1, %xmm0, %xmm0 {%k1}
movq %rax, %rdi
callq 0x32f0
leaq 0x6d0b(%rip), %rsi      # 0xbbd0
movq %rax, %rdi
callq 0x31d0
testq %r13, %r13
je 0x4edc
movq (%r13), %rax
movq %r13, %rdi
callq *0x8(%rax)
leaq 0x6599(%rip), %rdx      # 0xb47c
leaq 0x40(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x87cc
leaq 0x410(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x10
popq %rdx
callq 0x33e0
leaq 0x6b0e(%rip), %rsi      # 0xba1f
leaq 0x410(%rsp), %rdi
callq 0x31d0
movq 0x288(%rsp), %r15
movq 0x290(%rsp), %r12
leaq 0x410(%rsp), %rbx
cmpq %r12, %r15
je 0x4f74
movb $0xa, %al
xorl %r13d, %r13d
cmpq $0x200, %r13            # imm = 0x200
je 0x4f6b
movq (%r15,%r13), %r14
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3200
movq %rax, %rdi
movq %r14, %rsi
callq 0x3150
addq $0x8, %r13
movb $0x9, %al
jmp 0x4f40
addq $0x218, %r15            # imm = 0x218
jmp 0x4f36
leaq 0x410(%rsp), %rdi
pushq $0xa
popq %rsi
callq 0x3200
leaq 0x410(%rsp), %rdi
callq 0x3280
movq 0x410(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x430(%rsp,%rax)
jne 0x5d40
leaq 0x410(%rsp), %rdi
callq 0x32c0
leaq 0x40(%rsp), %rdi
callq 0x30f0
leaq 0x64b8(%rip), %rdx      # 0xb481
leaq 0x40(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x87cc
leaq 0x410(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x10
popq %rdx
callq 0x33e0
movq 0x280(%rsp), %rax
leaq 0x6b41(%rip), %rsi      # 0xbb40
leaq 0x410(%rsp), %rbx
leaq 0x6b31(%rip), %r13      # 0xbb3f
xorl %r12d, %r12d
movq (%rax), %r14
movq 0x8(%rax), %r15
cmpq %r12, %r15
je 0x503d
movb (%r14,%r12), %bpl
movq %rbx, %rdi
callq 0x31d0
movsbl %bpl, %esi
movq %rax, %rdi
callq 0x3200
incq %r12
movq %r13, %rsi
jmp 0x5018
leaq 0x90(%rsp), %rax
movq 0x288(%rsp), %r14
movq 0x290(%rsp), %r13
vxorpd %xmm0, %xmm0, %xmm0
leaq 0x410(%rsp), %r15
andq $0x0, 0x10(%rax)
vmovapd %xmm0, (%rax)
cmpq %r13, %r14
je 0x50c9
movq 0x280(%rsp), %rdi
leaq 0x90(%rsp), %rdx
movq %r14, %rsi
callq 0x877e
movq 0x90(%rsp), %rbp
movq 0x98(%rsp), %rbx
movb $0xa, %al
cmpq %rbx, %rbp
je 0x50c0
movq (%rbp), %r12
movsbl %al, %esi
movq %r15, %rdi
callq 0x3200
movq %rax, %rdi
movq %r12, %rsi
callq 0x3150
addq $0x8, %rbp
movb $0x9, %al
jmp 0x5099
addq $0x218, %r14            # imm = 0x218
jmp 0x506a
leaq 0x410(%rsp), %rdi
pushq $0xa
popq %rsi
callq 0x3200
leaq 0x410(%rsp), %rdi
callq 0x3280
movq 0x410(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x430(%rsp,%rax)
jne 0x5d6d
leaq 0x90(%rsp), %rdi
callq 0xa222
leaq 0x410(%rsp), %rdi
callq 0x32c0
leaq 0x40(%rsp), %rdi
callq 0x30f0
leaq 0x635a(%rip), %rdx      # 0xb485
leaq 0x40(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x87cc
leaq 0x410(%rsp), %rdi
leaq 0x40(%rsp), %rsi
pushq $0x10
popq %rdx
callq 0x33e0
leaq 0x6a0d(%rip), %rsi      # 0xbb66
leaq 0x410(%rsp), %rdi
callq 0x31d0
movq 0x288(%rsp), %r15
movq 0x290(%rsp), %r12
leaq 0x410(%rsp), %rbx
pushq $0x9
popq %rbp
pushq $0xa
popq %r14
cmpq %r12, %r15
je 0x51df
movq 0x200(%r15), %rsi
movq %rbx, %rdi
callq 0x3150
movq %rax, %rdi
movl %ebp, %esi
callq 0x3200
movq 0x208(%r15), %rsi
movq %rax, %rdi
callq 0x3150
movq %rax, %rdi
movl %ebp, %esi
callq 0x3200
movq 0x210(%r15), %rsi
movq %rax, %rdi
callq 0x3150
movq %rax, %rdi
movl %r14d, %esi
callq 0x3200
addq $0x218, %r15            # imm = 0x218
jmp 0x5185
leaq 0x410(%rsp), %rdi
callq 0x3280
movq 0x410(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x430(%rsp,%rax)
jne 0x5d9a
leaq 0x410(%rsp), %rdi
callq 0x32c0
leaq 0x40(%rsp), %rdi
callq 0x30f0
cmpq $0x0, 0x2a8(%rsp)
je 0x5dc7
movq 0xad95(%rip), %rdi      # 0xffc8
movq 0x270(%rsp), %rax
movq (%rdi), %rdx
movq 0x90(%rax), %rax
movq -0x18(%rdx), %rcx
movq %rax, 0x70(%rsp)
movq $0x5, 0x8(%rdi,%rcx)
movl $0xfffffefb, %ecx       # imm = 0xFFFFFEFB
movq -0x18(%rdx), %rax
andl 0x18(%rdi,%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x18(%rdi,%rax)
leaq 0x6943(%rip), %rsi      # 0xbbb5
callq 0x31d0
leaq 0x410(%rsp), %rax
vxorpd %xmm0, %xmm0, %xmm0
movq 0x288(%rsp), %rsi
xorl %r14d, %r14d
andq $0x0, 0x10(%rax)
vmovapd %xmm0, (%rax)
movq 0x290(%rsp), %rax
movq %rax, 0x80(%rsp)
pushq $-0x1
popq %rax
xorl %ebx, %ebx
movq $0x0, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movq %rax, 0x28(%rsp)
cmpq 0x80(%rsp), %rsi
je 0x549b
movq 0x280(%rsp), %rdi
movq %r14, 0x88(%rsp)
leaq 0x410(%rsp), %rdx
movq %rsi, 0x10(%rsp)
callq 0x877e
movq 0x70(%rsp), %rcx
movq 0x280(%rsp), %rax
movl (%rcx), %ecx
movq 0x20(%rax,%rcx,8), %rbp
movq 0x410(%rsp), %rax
movq 0x418(%rsp), %rcx
leaq (,%rbp,8), %rdx
pushq $-0x1
popq %r12
xorl %r14d, %r14d
xorl %r15d, %r15d
xorl %r13d, %r13d
cmpq %rcx, %rax
je 0x5365
testq %rdx, %rdx
je 0x535b
movq (%rax), %rsi
cmpq %r12, %rsi
cmovbq %rsi, %r12
cmpq %r14, %rsi
cmovaq %rsi, %r14
cmpq $0x1, %rsi
sbbq $-0x1, %r13
addq %rsi, %r15
addq $0x8, %rax
addq $-0x8, %rdx
jmp 0x5335
movq 0x10(%rsp), %rax
vcvtusi2sdq 0x210(%rax), %xmm2, %xmm0
incl %ebx
vdivsd 0x5c95(%rip), %xmm0, %xmm0 # 0xb010
vmovsd %xmm0, 0x8(%rsp)
movq 0xac40(%rip), %rdi      # 0xffc8
movq %rbx, %rsi
callq 0x3150
movq %rax, %rdi
pushq $0x9
popq %rsi
callq 0x3200
movq 0x280(%rsp), %rcx
movq (%rcx), %rcx
movsbl (%rcx,%rbp), %esi
movq %rax, %rdi
callq 0x3200
movq %rax, %rdi
pushq $0x9
popq %rsi
callq 0x3200
vcvtusi2sd %r12, %xmm2, %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq %rax, %rdi
callq 0x32f0
movq %rax, %rdi
pushq $0x9
popq %rsi
callq 0x3200
vcvtusi2sd %r15, %xmm2, %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq 0x418(%rsp), %rcx
subq 0x410(%rsp), %rcx
sarq $0x3, %rcx
decq %rcx
vcvtusi2sd %rcx, %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq %rax, %rdi
callq 0x32f0
movq %rax, %rdi
pushq $0x9
popq %rsi
callq 0x3200
vcvtusi2sd %r14, %xmm2, %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq %rax, %rdi
callq 0x32f0
movq %rax, %rdi
pushq $0xa
popq %rsi
callq 0x3200
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %rax
addq $0x4, 0x70(%rsp)
movq 0x20(%rsp), %rdx
movq 0x88(%rsp), %r14
movq 0x10(%rsp), %rsi
cmpq %rcx, %r13
cmovbq %rbx, %rax
cmovbq %r13, %rcx
cmpq %rdx, %r13
movq %rax, 0x30(%rsp)
movq 0x18(%rsp), %rax
cmovaq %r13, %rdx
movq %rcx, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
cmovaq %rbx, %rax
addq %r13, %r14
addq $0x218, %rsi            # imm = 0x218
movq %rax, 0x18(%rsp)
jmp 0x52cc
movq 0xab26(%rip), %rdi      # 0xffc8
leaq 0x672a(%rip), %rsi      # 0xbbd3
callq 0x31d0
movq 0xab13(%rip), %rdi      # 0xffc8
leaq 0x6737(%rip), %rsi      # 0xbbf3
callq 0x31d0
movq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x61f3(%rip), %rsi      # 0xb6c8
movq %rax, %rdi
callq 0x31d0
movq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
pushq $0xa
popq %rsi
movq %rax, %rdi
callq 0x3200
movq 0xaacc(%rip), %rdi      # 0xffc8
leaq 0x66f5(%rip), %rsi      # 0xbbf8
callq 0x31d0
movq %rax, %rdi
movq 0x290(%rsp), %rax
movl $0x218, %ecx            # imm = 0x218
vcvtusi2sd %r14, %xmm2, %xmm0
subq 0x288(%rsp), %rax
cqto
idivq %rcx
vcvtusi2sd %rax, %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
callq 0x32f0
pushq $0xa
popq %rsi
movq %rax, %rdi
callq 0x3200
movq 0xaa7c(%rip), %rdi      # 0xffc8
leaq 0x66ab(%rip), %rsi      # 0xbbfe
callq 0x31d0
movq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x615c(%rip), %rsi      # 0xb6c8
movq %rax, %rdi
callq 0x31d0
movq 0x18(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
pushq $0xa
popq %rsi
movq %rax, %rdi
callq 0x3200
movq 0xaa35(%rip), %rdi      # 0xffc8
leaq 0x6669(%rip), %rsi      # 0xbc03
callq 0x31d0
vcvtusi2sdq 0x2b0(%rsp), %xmm2, %xmm0
vmulsd 0x5a61(%rip), %xmm0, %xmm0 # 0xb010
vcvtusi2sdq 0x2a8(%rsp), %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq 0xaa06(%rip), %rdi      # 0xffc8
callq 0x32f0
leaq 0x6644(%rip), %rsi      # 0xbc12
movq %rax, %rdi
callq 0x31d0
vcvtusi2sdq 0x2b8(%rsp), %xmm2, %xmm0
vmulsd 0x5a2a(%rip), %xmm0, %xmm0 # 0xb010
vcvtusi2sdq 0x2a8(%rsp), %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq 0xa9cf(%rip), %rdi      # 0xffc8
callq 0x32f0
leaq 0x6645(%rip), %rsi      # 0xbc4a
movq %rax, %rdi
callq 0x31d0
leaq 0x410(%rsp), %rdi
callq 0xa222
leaq 0x270(%rsp), %rdi
callq 0x61a6
leaq 0x618(%rsp), %rdi
callq 0x30f0
leaq 0xc8(%rsp), %rdi
callq 0x623a
leaq 0x230(%rsp), %rdi
callq 0x30f0
leaq 0x250(%rsp), %rdi
callq 0x30f0
xorl %eax, %eax
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xa97a(%rip), %rdi      # 0xfff0
leaq 0x6359(%rip), %rsi      # 0xb9d6
callq 0x31d0
movq %rax, %rdi
callq 0x3110
pushq $0x1
popq %rdi
callq 0x3210
movq 0xa957(%rip), %rdi      # 0xfff0
leaq 0x5fff(%rip), %rsi      # 0xb69f
callq 0x31d0
movq %rax, %rdi
movq %r13, %rsi
callq 0x3150
leaq 0x5ff8(%rip), %rsi      # 0xb6af
movq %rax, %rdi
callq 0x31d0
leaq 0x410(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa910(%rip), %rdi      # 0xfff0
leaq 0x5fb8(%rip), %rsi      # 0xb69f
callq 0x31d0
movq %rax, %rdi
movq %r13, %rsi
callq 0x3150
leaq 0x5fb1(%rip), %rsi      # 0xb6af
movq %rax, %rdi
callq 0x31d0
leaq 0x410(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa8c6(%rip), %rdi      # 0xfff0
leaq 0x5f6e(%rip), %rsi      # 0xb69f
callq 0x31d0
movq %rax, %rdi
movq %r13, %rsi
callq 0x3150
leaq 0x5f73(%rip), %rsi      # 0xb6bb
movq %rax, %rdi
callq 0x31d0
leaq 0x270(%rsp), %rdi
movl %ebx, %esi
movq %rax, %r14
callq 0x63e6
leaq 0x270(%rsp), %rsi
movq %r14, %rdi
callq 0x31b0
leaq 0x5f5b(%rip), %rsi      # 0xb6d4
movq %rax, %rdi
callq 0x31d0
leaq 0x40(%rsp), %rdi
movl %ebp, %esi
movq %rax, %rbx
callq 0x63e6
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x31b0
leaq 0x5f57(%rip), %rsi      # 0xb6fb
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa830(%rip), %rdi      # 0xfff0
leaq 0x59b2(%rip), %rsi      # 0xb179
callq 0x31d0
movq (%r14), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x59af(%rip), %rsi      # 0xb18d
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa7f6(%rip), %rdi      # 0xfff0
leaq 0x5a0c(%rip), %rsi      # 0xb20d
callq 0x31d0
movq (%r14), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x5a09(%rip), %rsi      # 0xb221
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa7bc(%rip), %rdi      # 0xfff0
leaq 0x5993(%rip), %rsi      # 0xb1ce
callq 0x31d0
movq (%r14), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x5990(%rip), %rsi      # 0xb1e2
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa782(%rip), %rdi      # 0xfff0
leaq 0x58b7(%rip), %rsi      # 0xb12c
callq 0x31d0
movq (%r14), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x58b4(%rip), %rsi      # 0xb140
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa718(%rip), %rbx      # 0xffc0
movl (%rbx), %ecx
leal -0x4b(%rcx), %eax
cmpl $0x9, %eax
ja 0x5a2d
leaq 0x578b(%rip), %rcx      # 0xb048
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xa723(%rip), %rdi      # 0xfff0
leaq 0x59aa(%rip), %rsi      # 0xb27e
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa703(%rip), %rdi      # 0xfff0
leaq 0x57e4(%rip), %rsi      # 0xb0d8
callq 0x31d0
movq (%r14), %rsi
movq %rax, %rdi
callq 0x31d0
leaq 0x57e1(%rip), %rsi      # 0xb0ec
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa6c9(%rip), %rdi      # 0xfff0
leaq 0x5d71(%rip), %rsi      # 0xb69f
callq 0x31d0
movq %rax, %rdi
movq %r13, %rsi
callq 0x3150
leaq 0x5d6a(%rip), %rsi      # 0xb6af
movq %rax, %rdi
callq 0x31d0
leaq 0x410(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa67f(%rip), %rdi      # 0xfff0
leaq 0x5bb9(%rip), %rsi      # 0xb531
callq 0x31d0
movl 0x30(%rsp), %esi
movq %rax, %rdi
callq 0x3150
leaq 0x5d28(%rip), %rsi      # 0xb6b8
movq %rax, %rdi
callq 0x31d0
leaq 0x410(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa634(%rip), %rdi      # 0xfff0
leaq 0x5b34(%rip), %rsi      # 0xb4f7
callq 0x31d0
movl 0x30(%rsp), %esi
movq %rax, %rdi
callq 0x3150
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa608(%rip), %rdi      # 0xfff0
leaq 0x5b24(%rip), %rsi      # 0xb513
callq 0x31d0
movl 0x30(%rsp), %esi
movq %rax, %rdi
callq 0x3150
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa5dc(%rip), %rdi      # 0xfff0
leaq 0x5fbb(%rip), %rsi      # 0xb9d6
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
cmpl $0x45, %ecx
jne 0x5a52
movq 0xa5b7(%rip), %rdi      # 0xfff0
leaq 0x5816(%rip), %rsi      # 0xb256
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa597(%rip), %rdi      # 0xfff0
leaq 0x58fc(%rip), %rsi      # 0xb35c
callq 0x31d0
movl (%rbx), %esi
movq %rax, %rdi
callq 0x3350
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa56d(%rip), %rdi      # 0xfff0
leaq 0x5819(%rip), %rsi      # 0xb2a3
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa54d(%rip), %rdi      # 0xfff0
leaq 0x582a(%rip), %rsi      # 0xb2d4
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa52d(%rip), %rdi      # 0xfff0
leaq 0x5835(%rip), %rsi      # 0xb2ff
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa50d(%rip), %rdi      # 0xfff0
leaq 0x5842(%rip), %rsi      # 0xb32c
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa4ed(%rip), %rdi      # 0xfff0
leaq 0x59ba(%rip), %rsi      # 0xb4c4
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa4cd(%rip), %rdi      # 0xfff0
leaq 0x584c(%rip), %rsi      # 0xb376
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa4ad(%rip), %rdi      # 0xfff0
leaq 0x5943(%rip), %rsi      # 0xb48d
callq 0x31d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa482(%rip), %rdi      # 0xfff0
leaq 0x5934(%rip), %rsi      # 0xb4a9
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa462(%rip), %rdi      # 0xfff0
leaq 0x59be(%rip), %rsi      # 0xb553
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa442(%rip), %rdi      # 0xfff0
leaq 0x59ec(%rip), %rsi      # 0xb5a1
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa422(%rip), %rdi      # 0xfff0
leaq 0x59f6(%rip), %rsi      # 0xb5cb
callq 0x31d0
movq 0xd8(%rsp), %rsi
subq 0xd0(%rsp), %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x59e2(%rip), %rsi      # 0xb5db
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa3db(%rip), %rdi      # 0xfff0
leaq 0x59eb(%rip), %rsi      # 0xb607
callq 0x31d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3150
leaq 0x59df(%rip), %rsi      # 0xb612
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa3a1(%rip), %rdi      # 0xfff0
leaq 0x5a15(%rip), %rsi      # 0xb66b
callq 0x31d0
movq 0x18(%rsp), %rsi
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa374(%rip), %rdi      # 0xfff0
leaq 0x59ff(%rip), %rsi      # 0xb682
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa354(%rip), %rdi      # 0xfff0
leaq 0x5a6b(%rip), %rsi      # 0xb70e
callq 0x31d0
movq 0x178(%rsp), %rsi
subq 0x170(%rsp), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x5a52(%rip), %rsi      # 0xb71d
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
movq %r12, %rsi
callq 0x3150
leaq 0x5a54(%rip), %rsi      # 0xb739
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa2ef(%rip), %rdi      # 0xfff0
leaq 0x5ae8(%rip), %rsi      # 0xb7f0
callq 0x31d0
pushq $0x40
popq %rsi
movq %rax, %rdi
callq 0x3150
leaq 0x552a(%rip), %rsi      # 0xb249
movq %rax, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
leaq 0x5ae1(%rip), %rdi      # 0xb81c
callq 0x3120
movq 0xa2a9(%rip), %rdi      # 0xfff0
leaq 0x5dd1(%rip), %rsi      # 0xbb1f
callq 0x31d0
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa27c(%rip), %rdi      # 0xfff0
leaq 0x5dc6(%rip), %rsi      # 0xbb41
callq 0x31d0
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa24f(%rip), %rdi      # 0xfff0
leaq 0x5dcd(%rip), %rsi      # 0xbb75
callq 0x31d0
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0x31b0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa222(%rip), %rdi      # 0xfff0
leaq 0x5dc0(%rip), %rsi      # 0xbb95
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
movq 0xa202(%rip), %rdi      # 0xfff0
leaq 0x5b94(%rip), %rsi      # 0xb989
vzeroupper
callq 0x31d0
movq %rax, %rdi
callq 0x3110
jmp 0x568a
jmp 0x6013
leaq 0x618(%rsp), %rdi
movq %rax, %r14
callq 0x30f0
jmp 0x5e24
movq %rax, %r14
movq %r13, %rdi
callq 0x31c0
jmp 0x6177
jmp 0x5fcc
jmp 0x5e9f
jmp 0x5e43
jmp 0x5ec2
jmp 0x5e43
jmp 0x5ec2
movq %rax, %r14
jmp 0x60c7
jmp 0x5ec2
jmp 0x5f16
jmp 0x6013
jmp 0x5f16
jmp 0x5fcc
jmp 0x5f31
jmp 0x5f31
jmp 0x6013
movq %rax, %r14
jmp 0x6191
leaq 0x40(%rsp), %rdi
movq %rax, %r14
callq 0x30f0
jmp 0x5ecd
jmp 0x5eca
movq %rax, %r14
jmp 0x6057
jmp 0x5f16
jmp 0x6013
jmp 0x5e9f
jmp 0x5f16
movq %rax, %r14
jmp 0x6023
jmp 0x60b7
jmp 0x60a5
jmp 0x6013
jmp 0x6013
jmp 0x60b7
jmp 0x5f22
movq %rax, %r14
jmp 0x615d
movq %rax, %r14
leaq 0x270(%rsp), %rdi
callq 0x30f0
jmp 0x6016
jmp 0x6013
jmp 0x6100
jmp 0x5fcc
movq %rax, %r14
jmp 0x6116
jmp 0x5fc2
jmp 0x5fa3
jmp 0x5fdb
jmp 0x5fdb
jmp 0x60a5
jmp 0x5f84
jmp 0x6013
movq %rax, %r14
jmp 0x616a
jmp 0x5f22
jmp 0x5f22
movq %rax, %r14
jmp 0x6030
jmp 0x6013
jmp 0x5f31
leaq 0x270(%rsp), %rdi
movq %rax, %r14
callq 0x9070
jmp 0x6016
jmp 0x5f84
jmp 0x5f6f
jmp 0x5fb8
jmp 0x6013
jmp 0x6013
jmp 0x5f84
jmp 0x5f84
jmp 0x5f84
jmp 0x6013
jmp 0x5fb8
jmp 0x5fb8
jmp 0x5f84
jmp 0x5f6f
jmp 0x5f6f
jmp 0x5fb8
jmp 0x5f84
leaq 0x410(%rsp), %rdi
movq %rax, %r14
callq 0x30f0
jmp 0x6184
leaq 0x618(%rsp), %rdi
movq %rax, %r14
callq 0x3100
jmp 0x6184
jmp 0x60b7
jmp 0x60d6
movq %rax, %r14
jmp 0x60ec
jmp 0x5fb8
jmp 0x6013
jmp 0x6013
jmp 0x6013
jmp 0x6100
movq %rax, %r14
jmp 0x6184
jmp 0x6013
movq %rax, %r14
jmp 0x6129
jmp 0x6013
movq %rax, %r14
jmp 0x6177
jmp 0x6013
jmp 0x60b7
leaq 0x410(%rsp), %rdi
movq %rax, %r14
callq 0xa222
jmp 0x615d
jmp 0x6013
leaq 0xa8(%rsp), %rdi
movq %rax, %r14
callq 0x7e6a
jmp 0x608a
jmp 0x6087
jmp 0x6100
jmp 0x6100
movq %rax, %r14
leaq 0x410(%rsp), %rdi
callq 0x30f0
leaq 0x618(%rsp), %rdi
callq 0x3060
leaq 0x170(%rsp), %rdi
callq 0x9054
leaq 0x158(%rsp), %rdi
callq 0x9062
leaq 0x140(%rsp), %rdi
callq 0x627e
leaq 0x100(%rsp), %rdi
callq 0x6732
leaq 0xe8(%rsp), %rdi
callq 0x9070
leaq 0xd0(%rsp), %rdi
callq 0x9070
jmp 0x6184
jmp 0x60d6
jmp 0x6100
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x7e6a
jmp 0x609b
jmp 0x6098
movq %rax, %r14
movq %rbx, %rdi
callq 0x7e6a
jmp 0x6103
leaq 0x90(%rsp), %rdi
movq %rax, %r14
callq 0xa222
jmp 0x60ba
movq %rax, %r14
leaq 0x410(%rsp), %rdi
callq 0x32c0
leaq 0x40(%rsp), %rdi
callq 0x30f0
jmp 0x615d
movq 0x190(%rsp), %rdi
movq %rax, %r14
testq %rdi, %rdi
je 0x60ec
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x90(%rsp), %rdi
callq 0x94da
leaq 0x40(%rsp), %rdi
jmp 0x6158
movq %rax, %r14
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x6116
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x3f8(%rsp), %rdi
testq %rdi, %rdi
je 0x6129
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x210(%rsp), %rdi
callq 0x94da
leaq 0x3c0(%rsp), %rdi
callq 0x94da
leaq 0x1d0(%rsp), %rdi
callq 0x94da
leaq 0x1b0(%rsp), %rdi
callq 0x94da
leaq 0x270(%rsp), %rdi
callq 0x61a6
leaq 0x618(%rsp), %rdi
callq 0x30f0
leaq 0xc8(%rsp), %rdi
callq 0x623a
leaq 0x230(%rsp), %rdi
callq 0x30f0
leaq 0x250(%rsp), %rdi
callq 0x30f0
movq %r14, %rdi
callq 0x3390