// File: /workspace/github_cpp_makefile_star2_O1/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 $0x848, %rsp            # imm = 0x848
movq %rsi, 0x8(%rsp)
movl %edi, %r14d
movl $0x19, 0x6c(%rsp)
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
movq %rax, 0x218(%rsp)
leaq 0x1c0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x8e7e(%rip), %rsi      # 0xc4a0
leaq 0x8e7e(%rip), %rdx      # 0xc4a7
leaq 0x1b0(%rsp), %rdi
callq 0xbb2e
movl $0x14, 0x68(%rsp)
movl $0x2, 0xd4(%rsp)
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x8e4c(%rip), %rsi      # 0xc4a8
leaq 0x8e85(%rip), %rdx      # 0xc4e8
leaq 0xb0(%rsp), %rdi
callq 0xbb2e
movq $0x0, 0x50(%rsp)
leaq 0x8e69(%rip), %rbx      # 0xc4e9
movq 0xd911(%rip), %r12      # 0x10f98
leaq 0x3f0(%rsp), %r15
leaq 0x628(%rsp), %rbp
movq 0xd91a(%rip), %r13      # 0x10fb8
movq $0x0, 0x58(%rsp)
movl %r14d, 0x48(%rsp)
movl %r14d, %edi
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
callq 0x3050
cmpl $0x4a, %eax
jg 0x374b
cmpl $0x45, %eax
jne 0x37d9
movq (%r12), %rsi
movq %r15, %rdi
leaq 0x2a0(%rsp), %rdx
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3340
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x370c
callq 0x31c0
movq %rbp, %rdi
leaq 0xd4(%rsp), %rsi
callq 0x3390
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x653d
movq %rbp, %rdi
movq %r13, %rsi
callq 0x3290
leaq 0x6a0(%rsp), %rdi
callq 0x30a0
jmp 0x36ac
leal -0x4b(%rax), %ecx
cmpl $0x9, %ecx
ja 0x37f0
leaq 0x89a2(%rip), %rdx      # 0xc100
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq (%r12), %rsi
movq %r15, %rdi
leaq 0x2a0(%rsp), %rdx
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3340
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x37a5
callq 0x31c0
movq %rbp, %rdi
leaq 0x6c(%rsp), %rsi
callq 0x3390
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x68e1
movl 0x6c(%rsp), %eax
addl $-0x41, %eax
cmpl $-0x34, %eax
ja 0x372e
jmp 0x68e1
cmpl $-0x1, %eax
je 0x399a
cmpl $0x3f, %eax
jne 0x36ac
jmp 0x64ef
cmpl $0x64, %eax
je 0x398e
cmpl $0x70, %eax
jne 0x36ac
movb $0x1, %al
movq %rax, 0x50(%rsp)
jmp 0x36ac
movq (%r12), %r14
movq 0xb8(%rsp), %r12
movq %r14, %rdi
callq 0x30e0
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
movq %r12, %rdx
movq 0xd762(%rip), %r12      # 0x10f98
movq %r14, %rcx
movl 0x48(%rsp), %r14d
movq %rax, %r8
callq 0x32f0
cmpq $0x40, 0xb8(%rsp)
je 0x36ac
jmp 0x67eb
movq (%r12), %r14
movq 0x1b8(%rsp), %r12
movq %r14, %rdi
callq 0x30e0
leaq 0x1b0(%rsp), %rdi
xorl %esi, %esi
movq %r12, %rdx
movq 0xd716(%rip), %r12      # 0x10f98
movq %r14, %rcx
movl 0x48(%rsp), %r14d
movq %rax, %r8
callq 0x32f0
jmp 0x36ac
movq (%r12), %rsi
movq %r15, %rdi
leaq 0x2a0(%rsp), %rdx
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3340
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x38d5
callq 0x31c0
movq %rbp, %rdi
leaq 0x68(%rsp), %rsi
callq 0x3390
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x683d
cmpl $0x3d, 0x68(%rsp)
jb 0x372e
jmp 0x683d
movq (%r12), %rsi
movq %r15, %rdi
leaq 0x2a0(%rsp), %rdx
callq 0x30c0
movq %rbp, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3340
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x3942
callq 0x31c0
movq %rbp, %rdi
leaq 0x218(%rsp), %rsi
callq 0x3120
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x688f
vmovsd 0x218(%rsp), %xmm0
vxorpd %xmm1, %xmm1, %xmm1
vucomisd %xmm0, %xmm1
ja 0x688f
vucomisd 0x8685(%rip), %xmm0     # 0xc008
jbe 0x372e
jmp 0x688f
movb $0x1, %al
movq %rax, 0x58(%rsp)
jmp 0x36ac
movq 0xd62f(%rip), %rax      # 0x10fd0
movslq (%rax), %rax
leal 0x2(%rax), %ecx
cmpl %r14d, %ecx
jg 0x695c
movq 0x8(%rsp), %rcx
movq (%rcx,%rax,8), %rbx
movq 0x8(%rcx,%rax,8), %r12
movl 0x6c(%rsp), %eax
leaq 0x110(%rsp), %rcx
movl %eax, -0x38(%rcx)
vpxor %xmm0, %xmm0, %xmm0
vmovdqu %ymm0, -0x30(%rcx)
vmovdqu %ymm0, -0x20(%rcx)
movl %eax, (%rcx)
movl %eax, 0x4(%rcx)
leaq 0x148(%rsp), %r14
movq %r14, -0x30(%r14)
movq $0x1, -0x28(%r14)
leaq 0x138(%rsp), %rdi
vpxor %xmm0, %xmm0, %xmm0
vmovdqu %xmm0, -0x10(%rdi)
movl $0x3f800000, (%rdi)     # imm = 0x3F800000
vmovdqu %xmm0, 0x8(%rdi)
xorl %esi, %esi
vzeroupper
callq 0x3150
movq %rax, %r15
cmpq 0x120(%rsp), %rax
jbe 0x3a67
cmpq $0x1, %r15
je 0x6420
leaq 0x628(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xa0e8
movq %rax, %r14
movq %r15, %rdx
shlq $0x3, %rdx
movq %rax, %rdi
xorl %esi, %esi
callq 0x3110
movq %r14, 0x118(%rsp)
movq %r15, 0x120(%rsp)
vpxor %xmm0, %xmm0, %xmm0
vmovdqu64 %zmm0, 0x150(%rsp)
movq $0x0, 0x190(%rsp)
leaq 0x628(%rsp), %rdi
movq %rbx, %rsi
movl $0xe, %edx
vzeroupper
callq 0x33c0
movq 0x628(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x648(%rsp,%rax)
jne 0x6985
leaq 0x628(%rsp), %rdi
callq 0x3380
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0xa10e
leaq 0x628(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
leaq 0x400(%rsp), %rax
movq %rax, 0x3f0(%rsp)
movq $0x0, 0x3f8(%rsp)
movb $0x0, 0x400(%rsp)
movq 0x628(%rsp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %edx
leaq 0x628(%rsp), %rbx
leaq 0x3f0(%rsp), %rsi
movq %rbx, %rdi
callq 0x33d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x69b9
movq %r12, 0xa8(%rsp)
cmpq $0x0, 0x3f8(%rsp)
je 0x6933
movq 0x3f0(%rsp), %rax
cmpb $0x3e, (%rax)
jne 0x6933
xorl %r12d, %r12d
xorl %r14d, %r14d
movq 0x628(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %edx
movq %rbx, %rdi
leaq 0x3f0(%rsp), %rsi
callq 0x33d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x3dd4
incl %r14d
movq 0x3f8(%rsp), %r15
testq %r15, %r15
je 0x3b7d
movq 0x3f0(%rsp), %rbp
xorl %r13d, %r13d
movsbl (%rbp,%r13), %ebx
movl %ebx, %edi
callq 0x3040
testl %eax, %eax
jne 0x3d49
movzbl %bl, %eax
cmpl $0x5c, %eax
jg 0x3c14
cmpl $0x53, %eax
jg 0x3c5e
cmpl $0x41, %eax
je 0x3ce1
cmpl $0x43, %eax
je 0x3c38
cmpl $0x47, %eax
je 0x3d24
jmp 0x665a
cmpl $0x66, %eax
jg 0x3cba
cmpl $0x5d, %eax
je 0x3d57
cmpl $0x61, %eax
je 0x3ce1
cmpl $0x63, %eax
jne 0x665a
movb $0x1, 0x2a0(%rsp)
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0x3db0
movb $0x1, (%rsi)
jmp 0x3d41
leal -0x54(%rax), %ecx
cmpl $0x2, %ecx
jb 0x3cc2
cmpl $0x5b, %eax
jne 0x665a
testb $0x1, %r12b
jne 0x65f2
movq 0xe8(%rsp), %rax
subq 0xe0(%rsp), %rax
movq %rax, 0x2a0(%rsp)
movq $0x0, 0x2a8(%rsp)
leaq 0x150(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x72c8
movb $0x1, %r12b
jmp 0x3d49
leal -0x74(%rax), %ecx
cmpl $0x2, %ecx
jae 0x3d1b
movb $0x3, 0x2a0(%rsp)
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0x3d04
movb $0x3, (%rsi)
jmp 0x3d41
movb $0x0, 0x2a0(%rsp)
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0x3d82
movb $0x0, (%rsi)
jmp 0x3d41
leaq 0xe0(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
callq 0xa226
jmp 0x3d49
cmpl $0x67, %eax
jne 0x665a
movb $0x2, 0x2a0(%rsp)
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0x3d99
movb $0x2, (%rsi)
incq 0xe8(%rsp)
incq %r13
cmpq %r13, %r15
jne 0x3bd6
jmp 0x3dc7
testb $0x1, %r12b
je 0x6626
movq 0xe8(%rsp), %rax
movq 0x158(%rsp), %rcx
subq 0xe0(%rsp), %rax
movq %rax, -0x8(%rcx)
xorl %r12d, %r12d
jmp 0x3d49
leaq 0xe0(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
callq 0xa226
jmp 0x3d49
leaq 0xe0(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
callq 0xa226
jmp 0x3d49
leaq 0xe0(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
callq 0xa226
jmp 0x3d49
leaq 0x628(%rsp), %rbx
jmp 0x3b7d
testb $0x1, %r12b
jne 0x69e2
movq 0x150(%rsp), %rax
cmpq 0x158(%rsp), %rax
jne 0x3e66
movq 0xd1f9(%rip), %rbx      # 0x10ff0
leaq 0x8b8b(%rip), %rsi      # 0xc989
movl $0x37, %edx
movq %rbx, %rdi
callq 0x3210
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %esi
movq 0xd1c7(%rip), %rdi      # 0x10ff0
callq 0x3030
movq %rax, %rdi
callq 0x3140
leaq 0x2a0(%rsp), %rsi
movq $0x0, (%rsi)
movq 0xe8(%rsp), %rax
subq 0xe0(%rsp), %rax
movq %rax, 0x8(%rsi)
leaq 0x150(%rsp), %rdi
callq 0x72c8
movq 0x628(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x648(%rsp,%rax)
je 0x6a0b
movq 0xe8(%rsp), %rax
subq 0xe0(%rsp), %rax
movl 0xd8(%rsp), %ecx
cmpq %rcx, %rax
jb 0x6a34
leaq 0x2a0(%rsp), %rsi
movq %rax, (%rsi)
movq %rax, 0x8(%rsi)
leaq 0x150(%rsp), %rdi
callq 0x72c8
movq 0x150(%rsp), %rax
movq 0x158(%rsp), %rcx
cmpq %rcx, %rax
je 0x3f8e
subq %rax, %rcx
addq $-0x10, %rcx
vpbroadcastq %rcx, %zmm0
shrq $0x4, %rcx
addq $0x8, %rcx
andq $-0x8, %rcx
vpsrlq $0x4, %zmm0, %zmm0
vpxor %xmm4, %xmm4, %xmm4
xorl %edx, %edx
vpmovsxbq 0x8123(%rip), %zmm1 # 0xc028
vpmovsxbd 0x8122(%rip), %ymm3 # 0xc030
vmovdqa64 %zmm4, %zmm2
vpbroadcastq %rdx, %zmm4
vporq %zmm1, %zmm4, %zmm4
vpcmpleuq %zmm0, %zmm4, %k1
kmovq %k1, %k2
vpxor %xmm4, %xmm4, %xmm4
vpgatherdq 0x8(%rax,%ymm3), %zmm4 {%k2}
kmovq %k1, %k2
vpxor %xmm5, %xmm5, %xmm5
vpgatherdq (%rax,%ymm3), %zmm5 {%k2}
vpaddq %zmm2, %zmm4, %zmm4
vpsubq %zmm5, %zmm4, %zmm4
addq $0x8, %rdx
subq $-0x80, %rax
cmpq %rdx, %rcx
jne 0x3f0e
vmovdqa64 %zmm4, %zmm2 {%k1}
vextracti64x4 $0x1, %zmm2, %ymm0
vpaddq %zmm0, %zmm2, %zmm0
vextracti128 $0x1, %ymm0, %xmm1
vpaddq %xmm1, %xmm0, %xmm0
vpshufd $0xee, %xmm0, %xmm1     # xmm1 = xmm0[2,3,2,3]
vpaddq %xmm1, %xmm0, %xmm0
vmovq %xmm0, %r14
jmp 0x3f91
xorl %r14d, %r14d
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
movq %r14, %rdx
mulxq %rax, %rax, %rbx
movabsq $0x5555555555555556, %rcx # imm = 0x5555555555555556
cmpq %rcx, %rax
jae 0x6a8c
vpxor %xmm0, %xmm0, %xmm0
leaq 0x2a0(%rsp), %rdi
vmovdqa %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %r14, %rsi
vzeroupper
callq 0xa10e
movq 0x150(%rsp), %r15
movq 0x158(%rsp), %r12
cmpq %r12, %r15
je 0x4019
leaq 0x2a0(%rsp), %r14
movq 0xe0(%rsp), %rsi
movq (%r15), %rdi
addq %rsi, %rdi
addq 0x8(%r15), %rsi
movq %r14, %rdx
callq 0xa316
addq $0x10, %r15
cmpq %r12, %r15
jne 0x3ff6
shrq %rbx
leaq 0x168(%rsp), %rdi
movq %rbx, %rsi
callq 0xa198
movq 0x2a0(%rsp), %r14
movq 0x2a8(%rsp), %r15
cmpq %r15, %r14
movq 0xa8(%rsp), %r12
jae 0x40a5
leaq 0x10(%rsp), %rbx
movzbl (%r14), %eax
shll $0x4, %eax
movzbl 0x1(%r14), %ecx
shll $0x2, %ecx
orl %eax, %ecx
movzbl 0x2(%r14), %eax
orl %ecx, %eax
movl %eax, 0x10(%rsp)
movq 0x170(%rsp), %rsi
cmpq 0x178(%rsp), %rsi
je 0x408c
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x170(%rsp)
jmp 0x409c
leaq 0x168(%rsp), %rdi
movq %rbx, %rdx
callq 0xa470
addq $0x3, %r14
cmpq %r15, %r14
jb 0x404e
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0x40b7
callq 0x31c0
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x40d1
callq 0x31c0
leaq 0x628(%rsp), %rdi
callq 0x3060
leaq 0x628(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movl $0xc, %edx
callq 0x33c0
movq 0x628(%rsp), %rax
movq -0x18(%rax), %rcx
testb $0x5, 0x648(%rsp,%rcx)
jne 0x6ada
leaq 0x400(%rsp), %rcx
movq %rcx, 0x3f0(%rsp)
movq $0x0, 0x3f8(%rsp)
movb $0x0, 0x400(%rsp)
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %edx
leaq 0x628(%rsp), %r15
leaq 0x3f0(%rsp), %rsi
movq %r15, %rdi
callq 0x33d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x6b13
cmpq $0xff, 0x3f8(%rsp)
jne 0x6b13
movq 0x170(%rsp), %r14
subq 0x168(%rsp), %r14
sarq $0x2, %r14
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0xa580
xorl %r13d, %r13d
movq 0x628(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %edx
movq %r15, %rdi
leaq 0x3f0(%rsp), %rsi
callq 0x33d0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x42b6
leaq 0x1(%r13), %r12
cmpq $0x7f, 0x3f8(%rsp)
jne 0x658f
movq $0x0, 0x70(%rsp)
movq 0x3f0(%rsp), %rax
xorl %ecx, %ecx
movzbl 0x1(%rax,%rcx,2), %edx
cmpl $0x9, %edx
je 0x4222
cmpl $0x20, %edx
jne 0x6332
incq %rcx
cmpq $0x3f, %rcx
jne 0x420f
movq 0x168(%rsp), %rcx
xorl %ebx, %ebx
xorl %edx, %edx
movzbl (%rax,%rbx,2), %esi
cmpl $0x30, %esi
je 0x426b
cmpl $0x32, %esi
je 0x4259
cmpl $0x31, %esi
jne 0x63c0
btsq %rbx, %rdx
movq %rdx, 0x70(%rsp)
jmp 0x426b
cmpq %r14, %r12
ja 0x426b
movl (%rcx,%r13,4), %ebp
cmpq %rbp, %rbx
jne 0x6431
incq %rbx
cmpq $0x40, %rbx
jne 0x4237
movq 0x188(%rsp), %rsi
cmpq 0x190(%rsp), %rsi
je 0x429c
movq 0x70(%rsp), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x188(%rsp)
jmp 0x42ae
leaq 0x180(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0xa65c
movq %r12, %r13
jmp 0x41ab
movq 0x188(%rsp), %rax
subq 0x180(%rsp), %rax
sarq $0x3, %rax
cmpq %r14, %rax
ja 0x6b3c
jae 0x4381
movq 0xcd10(%rip), %rdi      # 0x10ff0
leaq 0x887b(%rip), %rsi      # 0xcb62
movl $0x1c, %edx
callq 0x3210
movq 0x188(%rsp), %rsi
subq 0x180(%rsp), %rsi
sarq $0x3, %rsi
movq 0xcce4(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rbx
leaq 0x8864(%rip), %rsi      # 0xcb7f
movl $0x16, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x881c(%rip), %rsi      # 0xcb59
movl $0x8, %edx
movq %rax, %rdi
callq 0x3210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3140
leaq 0x180(%rsp), %rdi
movq %r14, %rsi
callq 0xa60e
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x439b
callq 0x31c0
leaq 0x628(%rsp), %rdi
callq 0x3060
movq 0xe8(%rsp), %rsi
subq 0xe0(%rsp), %rsi
leaq 0xf8(%rsp), %rdi
callq 0xa10e
movq 0xe0(%rsp), %r14
movq 0xe8(%rsp), %r15
cmpq %r14, %r15
je 0x4435
movl $0x4, %ebp
leaq 0x628(%rsp), %rbx
movb -0x1(%r15), %al
movl %eax, %ecx
xorb $0x3, %cl
cmpb $0x4, %al
movzbl %cl, %eax
cmovel %ebp, %eax
movb %al, 0x628(%rsp)
movq 0x100(%rsp), %rsi
cmpq 0x108(%rsp), %rsi
je 0x441d
movb %al, (%rsi)
incq 0x100(%rsp)
jmp 0x442d
leaq 0xf8(%rsp), %rdi
movq %rbx, %rdx
callq 0xa226
decq %r15
cmpq %r14, %r15
jne 0x43e7
movq 0xe8(%rsp), %rax
movq 0x130(%rsp), %rcx
subq 0xe0(%rsp), %rax
addq %rax, %rax
vcvtusi2sd %rax, %xmm2, %xmm0
vcvtss2sd 0x138(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vroundsd $0xa, %xmm0, %xmm0, %xmm0
vcvttsd2usi %xmm0, %rsi
movq 0x140(%rsp), %rbx
incq %rcx
vcvtusi2sd %rcx, %xmm2, %xmm0
movq %rbx, 0x628(%rsp)
vdivsd %xmm1, %xmm0, %xmm0
vroundsd $0xa, %xmm0, %xmm0, %xmm0
vcvttsd2usi %xmm0, %rax
cmpq %rsi, %rax
cmovaq %rax, %rsi
leaq 0x138(%rsp), %rdi
callq 0x3150
cmpq 0x120(%rsp), %rax
jne 0x44c0
movq %rbx, 0x140(%rsp)
jmp 0x44d8
leaq 0x628(%rsp), %rdx
leaq 0x110(%rsp), %rdi
movq %rax, %rsi
callq 0x75be
movq 0xe8(%rsp), %r14
movl 0xd8(%rsp), %eax
subq %rax, %r14
leaq 0x1(%r14), %rax
movq 0xe0(%rsp), %r15
movq %r15, 0x628(%rsp)
cmpq %rax, %r15
je 0x4554
leaq -0x1(%r15), %r12
incq %r15
xorl %r13d, %r13d
leaq 0x628(%rsp), %rbx
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
callq 0x7462
movb $0x2, %cl
cmpb $0x0, 0x9(%rax)
jne 0x4539
movl %r13d, %ecx
movq %rcx, (%rax)
movb $0x0, 0x8(%rax)
movb $0x1, %cl
movb %cl, 0x9(%rax)
leaq (%r15,%r13), %rax
incq %r13
movq %rax, 0x628(%rsp)
leaq (%r12,%r13), %rax
cmpq %r14, %rax
jne 0x4515
movq 0x100(%rsp), %r14
movl 0xd8(%rsp), %eax
subq %rax, %r14
leaq 0x1(%r14), %rax
movq 0xf8(%rsp), %r15
movq %r15, 0x628(%rsp)
cmpq %rax, %r15
je 0x45d0
leaq -0x1(%r15), %r12
incq %r15
xorl %r13d, %r13d
leaq 0x628(%rsp), %rbx
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
callq 0x7462
movb $0x2, %cl
cmpb $0x0, 0x9(%rax)
jne 0x45b5
movl %r13d, %ecx
movq %rcx, (%rax)
movb $0x1, 0x8(%rax)
movb $0x1, %cl
movb %cl, 0x9(%rax)
leaq (%r15,%r13), %rax
incq %r13
movq %rax, 0x628(%rsp)
leaq (%r12,%r13), %rax
cmpq %r14, %rax
jne 0x4591
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x46ab
cmpb $0x1, 0x19(%rdi)
jne 0x45ef
movq (%rdi), %rbx
jmp 0x469f
movq 0x118(%rsp), %r8
movq 0x120(%rsp), %r11
movq 0x20(%rdi), %rax
xorl %edx, %edx
divq %r11
movq %rdx, %rcx
movq (%r8,%rdx,8), %r10
movq %r10, %rax
movq %rax, %rsi
movq (%rax), %rax
cmpq %rdi, %rax
jne 0x4612
movq (%rdi), %r9
cmpq %rsi, %r10
je 0x463e
testq %r9, %r9
je 0x4689
movq 0x20(%r9), %rax
xorl %edx, %edx
divq %r11
cmpq %rcx, %rdx
je 0x4689
movq %rsi, (%r8,%rdx,8)
jmp 0x4689
testq %r9, %r9
je 0x464e
movq 0x20(%r9), %rax
xorl %edx, %edx
divq %r11
jmp 0x4650
xorl %edx, %edx
testq %r9, %r9
je 0x465a
cmpq %rcx, %rdx
je 0x4689
testq %r9, %r9
je 0x4663
movq %r10, (%r8,%rdx,8)
movq 0x118(%rsp), %rax
leaq 0x128(%rsp), %rdx
cmpq (%rax,%rcx,8), %rdx
jne 0x4681
movq %r9, 0x128(%rsp)
movq $0x0, (%rax,%rcx,8)
movq (%rdi), %rax
movq %rax, (%rsi)
movq (%rdi), %rbx
callq 0x31c0
decq 0x130(%rsp)
movq %rbx, %rdi
testq %rbx, %rbx
jne 0x45e1
movq 0xe8(%rsp), %rbx
subq 0xe0(%rsp), %rbx
movq 0xc92e(%rip), %rdi      # 0x10ff0
leaq 0x84ec(%rip), %rsi      # 0xcbb5
movl $0x12, %edx
callq 0x3210
movq 0xc916(%rip), %rdi      # 0x10ff0
movq %rbx, %rsi
callq 0x3130
leaq 0x84ff(%rip), %rsi      # 0xcbe8
movl $0x2, %edx
movq %rax, %rdi
callq 0x3210
movq 0xc8f3(%rip), %rdi      # 0x10ff0
leaq 0x84c4(%rip), %rsi      # 0xcbc8
movl $0xb, %edx
callq 0x3210
movq 0x130(%rsp), %rsi
movq 0xc8d3(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %r14
leaq 0x84a8(%rip), %rsi      # 0xcbd4
movl $0x2, %edx
movq %rax, %rdi
callq 0x3210
movl 0xd8(%rsp), %eax
subq %rax, %rbx
addq %rbx, %rbx
subq 0x130(%rsp), %rbx
addq $0x2, %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3130
leaq 0x8473(%rip), %rsi      # 0xcbd7
movl $0x13, %edx
movq %rax, %rdi
callq 0x3210
movq 0xc878(%rip), %rdi      # 0x10ff0
leaq 0x846c(%rip), %rsi      # 0xcbeb
movl $0x16, %edx
callq 0x3210
movq 0x170(%rsp), %rsi
subq 0x168(%rsp), %rsi
sarq $0x2, %rsi
movq 0xc84c(%rip), %rdi      # 0x10ff0
callq 0x3130
leaq 0x8438(%rip), %rsi      # 0xcbe8
movl $0x2, %edx
movq %rax, %rdi
callq 0x3210
movq 0xc82c(%rip), %rdi      # 0x10ff0
leaq 0x8437(%rip), %rsi      # 0xcc02
movl $0xd, %edx
callq 0x3210
movq 0x150(%rsp), %r15
movq 0x158(%rsp), %r12
addq $-0x10, %r12
cmpq %r12, %r15
je 0x4856
movb $0x20, %al
movq 0xc7f9(%rip), %rbx      # 0x10ff0
leaq 0x628(%rsp), %r14
movb %al, 0x628(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3210
movq (%r15), %rsi
incq %rsi
movq %rax, %rdi
callq 0x3130
movb $0x3a, 0x628(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3210
movq 0x8(%r15), %rsi
incq %rsi
movq %rax, %rdi
callq 0x3130
addq $0x10, %r15
movb $0x2c, %al
cmpq %r12, %r15
jne 0x47ff
movq 0xc793(%rip), %r13      # 0x10ff0
leaq 0x8384(%rip), %rsi      # 0xcbe8
movl $0x2, %edx
movq %r13, %rdi
callq 0x3210
movq 0xc758(%rip), %rax      # 0x10fd0
addl $0x2, (%rax)
testb $0x1, 0x58(%rsp)
je 0x490a
movl $0x200, %edi            # imm = 0x200
callq 0x31f0
movq %rax, 0x60(%rsp)
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
leaq 0x638(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x628(%rsp), %rdi
callq 0xa864
leaq 0x7fa9(%rip), %rsi      # 0xc87b
leaq 0x628(%rsp), %rdi
callq 0x33f0
leaq 0x628(%rsp), %rsi
movq 0x60(%rsp), %rdi
movl $0x10, %edx
callq 0x3400
movq 0x628(%rsp), %rdi
cmpq %rbx, %rdi
je 0x491d
callq 0x31c0
jmp 0x491d
movq $0x0, 0x60(%rsp)
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
leaq 0x638(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0xb0(%rsp), %rsi
movq 0xb8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x628(%rsp), %rdi
callq 0xa864
cmpq $0x40, 0xb8(%rsp)
jne 0x6bba
movq 0x628(%rsp), %rbx
movq 0x630(%rsp), %rax
leaq (%rbx,%rax), %r14
testq %rax, %rax
je 0x4992
lzcntq %rax, %rdx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa8f4
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa9cf
movq %rbx, %rdi
movq %r14, %rsi
callq 0xac22
subq %rbx, %rax
leaq 0x628(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x3090
movq 0x628(%rsp), %rax
addq 0x630(%rsp), %rax
subq %rbx, %rax
movq 0xb0(%rsp), %rcx
xorl %edx, %edx
movq %rbx, %rsi
testq %rax, %rax
jle 0x4a03
movb (%rcx,%rdx), %dil
movq %rax, %r9
movq %rbx, %rsi
movq %rax, %r8
shrq %r8
cmpb %dil, (%rsi,%r8)
jge 0x49fb
leaq 0x1(%rsi,%r8), %rsi
notq %r8
addq %r9, %r8
movq %r8, %r9
testq %r8, %r8
jg 0x49e7
subq %rbx, %rsi
movq %rsi, 0x648(%rsp,%rdx,8)
incq %rdx
cmpq $0x40, %rdx
jne 0x49d2
movb 0x68(%rsp), %al
movl 0xd4(%rsp), %ecx
leaq 0xd8(%rsp), %rdx
movq %rdx, 0x2a0(%rsp)
movb %al, 0x2a8(%rsp)
movl %ecx, 0x2ac(%rsp)
movq %r14, 0x2b0(%rsp)
movq 0x90(%rdx), %rbx
movq 0x98(%rdx), %r14
movq %r14, %r15
subq %rbx, %r15
sarq $0x2, %r15
movabsq $0x3d226357e16ecf, %rax # imm = 0x3D226357E16ECF
cmpq %rax, %r15
jae 0x6c07
leaq 0x2b8(%rsp), %rax
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %rbx, %r14
je 0x4a9e
imulq $0x218, %r15, %rdi      # imm = 0x218
callq 0x31f0
jmp 0x4aa0
xorl %eax, %eax
imulq $0x218, %r15, %rdx      # imm = 0x218
leaq (%rax,%rdx), %r15
movq %rax, 0x2b8(%rsp)
movq %rax, 0x2c0(%rsp)
movq %r15, 0x2c8(%rsp)
cmpq %rbx, %r14
je 0x4ad4
movq %rax, %rdi
xorl %esi, %esi
callq 0x3110
jmp 0x4ad7
movq %rax, %r15
movl 0x48(%rsp), %edx
movq 0x50(%rsp), %rdi
leaq 0x3a0(%rsp), %rax
movq %r15, -0xe0(%rax)
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %ymm0, -0xd0(%rax)
movq 0x60(%rsp), %rcx
movq %rcx, -0xb0(%rax)
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %xmm0, -0x28(%rax)
xorl %ecx, %ecx
movq %rcx, -0x18(%rax)
vxorpd %xmm1, %xmm1, %xmm1
vmovupd %zmm1, -0xa8(%rax)
vmovupd %zmm1, -0x70(%rax)
movq %rax, -0x10(%rax)
movq %rcx, -0x8(%rax)
movb %cl, (%rax)
leaq 0x3c0(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rcx, -0x8(%rax)
movb %cl, (%rax)
leaq 0x3e0(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rcx, -0x8(%rax)
movb %cl, (%rax)
movq 0xc46d(%rip), %rax      # 0x10fd0
movslq (%rax), %rax
movq 0x8(%rsp), %rsi
leaq (%rsi,%rax,8), %r15
movslq %edx, %rcx
leaq (%rsi,%rcx,8), %rsi
movq %rsi, 0x198(%rsp)
testb $0x1, %dil
je 0x548f
shlq $0x3, %rax
shlq $0x3, %rcx
movl %eax, %edx
subl %ecx, %edx
testb $0x8, %dl
jne 0x6ced
vmovapd %xmm0, 0x1f0(%rsp)
xorl %edx, %edx
movq %rdx, 0x200(%rsp)
movq %rdx, 0x230(%rsp)
vmovapd %xmm0, 0x220(%rsp)
movq %rdx, 0x290(%rsp)
vmovapd %xmm0, 0x280(%rsp)
movq %rdx, 0x250(%rsp)
vmovapd %xmm0, 0x240(%rsp)
cmpq %rcx, %rax
je 0x544e
movq $0x0, 0x210(%rsp)
movq (%r15), %rbx
movq 0x8(%r15), %r14
movl $0x8, %edx
movq %r13, %rdi
leaq 0x8089(%rip), %rsi      # 0xcc97
vzeroupper
callq 0x3210
testq %rbx, %rbx
je 0x4c33
movq %rbx, %rdi
callq 0x30e0
movq %r13, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x3210
jmp 0x4c4d
movq (%r13), %rax
movq -0x18(%rax), %rax
leaq (%r13,%rax), %rdi
movl 0x20(%r13,%rax), %esi
orl $0x1, %esi
callq 0x3360
movl $0x5, %edx
movq %r13, %rdi
leaq 0x81be(%rip), %rsi      # 0xce1a
callq 0x3210
testq %r14, %r14
je 0x4c7e
movq %r14, %rdi
callq 0x30e0
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x3210
jmp 0x4c98
movq (%r13), %rax
movq -0x18(%rax), %rax
leaq (%r13,%rax), %rdi
movl 0x20(%r13,%rax), %esi
orl $0x1, %esi
callq 0x3360
movl $0x3, %edx
movq %r13, %rdi
leaq 0x7ff9(%rip), %rsi      # 0xcca0
callq 0x3210
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3140
leaq 0x610(%rsp), %rdi
movq %rbx, %rsi
callq 0x77ba
movq %rbx, 0x58(%rsp)
leaq 0x5f8(%rsp), %rdi
movq %r14, 0x50(%rsp)
movq %r14, %rsi
callq 0x77ba
addq $0x10, %r15
movq %r15, 0xa0(%rsp)
movq $0x0, 0x8(%rsp)
leaq 0x610(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
leaq 0x280(%rsp), %rdx
callq 0x7898
testb %al, %al
je 0x5396
movq 0x1f8(%rsp), %rbx
subq 0x1f0(%rsp), %rbx
leaq 0x5f8(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x240(%rsp), %rdx
callq 0x7898
testb %al, %al
je 0x6392
movq 0x220(%rsp), %r13
movq 0x228(%rsp), %rax
subq %r13, %rax
cmpq %rax, %rbx
jne 0x6392
movq 0x1f0(%rsp), %rbx
movq 0x1f8(%rsp), %rax
movq %rax, 0x48(%rsp)
cmpq %rax, %rbx
je 0x4d13
movq 0x240(%rsp), %rbp
movq 0x280(%rsp), %r14
addq $0x2, 0x2d0(%rsp)
movq 0x2a0(%rsp), %r15
leaq 0x1d0(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x8002
leaq 0x260(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x8002
movq 0x1d0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
cmpq %rax, %rcx
jne 0x4e64
leaq 0x2a0(%rsp), %r15
movq %r15, %rdi
movq 0x58(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rcx
movq %r14, %r8
callq 0x816e
movq 0x260(%rsp), %rax
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x260(%rsp), %rcx
cmpq 0x268(%rsp), %rax
jne 0x4edd
movq %r15, %rdi
movq 0x50(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r13, %rcx
movq %rbp, %r8
callq 0x816e
jmp 0x4ee5
movq 0x260(%rsp), %rdx
movq 0x268(%rsp), %rsi
cmpq %rsi, %rdx
leaq 0x2a0(%rsp), %r15
jne 0x4ea9
movq %r15, %rdi
movq 0x50(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r13, %rcx
movq %rbp, %r8
callq 0x816e
movq %rbx, %rsi
movq %r14, %rdx
leaq 0x1d0(%rsp), %rcx
jmp 0x4edd
cmpq %rsi, %rcx
setbe %cl
cmpq %rax, %rdx
setbe %al
testb %cl, %al
jne 0x4f0a
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
leaq 0x1d0(%rsp), %rcx
callq 0x82be
movq %r13, %rsi
movq %rbp, %rdx
leaq 0x260(%rsp), %rcx
movq %r15, %rdi
callq 0x82be
incq 0x8(%rsp)
addq $0x18, %rbx
addq $0x18, %r13
addq $0x18, %r14
addq $0x18, %rbp
cmpq 0x48(%rsp), %rbx
jne 0x4db7
jmp 0x4d13
addq $0x2, 0x2d8(%rsp)
leaq 0x3f0(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r14, %rcx
leaq 0x1d0(%rsp), %r8
callq 0x83e4
movl 0x2ac(%rsp), %eax
cmpq %rax, 0x400(%rsp)
ja 0x4f64
movq 0x410(%rsp), %rax
subq 0x408(%rsp), %rax
sarq $0x3, %rax
imulq %r12, %rax
cmpq $0x2, %rax
jb 0x5009
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
leaq 0x1d0(%rsp), %rdx
movq %rbx, %rcx
movq %r14, %r8
callq 0x8546
movq 0x20(%rsp), %rax
movq %rax, 0x400(%rsp)
vmovups 0x10(%rsp), %xmm0
vmovaps %xmm0, 0x3f0(%rsp)
movq 0x408(%rsp), %rdi
movq 0x418(%rsp), %rax
vmovupd 0x28(%rsp), %xmm0
movq 0x38(%rsp), %rcx
movq %rcx, 0x418(%rsp)
vmovupd 0x408(%rsp), %xmm1
vmovupd %xmm0, 0x408(%rsp)
vmovupd %xmm1, 0x28(%rsp)
movq %rax, 0x38(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
leaq 0x28(%rsp), %rax
vmovupd %xmm0, (%rax)
movq $0x0, 0x10(%rax)
testq %rdi, %rdi
je 0x4ffa
callq 0x31c0
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x5009
callq 0x31c0
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
movq %rbp, %rcx
leaq 0x260(%rsp), %r8
callq 0x83e4
movl 0x2ac(%rsp), %eax
cmpq %rax, 0x20(%rsp)
ja 0x504e
movq 0x30(%rsp), %rax
subq 0x28(%rsp), %rax
sarq $0x3, %rax
imulq %r12, %rax
cmpq $0x2, %rax
jb 0x50f3
leaq 0x70(%rsp), %rdi
movq %r15, %rsi
leaq 0x260(%rsp), %rdx
movq %r13, %rcx
movq %rbp, %r8
callq 0x8546
movq 0x80(%rsp), %rax
movq %rax, 0x20(%rsp)
vmovups 0x70(%rsp), %xmm0
vmovaps %xmm0, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movq 0x38(%rsp), %rax
vmovupd 0x88(%rsp), %xmm0
movq 0x98(%rsp), %rcx
movq %rcx, 0x38(%rsp)
vmovupd 0x28(%rsp), %xmm1
vmovupd %xmm0, 0x28(%rsp)
vmovupd %xmm1, 0x88(%rsp)
movq %rax, 0x98(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
leaq 0x88(%rsp), %rax
vmovupd %xmm0, (%rax)
movq $0x0, 0x10(%rax)
testq %rdi, %rdi
je 0x50e1
callq 0x31c0
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x50f3
callq 0x31c0
movq 0x400(%rsp), %rax
movl 0x2ac(%rsp), %edx
movq 0x20(%rsp), %rcx
cmpq %rdx, %rax
jbe 0x511f
cmpq %rdx, %rcx
ja 0x536c
movq %r15, %rdi
leaq 0x10(%rsp), %rsi
jmp 0x512f
cmpq %rdx, %rcx
jbe 0x5139
movq %r15, %rdi
leaq 0x3f0(%rsp), %rsi
callq 0x93ee
jmp 0x536c
movq 0x3f0(%rsp), %rdx
movq 0x3f8(%rsp), %rsi
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %r8
cmpq %rdx, %rdi
cmovbq %rdi, %rdx
movq %rdx, 0x70(%rsp)
cmpq %r8, %rsi
cmovaq %rsi, %r8
movq %r8, 0x78(%rsp)
addq %rax, %rcx
movq %rcx, 0x80(%rsp)
leaq 0x88(%rsp), %r15
movq %r15, %rdi
leaq 0x408(%rsp), %rsi
callq 0x988e
movq 0x90(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq %r15, %rdi
callq 0x9908
movq %r14, 0xa8(%rsp)
movq 0x88(%rsp), %r12
movq 0x90(%rsp), %rsi
cmpq %rsi, %r12
je 0x5241
movq %rsi, %r15
subq %r12, %r15
movq %r15, %rax
sarq $0x3, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rax
lzcntq %rax, %rdx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r12, %rdi
movq %rsi, %r14
callq 0x9ac3
cmpq $0x181, %r15            # imm = 0x181
jl 0x5233
leaq 0x180(%r12), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x9f96
cmpq %r14, %r15
movq %r14, %rsi
je 0x5241
movq %r15, %rdi
movq %rsi, %r14
callq 0xa043
movq %r14, %rsi
addq $0x18, %r15
cmpq %r14, %r15
jne 0x521a
jmp 0x5241
movq %r12, %rdi
movq %r14, %rsi
callq 0x9f96
movq %r14, %rsi
cmpq %rsi, %r12
sete %al
addq $0x18, %r12
cmpq %rsi, %r12
sete %cl
orb %al, %cl
movq %rsi, %rax
leaq 0x2a0(%rsp), %rdi
movq 0xa8(%rsp), %r14
jne 0x52a0
movl -0x18(%r12), %eax
cmpl (%r12), %eax
jne 0x528b
movq -0x10(%r12), %rax
cmpq 0x8(%r12), %rax
jne 0x528b
movl -0x8(%r12), %eax
cmpl 0x10(%r12), %eax
je 0x5299
addq $0x18, %r12
cmpq %rsi, %r12
jne 0x5268
movq %rsi, %rax
jmp 0x52a0
addq $-0x18, %r12
movq %r12, %rax
movq %rsi, %r12
cmpq %rsi, %rax
je 0x52eb
leaq 0x30(%rax), %rcx
cmpq %rsi, %rcx
je 0x52e4
movl (%rax), %edx
cmpl (%rcx), %edx
jne 0x52c9
movq 0x8(%rax), %rdx
cmpq 0x8(%rcx), %rdx
jne 0x52c9
movl 0x10(%rax), %edx
cmpl 0x10(%rcx), %edx
je 0x52de
movq 0x10(%rcx), %rdx
movq %rdx, 0x28(%rax)
vmovupd (%rcx), %xmm0
vmovupd %xmm0, 0x18(%rax)
addq $0x18, %rax
addq $0x18, %rcx
jmp 0x52ac
addq $0x18, %rax
movq %rax, %r12
movq 0x88(%rsp), %r15
cmpq %rsi, %r12
je 0x534b
movq %r15, 0x1a8(%rsp)
movq 0x90(%rsp), %rax
movq %rax, %r15
subq %rsi, %r15
je 0x532b
movq %r12, %rdi
movq %r15, %rdx
movq %rax, 0x1a0(%rsp)
callq 0x3320
movq 0x1a0(%rsp), %rax
addq %r15, %r12
cmpq %r12, %rax
leaq 0x2a0(%rsp), %rdi
movq 0x1a8(%rsp), %r15
je 0x534b
movq %r12, 0x90(%rsp)
leaq 0x70(%rsp), %rsi
callq 0x93ee
testq %r15, %r15
je 0x5362
movq %r15, %rdi
callq 0x31c0
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x537b
callq 0x31c0
movq 0x408(%rsp), %rdi
testq %rdi, %rdi
je 0x4ee5
callq 0x31c0
jmp 0x4ee5
leaq 0x5f8(%rsp), %rdi
leaq 0x220(%rsp), %rsi
leaq 0x240(%rsp), %rdx
callq 0x7898
movq 0xbc36(%rip), %r13      # 0x10ff0
movq 0xa0(%rsp), %r15
testb %al, %al
jne 0x66bd
movq %r13, %rdi
movq 0x8(%rsp), %rsi
callq 0x3130
movq %rax, %rbx
movl $0x14, %edx
movq %rax, %rdi
leaq 0x7a6b(%rip), %rsi      # 0xce54
callq 0x3210
movq %rbx, %rdi
movq 0x210(%rsp), %rsi
callq 0x3130
movl $0x2, %edx
movq %rax, %rdi
leaq 0x77db(%rip), %rsi      # 0xcbe8
callq 0x3210
movq 0x5f8(%rsp), %rdi
testq %rdi, %rdi
je 0x5425
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x610(%rsp), %rdi
testq %rdi, %rdi
je 0x5438
movq (%rdi), %rax
callq *0x8(%rax)
incq 0x210(%rsp)
cmpq 0x198(%rsp), %r15
jne 0x4bf8
leaq 0x240(%rsp), %rdi
vzeroupper
callq 0xac76
leaq 0x280(%rsp), %rdi
callq 0xac76
leaq 0x220(%rsp), %rdi
callq 0xac76
leaq 0x1f0(%rsp), %rdi
callq 0xac76
movq 0x60(%rsp), %rbx
jmp 0x56b2
vmovapd %xmm0, 0x10(%rsp)
xorl %ecx, %ecx
movq %rcx, 0x20(%rsp)
movq %rcx, 0x80(%rsp)
vmovapd %xmm0, 0x70(%rsp)
cmpl %edx, %eax
movq 0x60(%rsp), %rbx
je 0x569b
xorl %r12d, %r12d
leaq 0x3f0(%rsp), %r14
movq (%r15), %rbx
movl $0x8, %edx
movq %r13, %rdi
leaq 0x77c3(%rip), %rsi      # 0xcc97
vzeroupper
callq 0x3210
testq %rbx, %rbx
je 0x54f9
movq %rbx, %rdi
callq 0x30e0
movq %r13, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x3210
jmp 0x5513
movq (%r13), %rax
movq -0x18(%rax), %rax
leaq (%r13,%rax), %rdi
movl 0x20(%r13,%rax), %esi
orl $0x1, %esi
callq 0x3360
movl $0x3, %edx
movq %r13, %rdi
leaq 0x777e(%rip), %rsi      # 0xcca0
callq 0x3210
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3140
movq %r12, 0x8(%rsp)
leaq 0x1d0(%rsp), %rdi
movq %rbx, %rsi
callq 0x77ba
addq $0x8, %r15
movq %r15, 0xa0(%rsp)
xorl %r13d, %r13d
leaq 0x1d0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x7898
testb %al, %al
je 0x5619
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %r15
cmpq %r15, %rbp
je 0x5573
movq 0x70(%rsp), %r12
incq 0x2d0(%rsp)
movq 0x2a0(%rsp), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x8002
movq 0x3f0(%rsp), %rax
cmpq 0x3f8(%rsp), %rax
jne 0x55ee
leaq 0x2a0(%rsp), %rdi
movq %rbx, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %r12, %r8
callq 0x816e
jmp 0x5604
leaq 0x2a0(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %r14, %rcx
callq 0x82be
incq %r13
addq $0x18, %r12
addq $0x18, %rbp
cmpq %r15, %rbp
jne 0x55a6
jmp 0x5573
movq 0xb9d0(%rip), %rdi      # 0x10ff0
movq %r13, %rsi
callq 0x3130
movq 0x8(%rsp), %r12
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
leaq 0x7665(%rip), %rsi      # 0xcca4
callq 0x3210
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3130
movl $0x2, %edx
movq %rax, %rdi
leaq 0x758a(%rip), %rsi      # 0xcbe8
callq 0x3210
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
movq 0x60(%rsp), %rbx
movq 0xa0(%rsp), %r15
je 0x5683
movq (%rdi), %rax
callq *0x8(%rax)
incq %r12
cmpq 0x198(%rsp), %r15
movq 0xb95b(%rip), %r13      # 0x10ff0
jne 0x54c2
leaq 0x70(%rsp), %rdi
vzeroupper
callq 0xac76
leaq 0x10(%rsp), %rdi
callq 0xac76
movq 0xb937(%rip), %rdi      # 0x10ff0
leaq 0x71cc(%rip), %rsi      # 0xc88c
movl $0xf, %edx
callq 0x3210
movq 0x2d0(%rsp), %rax
testq %rax, %rax
sete %cl
vcvtusi2sd %rax, %xmm2, %xmm0
vcvtusi2sdq 0x2d8(%rsp), %xmm2, %xmm1
vdivsd %xmm0, %xmm1, %xmm0
vmulsd 0x691e(%rip), %xmm0, %xmm0 # 0xc010
kmovd %ecx, %k1
vxorpd %xmm1, %xmm1, %xmm1
vmovsd %xmm1, %xmm0, %xmm0 {%k1}
movq 0xb8e9(%rip), %rdi      # 0x10ff0
callq 0x3310
leaq 0x7907(%rip), %rsi      # 0xd01a
movl $0x2, %edx
movq %rax, %rdi
callq 0x3210
testq %rbx, %rbx
je 0x572e
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0xa864
leaq 0x7141(%rip), %rsi      # 0xc89c
leaq 0x10(%rsp), %rdi
callq 0x33f0
leaq 0x3f0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x10, %edx
callq 0x3400
leaq 0x76e6(%rip), %rsi      # 0xce69
leaq 0x3f0(%rsp), %rdi
movl $0xff, %edx
callq 0x3210
movq 0x2b8(%rsp), %r12
movq 0x2c0(%rsp), %r13
cmpq %r13, %r12
je 0x57f9
leaq 0x3f0(%rsp), %rbx
leaq 0x70(%rsp), %r14
movb $0xa, %al
xorl %ebp, %ebp
movq (%r12,%rbp), %r15
movb %al, 0x70(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3210
movq %rax, %rdi
movq %r15, %rsi
callq 0x3130
addq $0x8, %rbp
movb $0x9, %al
cmpq $0x200, %rbp            # imm = 0x200
jne 0x57bb
addq $0x218, %r12            # imm = 0x218
cmpq %r13, %r12
jne 0x57b7
leaq 0x70(%rsp), %rsi
movb $0xa, (%rsi)
leaq 0x3f0(%rsp), %rdi
movl $0x1, %edx
callq 0x3210
leaq 0x3f0(%rsp), %rdi
callq 0x3280
movq 0x3f0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x410(%rsp,%rax)
jne 0x6c13
movq 0xb76f(%rip), %rax      # 0x10fb0
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq 0x3f8(%rsp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, 0x3f0(%rsp,%rax)
callq 0x3190
leaq 0x4e8(%rsp), %rdi
callq 0x30a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5886
callq 0x31c0
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
addq %rsi, %rdx
callq 0xa864
leaq 0x6fef(%rip), %rsi      # 0xc8a1
leaq 0x10(%rsp), %rdi
callq 0x33f0
movq %r14, 0x48(%rsp)
movq %rbx, 0x58(%rsp)
leaq 0x3f0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x10, %edx
callq 0x3400
movq 0x2b0(%rsp), %rax
movq 0x8(%rax), %r12
testq %r12, %r12
je 0x5943
movq (%rax), %r13
leaq 0x7692(%rip), %r15      # 0xcf8a
xorl %ebp, %ebp
leaq 0x3f0(%rsp), %rbx
movb (%r13,%rbp), %r14b
movq %r15, %rdi
callq 0x30e0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x3210
movb %r14b, 0x70(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x70(%rsp), %rsi
callq 0x3210
incq %rbp
leaq 0x764b(%rip), %r15      # 0xcf89
cmpq %rbp, %r12
jne 0x5902
vxorpd %xmm0, %xmm0, %xmm0
vmovapd %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
movq 0x2b8(%rsp), %rbx
movq 0x2c0(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq %rax, %rbx
je 0x59e7
leaq 0x3f0(%rsp), %r15
leaq 0x1d0(%rsp), %r12
movq 0x2b0(%rsp), %rdi
movq %rbx, %rsi
leaq 0x70(%rsp), %rdx
callq 0xa09c
movq 0x70(%rsp), %r14
movq 0x78(%rsp), %rbp
cmpq %rbp, %r14
je 0x59d9
movb $0xa, %al
movq (%r14), %r13
movb %al, 0x1d0(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x3210
movq %rax, %rdi
movq %r13, %rsi
callq 0x3130
addq $0x8, %r14
movb $0x9, %al
cmpq %rbp, %r14
jne 0x59a9
addq $0x218, %rbx            # imm = 0x218
cmpq 0x8(%rsp), %rbx
jne 0x5983
leaq 0x1d0(%rsp), %rsi
movb $0xa, (%rsi)
leaq 0x3f0(%rsp), %rdi
movl $0x1, %edx
callq 0x3210
movq 0x48(%rsp), %rbp
leaq 0x3f0(%rsp), %rdi
callq 0x3280
movq 0x3f0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x410(%rsp,%rax)
movq 0x58(%rsp), %r13
jne 0x6c4e
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x5a44
callq 0x31c0
leaq 0x3f8(%rsp), %rdi
movq %r13, -0x8(%rdi)
movq -0x18(%r13), %rax
movq %rbp, 0x3f0(%rsp,%rax)
callq 0x3190
leaq 0x4e8(%rsp), %rdi
callq 0x30a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5a82
callq 0x31c0
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
addq %rsi, %rdx
callq 0xa864
leaq 0x6df7(%rip), %rsi      # 0xc8a5
leaq 0x10(%rsp), %rdi
callq 0x33f0
leaq 0x3f0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x10, %edx
callq 0x3400
leaq 0x74da(%rip), %rsi      # 0xcfb0
leaq 0x3f0(%rsp), %rdi
movl $0xe, %edx
callq 0x3210
movq 0x2b8(%rsp), %r15
movq 0x2c0(%rsp), %r12
cmpq %r12, %r15
je 0x5b86
leaq 0x3f0(%rsp), %rbx
leaq 0x70(%rsp), %r14
movq 0x200(%r15), %rsi
movq %rbx, %rdi
callq 0x3130
movb $0x9, 0x70(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3210
movq 0x208(%r15), %rsi
movq %rax, %rdi
callq 0x3130
movb $0x9, 0x70(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3210
movq 0x210(%r15), %rsi
movq %rax, %rdi
callq 0x3130
movb $0xa, 0x70(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3210
addq $0x218, %r15            # imm = 0x218
cmpq %r12, %r15
jne 0x5b0e
leaq 0x3f0(%rsp), %rdi
callq 0x3280
movq 0x3f0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x410(%rsp,%rax)
jne 0x6c89
leaq 0x3f8(%rsp), %rdi
movq %r13, -0x8(%rdi)
movq -0x18(%r13), %rax
movq %rbp, 0x3f0(%rsp,%rax)
callq 0x3190
leaq 0x4e8(%rsp), %rdi
callq 0x30a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5beb
callq 0x31c0
cmpq $0x0, 0x2d8(%rsp)
je 0x6cc4
movq 0x2a0(%rsp), %rax
movq 0x90(%rax), %rbx
movq 0xb3b8(%rip), %rdi      # 0x10fc8
movq (%rdi), %rax
movq -0x18(%rax), %rcx
movq $0x5, 0x8(%rdi,%rcx)
movq -0x18(%rax), %rax
movl $0xfffffefb, %ecx       # imm = 0xFFFFFEFB
andl 0x18(%rdi,%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x18(%rdi,%rax)
leaq 0x73c4(%rip), %rsi      # 0xcfff
movl $0x1d, %edx
callq 0x3210
vxorpd %xmm0, %xmm0, %xmm0
vmovapd %xmm0, 0x3f0(%rsp)
movq $0x0, 0x400(%rsp)
movq 0x2b8(%rsp), %r13
movq 0x2c0(%rsp), %rax
xorl %ebp, %ebp
movq %rax, 0x198(%rsp)
movq $-0x1, %r12
cmpq %rax, %r13
je 0x6069
movq $0x0, 0x50(%rsp)
movq $0x0, 0x58(%rsp)
movq $0x0, 0x48(%rsp)
xorl %r14d, %r14d
movq 0x2b0(%rsp), %rdi
movq %r13, %rsi
leaq 0x3f0(%rsp), %rdx
callq 0xa09c
movq 0x2b0(%rsp), %rax
movl (%rbx), %ecx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x3f0(%rsp), %rax
movq 0x3f8(%rsp), %rcx
cmpq %rcx, %rax
vpmovsxbq 0x634e(%rip), %zmm10 # 0xc038
vpmovsxbq 0x6334(%rip), %zmm11 # 0xc028
movq %rdx, 0xa8(%rsp)
je 0x5ea0
leaq (%rax,%rdx,8), %rdx
subq %rax, %rcx
addq $-0x8, %rcx
vpbroadcastq %rcx, %zmm0
shrq $0x3, %rcx
addq $0x8, %rcx
andq $-0x8, %rcx
vpsrlq $0x3, %zmm0, %zmm4
vpbroadcastq %rdx, %zmm5
vpternlogd $0xff, %zmm3, %zmm3, %zmm3
vpxor %xmm8, %xmm8, %xmm8
xorl %edx, %edx
vpxor %xmm9, %xmm9, %xmm9
vpxor %xmm7, %xmm7, %xmm7
vmovdqa64 %zmm3, %zmm0
vmovdqa64 %zmm7, %zmm1
vmovdqa64 %zmm9, %zmm2
vmovdqa64 %zmm8, %zmm6
vpbroadcastq %rax, %zmm8
vpaddq %zmm10, %zmm8, %zmm8
vpbroadcastq %rdx, %zmm9
vporq %zmm11, %zmm9, %zmm9
vpcmpleuq %zmm4, %zmm9, %k1
vpcmpneqq %zmm5, %zmm8, %k2 {%k1}
vmovq %xmm8, %rsi
vmovdqu64 (%rsi), %zmm8 {%k2} {z}
vpminuq %zmm3, %zmm8, %zmm3 {%k2}
vpmaxuq %zmm7, %zmm8, %zmm7 {%k2}
vpaddq %zmm8, %zmm2, %zmm9
vptestmq %zmm8, %zmm8, %k0 {%k2}
vpmovm2q %k0, %zmm8
vpsubq %zmm8, %zmm6, %zmm8
addq $0x8, %rdx
addq $0x40, %rax
cmpq %rdx, %rcx
jne 0x5d43
vmovdqa64 %zmm3, %zmm0 {%k1}
vmovdqa64 %zmm7, %zmm1 {%k1}
vmovdqa64 %zmm9, %zmm2 {%k1}
vmovdqa64 %zmm8, %zmm6 {%k1}
vextracti64x4 $0x1, %zmm6, %ymm3
vpaddq %zmm3, %zmm6, %zmm3
vextracti128 $0x1, %ymm3, %xmm4
vpaddq %xmm4, %xmm3, %xmm3
vpshufd $0xee, %xmm3, %xmm4     # xmm4 = xmm3[2,3,2,3]
vpaddq %xmm4, %xmm3, %xmm3
vmovq %xmm3, %r15
vextracti64x4 $0x1, %zmm2, %ymm3
vpaddq %zmm3, %zmm2, %zmm2
vextracti128 $0x1, %ymm2, %xmm3
vpaddq %xmm3, %xmm2, %xmm2
vpshufd $0xee, %xmm2, %xmm3     # xmm3 = xmm2[2,3,2,3]
vpaddq %xmm3, %xmm2, %xmm2
vmovq %xmm2, %rax
vextracti64x4 $0x1, %zmm1, %ymm2
vpmaxuq %zmm2, %zmm1, %zmm1
vextracti128 $0x1, %ymm1, %xmm2
vpmaxuq %xmm2, %xmm1, %xmm1
vpshufd $0xee, %xmm1, %xmm2     # xmm2 = xmm1[2,3,2,3]
vpmaxuq %xmm2, %xmm1, %xmm1
vmovq %xmm1, %rcx
vextracti64x4 $0x1, %zmm0, %ymm1
vpminuq %zmm1, %zmm0, %zmm0
vextracti128 $0x1, %ymm0, %xmm1
vpminuq %xmm1, %xmm0, %xmm0
vpshufd $0xee, %xmm0, %xmm1     # xmm1 = xmm0[2,3,2,3]
vpminuq %xmm1, %xmm0, %xmm0
vmovq %xmm0, %rdx
vcvtusi2sd %rdx, %xmm12, %xmm0
vmovsd %xmm0, 0x1a8(%rsp)
vcvtusi2sd %rax, %xmm12, %xmm0
vmovsd %xmm0, 0x1a0(%rsp)
vcvtusi2sd %rcx, %xmm12, %xmm0
vmovsd %xmm0, 0xa0(%rsp)
jmp 0x5ece
vxorpd %xmm0, %xmm0, %xmm0
vmovsd %xmm0, 0xa0(%rsp)
vmovsd 0x6163(%rip), %xmm0     # 0xc018
vmovsd %xmm0, 0x1a8(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
vmovsd %xmm0, 0x1a0(%rsp)
xorl %r15d, %r15d
vcvtusi2sdq 0x210(%r13), %xmm12, %xmm0
vdivsd 0x6133(%rip), %xmm0, %xmm0 # 0xc010
vmovsd %xmm0, 0x8(%rsp)
incl %ebp
movq 0xb0dc(%rip), %rdi      # 0x10fc8
movq %rbp, %rsi
vzeroupper
callq 0x3130
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
movq 0x2b0(%rsp), %rcx
movq (%rcx), %rcx
movq 0xa8(%rsp), %rdx
movb (%rcx,%rdx), %cl
movb %cl, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
vmovsd 0x1a8(%rsp), %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq %rax, %rdi
callq 0x3310
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
vmovsd 0x1a0(%rsp), %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq 0x3f8(%rsp), %rcx
subq 0x3f0(%rsp), %rcx
sarq $0x3, %rcx
decq %rcx
vcvtusi2sd %rcx, %xmm12, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq %rax, %rdi
callq 0x3310
movb $0x9, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
vmovsd 0xa0(%rsp), %xmm0
vdivsd 0x8(%rsp), %xmm0, %xmm0
movq %rax, %rdi
callq 0x3310
movb $0xa, 0x10(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x10(%rsp), %rsi
callq 0x3210
addq $0x4, %rbx
cmpq %r12, %r15
movq 0x50(%rsp), %rax
cmovbq %rbp, %rax
movq %rax, 0x50(%rsp)
cmovbq %r15, %r12
movq 0x58(%rsp), %rcx
cmpq %rcx, %r15
movq 0x48(%rsp), %rax
cmovaq %rbp, %rax
movq %rax, 0x48(%rsp)
cmovaq %r15, %rcx
movq %rcx, 0x58(%rsp)
addq %r15, %r14
addq $0x218, %r13            # imm = 0x218
cmpq 0x198(%rsp), %r13
jne 0x5ca6
vcvtusi2sd %r14, %xmm5, %xmm0
vmovsd %xmm0, 0x8(%rsp)
movq 0x48(%rsp), %rbx
movq 0x58(%rsp), %r14
movq 0x50(%rsp), %r15
jmp 0x607b
vxorpd %xmm0, %xmm0, %xmm0
vmovsd %xmm0, 0x8(%rsp)
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0xaf46(%rip), %rdi      # 0x10fc8
leaq 0x6f94(%rip), %rsi      # 0xd01d
movl $0x1f, %edx
callq 0x3210
movq 0xaf2e(%rip), %rdi      # 0x10fc8
leaq 0x6f9c(%rip), %rsi      # 0xd03d
movl $0x4, %edx
callq 0x3210
movq 0xaf16(%rip), %rdi      # 0x10fc8
movq %r12, %rsi
callq 0x3130
movq %rax, %r12
leaq 0x6a24(%rip), %rsi      # 0xcae8
movl $0xb, %edx
movq %rax, %rdi
callq 0x3210
movq %r12, %rdi
movq %r15, %rsi
callq 0x3130
leaq 0x10(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3210
movq 0xaed0(%rip), %rdi      # 0x10fc8
leaq 0x6f43(%rip), %rsi      # 0xd042
movl $0x5, %edx
callq 0x3210
movq 0x2c0(%rsp), %rax
subq 0x2b8(%rsp), %rax
sarq $0x3, %rax
movabsq $-0xf4898d5f85bb395, %rcx # imm = 0xF0B7672A07A44C6B
imulq %rax, %rcx
vcvtusi2sd %rcx, %xmm2, %xmm0
vmovsd 0x8(%rsp), %xmm1
vdivsd %xmm0, %xmm1, %xmm0
movq 0xae86(%rip), %rdi      # 0x10fc8
callq 0x3310
leaq 0x10(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3210
movq 0xae65(%rip), %rdi      # 0x10fc8
leaq 0x6ede(%rip), %rsi      # 0xd048
movl $0x4, %edx
callq 0x3210
movq 0xae4d(%rip), %rdi      # 0x10fc8
movq %r14, %rsi
callq 0x3130
movq %rax, %r14
leaq 0x695b(%rip), %rsi      # 0xcae8
movl $0xb, %edx
movq %rax, %rdi
callq 0x3210
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3130
leaq 0x10(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3210
movq 0xae07(%rip), %rdi      # 0x10fc8
leaq 0x6e85(%rip), %rsi      # 0xd04d
movl $0xe, %edx
callq 0x3210
vcvtusi2sdq 0x2e0(%rsp), %xmm2, %xmm0
vmulsd 0x5e2e(%rip), %xmm0, %xmm0 # 0xc010
vcvtusi2sdq 0x2d8(%rsp), %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq 0xadd3(%rip), %rdi      # 0x10fc8
callq 0x3310
leaq 0x6e5b(%rip), %rsi      # 0xd05c
movl $0x37, %edx
movq %rax, %rdi
callq 0x3210
vcvtusi2sdq 0x2e8(%rsp), %xmm2, %xmm0
vmulsd 0x5df2(%rip), %xmm0, %xmm0 # 0xc010
vcvtusi2sdq 0x2d8(%rsp), %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
movq 0xad97(%rip), %rdi      # 0x10fc8
callq 0x3310
leaq 0x6e57(%rip), %rsi      # 0xd094
movl $0x35, %edx
movq %rax, %rdi
callq 0x3210
movq 0x3f0(%rsp), %rdi
testq %rdi, %rdi
je 0x625c
callq 0x31c0
leaq 0x2a0(%rsp), %rdi
callq 0x71ae
movq 0x628(%rsp), %rdi
leaq 0x638(%rsp), %rax
cmpq %rax, %rdi
je 0x6283
callq 0x31c0
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x6295
callq 0x31c0
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x62a7
callq 0x31c0
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x62b9
callq 0x31c0
leaq 0x110(%rsp), %rdi
callq 0x775c
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x62d8
callq 0x31c0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x62ea
callq 0x31c0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x6304
callq 0x31c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x631e
callq 0x31c0
xorl %eax, %eax
addq $0x848, %rsp            # imm = 0x848
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xacb7(%rip), %rdi      # 0x10ff0
leaq 0x677f(%rip), %rsi      # 0xcabf
movl $0xf, %edx
callq 0x3210
movq 0xac9f(%rip), %rdi      # 0x10ff0
movq %r12, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x676c(%rip), %rsi      # 0xcacf
movl $0xb, %edx
movq %rax, %rdi
callq 0x3210
movq 0x3f0(%rsp), %rsi
movq 0x3f8(%rsp), %rdx
movq %rbx, %rdi
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xac57(%rip), %rdi      # 0x10ff0
leaq 0x6a80(%rip), %rsi      # 0xce20
movl $0x33, %edx
callq 0x3210
movq 0xac3f(%rip), %rdi      # 0x10ff0
callq 0x30f0
movl $0x1, %edi
callq 0x3220
movq 0xac29(%rip), %rdi      # 0x10ff0
leaq 0x66f1(%rip), %rsi      # 0xcabf
movl $0xf, %edx
callq 0x3210
movq 0xac11(%rip), %rdi      # 0x10ff0
movq %r12, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x66de(%rip), %rsi      # 0xcacf
movl $0xb, %edx
movq %rax, %rdi
callq 0x3210
movq 0x3f0(%rsp), %rsi
movq 0x3f8(%rsp), %rdx
movq %rbx, %rdi
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq $0x0, 0x148(%rsp)
jmp 0x3a57
movq 0xabb8(%rip), %rdi      # 0x10ff0
leaq 0x6680(%rip), %rsi      # 0xcabf
movl $0xf, %edx
callq 0x3210
movq 0xaba0(%rip), %rdi      # 0x10ff0
movq %r12, %rsi
callq 0x3130
movq %rax, %r14
leaq 0x6679(%rip), %rsi      # 0xcadb
movl $0x18, %edx
movq %rax, %rdi
callq 0x3210
leaq 0x2a0(%rsp), %rdi
movl %ebx, %esi
callq 0x73ca
movq 0x2a0(%rsp), %rsi
movq 0x2a8(%rsp), %rdx
movq %r14, %rdi
callq 0x3210
movq %rax, %rbx
leaq 0x6654(%rip), %rsi      # 0xcaf4
movl $0x26, %edx
movq %rax, %rdi
callq 0x3210
leaq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x73ca
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x3210
movq %rax, %rbx
leaq 0x6646(%rip), %rsi      # 0xcb1b
movl $0x12, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xaaca(%rip), %rbx      # 0x10fc0
movl (%rbx), %ecx
leal -0x4b(%rcx), %eax
cmpl $0x9, %eax
ja 0x66e6
leaq 0x5c1d(%rip), %rcx      # 0xc128
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xaad5(%rip), %rdi      # 0x10ff0
leaq 0x617c(%rip), %rsi      # 0xc69e
movl $0x24, %edx
callq 0x3210
movq 0xaabd(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xaaac(%rip), %rdi      # 0x10ff0
leaq 0x5fad(%rip), %rsi      # 0xc4f8
movl $0x13, %edx
callq 0x3210
movq 0xaa3c(%rip), %rax      # 0x10f98
movq (%rax), %rsi
movq 0xaa8a(%rip), %rdi      # 0x10ff0
callq 0x31e0
movq %rax, %rbx
leaq 0x5f97(%rip), %rsi      # 0xc50c
movl $0x3f, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xaa5a(%rip), %rdi      # 0x10ff0
leaq 0x6522(%rip), %rsi      # 0xcabf
movl $0xf, %edx
callq 0x3210
movq 0xaa42(%rip), %rdi      # 0x10ff0
movq %r12, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x650f(%rip), %rsi      # 0xcacf
movl $0xb, %edx
movq %rax, %rdi
callq 0x3210
movq 0x3f0(%rsp), %rsi
movq 0x3f8(%rsp), %rdx
movq %rbx, %rdi
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa9f7(%rip), %rdi      # 0x10ff0
leaq 0x6317(%rip), %rsi      # 0xc917
movl $0x1b, %edx
callq 0x3210
movl %r14d, %esi
movq 0xa9dc(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa9c3(%rip), %rdi      # 0x10ff0
leaq 0x62ff(%rip), %rsi      # 0xc933
movl $0x1d, %edx
callq 0x3210
movl %r14d, %esi
movq 0xa9a8(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa98f(%rip), %rdi      # 0x10ff0
leaq 0x62e9(%rip), %rsi      # 0xc951
movl $0x21, %edx
callq 0x3210
movl %r14d, %esi
movq 0xa974(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rbx
leaq 0x644d(%rip), %rsi      # 0xcad8
movl $0x2, %edx
movq %rax, %rdi
callq 0x3210
movq 0x3f0(%rsp), %rsi
movq 0x3f8(%rsp), %rdx
movq %rbx, %rdi
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa92c(%rip), %rdi      # 0x10ff0
leaq 0x6755(%rip), %rsi      # 0xce20
movl $0x33, %edx
callq 0x3210
movq 0xa914(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
cmpl $0x45, %ecx
jne 0x6714
movq 0xa8fe(%rip), %rdi      # 0x10ff0
leaq 0x5f7d(%rip), %rsi      # 0xc676
movl $0x27, %edx
callq 0x3210
movq 0xa8e6(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa8d5(%rip), %rdi      # 0x10ff0
leaq 0x605a(%rip), %rsi      # 0xc77c
movl $0x19, %edx
callq 0x3210
movl (%rbx), %esi
movq 0xa8bb(%rip), %rdi      # 0x10ff0
callq 0x3370
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa8a2(%rip), %rdi      # 0x10ff0
leaq 0x5f6e(%rip), %rsi      # 0xc6c3
movl $0x30, %edx
callq 0x3210
movq 0xa88a(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa879(%rip), %rdi      # 0x10ff0
leaq 0x5f76(%rip), %rsi      # 0xc6f4
movl $0x2a, %edx
callq 0x3210
movq 0xa861(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa850(%rip), %rdi      # 0x10ff0
leaq 0x5f78(%rip), %rsi      # 0xc71f
movl $0x2c, %edx
callq 0x3210
movq 0xa838(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa827(%rip), %rdi      # 0x10ff0
leaq 0x5f7c(%rip), %rsi      # 0xc74c
movl $0x2f, %edx
callq 0x3210
movq 0xa80f(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa7fe(%rip), %rdi      # 0x10ff0
leaq 0x5e34(%rip), %rsi      # 0xc62d
movl $0x13, %edx
callq 0x3210
movq 0xa78e(%rip), %rax      # 0x10f98
movq (%rax), %rsi
movq 0xa7dc(%rip), %rdi      # 0x10ff0
callq 0x31e0
movq %rax, %rbx
leaq 0x5e1e(%rip), %rsi      # 0xc641
movl $0x34, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa7ac(%rip), %rdi      # 0x10ff0
leaq 0x5da3(%rip), %rsi      # 0xc5ee
movl $0x13, %edx
callq 0x3210
movq 0xa73c(%rip), %rax      # 0x10f98
movq (%rax), %rsi
movq 0xa78a(%rip), %rdi      # 0x10ff0
callq 0x31e0
movq %rax, %rbx
leaq 0x5d8d(%rip), %rsi      # 0xc602
movl $0x2a, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa75a(%rip), %rdi      # 0x10ff0
leaq 0x5cfc(%rip), %rsi      # 0xc599
movl $0x13, %edx
callq 0x3210
movq 0xa6ea(%rip), %rax      # 0x10f98
movq (%rax), %rsi
movq 0xa738(%rip), %rdi      # 0x10ff0
callq 0x31e0
movq %rax, %rbx
leaq 0x5ce6(%rip), %rsi      # 0xc5ad
movl $0x40, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa708(%rip), %rdi      # 0x10ff0
leaq 0x5c5d(%rip), %rsi      # 0xc54c
movl $0x13, %edx
callq 0x3210
movq 0xa698(%rip), %rax      # 0x10f98
movq (%rax), %rsi
movq 0xa6e6(%rip), %rdi      # 0x10ff0
callq 0x31e0
movq %rax, %rbx
leaq 0x5c47(%rip), %rsi      # 0xc560
movl $0x38, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa6b6(%rip), %rdi      # 0x10ff0
leaq 0x5fa3(%rip), %rsi      # 0xc8e4
movl $0x32, %edx
callq 0x3210
movq 0xa69e(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa68d(%rip), %rdi      # 0x10ff0
leaq 0x5e2c(%rip), %rsi      # 0xc796
movl $0xe4, %edx
callq 0x3210
movq 0xa675(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa664(%rip), %rdi      # 0x10ff0
leaq 0x5f1a(%rip), %rsi      # 0xc8ad
movl $0x1b, %edx
callq 0x3210
movq 0xa64c(%rip), %rdi      # 0x10ff0
movq %rbx, %rsi
callq 0x31e0
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa630(%rip), %rdi      # 0x10ff0
leaq 0x5f02(%rip), %rsi      # 0xc8c9
movl $0x1a, %edx
callq 0x3210
movq 0xa618(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa607(%rip), %rdi      # 0x10ff0
leaq 0x5f83(%rip), %rsi      # 0xc973
movl $0x15, %edx
callq 0x3210
movq 0xa5ef(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa5de(%rip), %rdi      # 0x10ff0
leaq 0x5fa8(%rip), %rsi      # 0xc9c1
movl $0x29, %edx
callq 0x3210
movq 0xa5c6(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa5b5(%rip), %rdi      # 0x10ff0
leaq 0x5fa9(%rip), %rsi      # 0xc9eb
movl $0xf, %edx
callq 0x3210
movq 0xe8(%rsp), %rsi
subq 0xe0(%rsp), %rsi
movq 0xa58d(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rbx
leaq 0x5f89(%rip), %rsi      # 0xc9fb
movl $0x2b, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa55d(%rip), %rdi      # 0x10ff0
leaq 0x5f8d(%rip), %rsi      # 0xca27
movl $0xa, %edx
vzeroupper
callq 0x3210
movq 0xa542(%rip), %rdi      # 0x10ff0
movq %r14, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x5f72(%rip), %rsi      # 0xca32
movl $0x2e, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa50f(%rip), %rdi      # 0x10ff0
leaq 0x5fa3(%rip), %rsi      # 0xca8b
movl $0x16, %edx
callq 0x3210
movq 0xa4f7(%rip), %rdi      # 0x10ff0
movq 0xa8(%rsp), %rsi
callq 0x31e0
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa4d6(%rip), %rdi      # 0x10ff0
leaq 0x5f81(%rip), %rsi      # 0xcaa2
movl $0x1c, %edx
callq 0x3210
movq 0xa4be(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa4ad(%rip), %rdi      # 0x10ff0
leaq 0x5fe4(%rip), %rsi      # 0xcb2e
movl $0xe, %edx
callq 0x3210
movq 0x188(%rsp), %rsi
subq 0x180(%rsp), %rsi
sarq $0x3, %rsi
movq 0xa481(%rip), %rdi      # 0x10ff0
callq 0x3130
movq %rax, %rbx
leaq 0x5fbf(%rip), %rsi      # 0xcb3d
movl $0x1b, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3130
movq %rax, %rbx
leaq 0x5fb9(%rip), %rsi      # 0xcb59
movl $0x8, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa42f(%rip), %rdi      # 0x10ff0
leaq 0x6048(%rip), %rsi      # 0xcc10
movl $0x2b, %edx
callq 0x3210
movq 0xa417(%rip), %rdi      # 0x10ff0
movl $0x40, %esi
callq 0x3130
movq %rax, %rbx
leaq 0x5a7c(%rip), %rsi      # 0xc669
movl $0xc, %edx
movq %rax, %rdi
callq 0x3210
movq %rbx, %rdi
callq 0x30f0
jmp 0x63b6
leaq 0x6058(%rip), %rdi      # 0xcc66
callq 0x3100
movq 0xa3d6(%rip), %rdi      # 0x10ff0
leaq 0x6348(%rip), %rsi      # 0xcf69
movl $0x1f, %edx
callq 0x3210
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0xa3b4(%rip), %rdi      # 0x10ff0
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa39b(%rip), %rdi      # 0x10ff0
leaq 0x632f(%rip), %rsi      # 0xcf8b
movl $0x24, %edx
callq 0x3210
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0xa379(%rip), %rdi      # 0x10ff0
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa360(%rip), %rdi      # 0x10ff0
leaq 0x6328(%rip), %rsi      # 0xcfbf
movl $0x1f, %edx
callq 0x3210
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0xa33e(%rip), %rdi      # 0x10ff0
callq 0x3210
movq %rax, %rdi
callq 0x30f0
jmp 0x63b6
movq 0xa325(%rip), %rdi      # 0x10ff0
leaq 0x630d(%rip), %rsi      # 0xcfdf
movl $0x1f, %edx
callq 0x3210
movq 0xa30d(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
movq 0xa2fc(%rip), %rdi      # 0x10ff0
leaq 0x60d8(%rip), %rsi      # 0xcdd3
movl $0x46, %edx
vzeroupper
callq 0x3210
movq 0xa2e1(%rip), %rdi      # 0x10ff0
callq 0x30f0
jmp 0x63b6
jmp 0x6fc7
jmp 0x6d20
movq %rax, %r14
movq 0x628(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6d3a
callq 0x31c0
jmp 0x6d3a
movq %rax, %r14
movq 0x60(%rsp), %rdi
jmp 0x715f
jmp 0x6f50
jmp 0x6dc9
jmp 0x6dc1
jmp 0x6fc7
jmp 0x6d66
jmp 0x6d66
jmp 0x6e32
jmp 0x6d66
jmp 0x6d66
jmp 0x6e32
jmp 0x6d66
movq %rax, %r14
jmp 0x709c
jmp 0x6e32
jmp 0x6f50
jmp 0x6eaa
jmp 0x6eaa
jmp 0x6fc7
movq %rax, %r14
jmp 0x718b
movq %rax, %r14
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e53
callq 0x31c0
jmp 0x6e53
jmp 0x6dc1
jmp 0x6e50
movq %rax, %r14
jmp 0x7027
jmp 0x6dc1
jmp 0x6dc9
movq %rax, %r14
jmp 0x714a
movq %rax, %r14
jmp 0x6fe4
jmp 0x6ed1
jmp 0x6ed1
jmp 0x6ed1
jmp 0x6ed1
jmp 0x6efa
jmp 0x6f1b
jmp 0x6ed1
jmp 0x6efa
jmp 0x6f1b
jmp 0x6ed1
jmp 0x6efa
jmp 0x6f1b
jmp 0x6fc7
jmp 0x708c
jmp 0x7078
jmp 0x708c
jmp 0x6fc7
jmp 0x6fc7
jmp 0x6ea2
jmp 0x6f1b
movq %rax, %r14
jmp 0x713d
jmp 0x70e0
jmp 0x6eaa
jmp 0x6ea2
jmp 0x6f44
movq %rax, %r14
jmp 0x70f6
movq %rax, %r14
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x6ebe
jmp 0x6fca
jmp 0x6f37
jmp 0x6fc7
jmp 0x6fc7
jmp 0x6f50
jmp 0x6fc7
jmp 0x6fc7
jmp 0x6fc7
jmp 0x6f78
jmp 0x6fc7
jmp 0x6f78
jmp 0x7078
jmp 0x6ea2
movq %rax, %r14
jmp 0x6ff1
movq %rax, %r14
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0x6fca
callq 0x31c0
jmp 0x6fca
jmp 0x6f1b
jmp 0x6fc7
jmp 0x6ed1
movq %rax, %r14
movq 0xa0dd(%rip), %rsi      # 0x10fb8
leaq 0x628(%rsp), %rdi
callq 0x3290
leaq 0x6a0(%rsp), %rdi
callq 0x30a0
jmp 0x7171
movq %rax, %r14
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
jne 0x7057
jmp 0x7171
movq %rax, %r14
jmp 0x7171
jmp 0x70b9
jmp 0x6fc7
jmp 0x70e0
jmp 0x708c
movq %rax, %r14
jmp 0x70cf
jmp 0x6fc7
movq %rax, %r14
jmp 0x7109
jmp 0x6fc7
jmp 0x6fc7
movq %rax, %r14
jmp 0x7164
jmp 0x708c
jmp 0x6fc7
jmp 0x6fac
movq %rax, %r14
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x6faf
callq 0x31c0
jmp 0x6faf
movq %rax, %r14
movq 0x3f0(%rsp), %rdi
testq %rdi, %rdi
jne 0x70af
jmp 0x713d
jmp 0x70e0
jmp 0x70e0
jmp 0x70b9
jmp 0x6fc7
jmp 0x70e0
jmp 0x7061
movq %rax, %r14
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x7064
callq 0x31c0
jmp 0x7064
movq %rax, %r14
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x6fe4
callq 0x31c0
leaq 0x628(%rsp), %rdi
callq 0x3060
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x7003
callq 0x31c0
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x7015
callq 0x31c0
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x7027
callq 0x31c0
leaq 0x110(%rsp), %rdi
callq 0x775c
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x7046
callq 0x31c0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x7171
callq 0x31c0
jmp 0x7171
movq %rax, %r14
movq 0x408(%rsp), %rdi
testq %rdi, %rdi
je 0x70e3
callq 0x31c0
jmp 0x70e3
movq %rax, %r14
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x708f
callq 0x31c0
jmp 0x708f
movq %rax, %r14
leaq 0x3f0(%rsp), %rdi
callq 0x32d0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x713d
callq 0x31c0
jmp 0x713d
movq %rax, %r14
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x70cf
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x70(%rsp), %rdi
callq 0xac76
leaq 0x10(%rsp), %rdi
jmp 0x7138
movq %rax, %r14
movq 0x5f8(%rsp), %rdi
testq %rdi, %rdi
je 0x70f6
movq (%rdi), %rax
callq *0x8(%rax)
movq 0x610(%rsp), %rdi
testq %rdi, %rdi
je 0x7109
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x240(%rsp), %rdi
callq 0xac76
leaq 0x280(%rsp), %rdi
callq 0xac76
leaq 0x220(%rsp), %rdi
callq 0xac76
leaq 0x1f0(%rsp), %rdi
callq 0xac76
leaq 0x2a0(%rsp), %rdi
callq 0x71ae
movq 0x628(%rsp), %rdi
leaq 0x638(%rsp), %rax
cmpq %rax, %rdi
je 0x7164
callq 0x31c0
leaq 0xd8(%rsp), %rdi
callq 0x726c
leaq 0xc0(%rsp), %rax
movq 0xb0(%rsp), %rdi
cmpq %rax, %rdi
je 0x718b
callq 0x31c0
leaq 0x1c0(%rsp), %rax
movq 0x1b0(%rsp), %rdi
cmpq %rax, %rdi
je 0x71a5
callq 0x31c0
movq %r14, %rdi
callq 0x33a0
nop