// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/ebwt_search.cpp
// Function: driver(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 128> const&, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 128> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static void driver(const char * type,
                   const string& ebwtFileBase,
                   const string& query,
                   const EList<string>& queries,
                   const EList<string>& qualities,
                   const string& outfile)
{
	if(verbose || startVerbose)  {
		cerr << "Entered driver(): "; logTime(cerr, true);
	}
	// Vector of the reference sequences; used for sanity-checking
	EList<BTRefString> os;
	// Read reference sequences from the command-line or from a FASTA file
	if(!origString.empty()) {
		// Determine if it's a file by looking at whether it has a FASTA-like
		// extension
		size_t len = origString.length();
		if((len >= 6 && origString.substr(len-6) == ".fasta") ||
		   (len >= 4 && origString.substr(len-4) == ".mfa")   ||
		   (len >= 4 && origString.substr(len-4) == ".fas")   ||
		   (len >= 4 && origString.substr(len-4) == ".fna")   ||
		   (len >= 3 && origString.substr(len-3) == ".fa"))
		{
			// Read fasta file
			EList<string> origFiles;
			tokenize(origString, ",", origFiles);
			readSequenceFiles(origFiles, os);
		} else {
			// Read sequence
			readSequenceString(origString, os);
		}
	}
	// Adjust
	adjustedEbwtFileBase = adjustEbwtBase(argv0, ebwtFileBase, verbose);
	bool isBt2Index = false;
	if (gEbwt_ext == "bt2" || gEbwt_ext == "bt2l") {
		isBt2Index = true;
	}


	EList<PatternSource*> patsrcs_a;
	EList<PatternSource*> patsrcs_b;
	EList<PatternSource*> patsrcs_ab;

	// If there were any first-mates specified, we will operate in
	// stateful mode
	bool paired = mates1.size() > 0 || mates12.size() > 0;
	if(paired) stateful = true;

	// Create list of pattern sources for paired reads appearing
	// interleaved in a single file
	if(verbose || startVerbose) {
		cerr << "Creating paired-end patsrcs: "; logTime(cerr, true);
	}
	for(size_t i = 0; i < mates12.size(); i++) {
		const EList<string>* qs = &mates12;
		EList<string> tmp;
		if(fileParallel) {
			// Feed query files one to each PatternSource
			qs = &tmp;
			tmp.push_back(mates12[i]);
			assert_eq(1, tmp.size());
		}
		patsrcs_ab.push_back(patsrcFromStrings(format, *qs, NULL));
		if(!fileParallel) {
			break;
		}
	}

	// Create list of pattern sources for paired reads
	for(size_t i = 0; i < mates1.size(); i++) {
		const EList<string>* qs = &mates1;
		const EList<string>* quals = &qualities1;
		EList<string> tmpSeq;
		EList<string> tmpQual;
		if(fileParallel) {
			// Feed query files one to each PatternSource
			qs = &tmpSeq;
			tmpSeq.push_back(mates1[i]);
			quals = &tmpSeq;
			tmpQual.push_back(qualities1[i]);
			assert_eq(1, tmpSeq.size());
		}
		if(quals->empty()) quals = NULL;
		patsrcs_a.push_back(patsrcFromStrings(format, *qs, quals));
		if(!fileParallel) {
			break;
		}
	}

	// Create list of pattern sources for paired reads
	for(size_t i = 0; i < mates2.size(); i++) {
		const EList<string>* qs = &mates2;
		const EList<string>* quals = &qualities2;
		EList<string> tmpSeq;
		EList<string> tmpQual;
		if(fileParallel) {
			// Feed query files one to each PatternSource
			qs = &tmpSeq;
			tmpSeq.push_back(mates2[i]);
			quals = &tmpQual;
			tmpQual.push_back(qualities2[i]);
			assert_eq(1, tmpSeq.size());
		}
		if(quals->empty()) quals = NULL;
		patsrcs_b.push_back(patsrcFromStrings(format, *qs, quals));
		if(!fileParallel) {
			break;
		}
	}
	// All mates/mate files must be paired
	assert_eq(patsrcs_a.size(), patsrcs_b.size());

	// Create list of pattern sources for the unpaired reads
	if(verbose || startVerbose) {
		cerr << "Creating single-end patsrcs: "; logTime(cerr, true);
	}
	for(size_t i = 0; i < queries.size(); i++) {
		const EList<string>* qs = &queries;
		const EList<string>* quals = &qualities;
		PatternSource* patsrc = NULL;
		EList<string> tmpSeq;
		EList<string> tmpQual;
		if(fileParallel) {
			// Feed query files one to each PatternSource
			qs = &tmpSeq;
			tmpSeq.push_back(queries[i]);
			quals = &tmpQual;
			tmpQual.push_back(qualities[i]);
			assert_eq(1, tmpSeq.size());
		}
		if(quals->empty()) quals = NULL;
		patsrc = patsrcFromStrings(format, *qs, quals);
		assert(patsrc != NULL);
		patsrcs_a.push_back(patsrc);
		patsrcs_b.push_back(NULL);
		if(!fileParallel) {
			break;
		}
	}

	if(verbose || startVerbose) {
		cerr << "Creating PatternSource: "; logTime(cerr, true);
	}
	PatternComposer *patsrc = NULL;
	if(mates12.size() > 0) {
		patsrc = new SoloPatternComposer(patsrcs_ab);
	} else {
		patsrc = new DualPatternComposer(patsrcs_a, patsrcs_b);
	}

	// Open hit output file
	if(verbose || startVerbose) {
		cerr << "Opening hit output file: "; logTime(cerr, true);
	}
	OutFileBuf *fout;
	if(!outfile.empty()) {
		fout = new OutFileBuf(outfile.c_str(), false);
	} else {
		fout = new OutFileBuf();
	}
	// Initialize Ebwt object and read in header
	if(verbose || startVerbose) {
		cerr << "About to initialize fw Ebwt: "; logTime(cerr, true);
	}
	Ebwt ebwt(adjustedEbwtFileBase,
	                -1,     // don't care about entireReverse
	                true,     // index is for the forward direction
	                /* overriding: */ offRate,
	                /* overriding: */ isaRate,
	                useMm,    // whether to use memory-mapped files
	                useShmem, // whether to use shared memory
	                mmSweep,  // sweep memory-mapped files
	                !noRefNames, // load names?
	                verbose, // whether to be talkative
	                startVerbose, // talkative during initialization
	                false /*passMemExc*/,
	                sanityCheck,
	                isBt2Index);
	Ebwt* ebwtBw = NULL;
	// We need the mirror index if mismatches are allowed
	if(mismatches > 0 || maqLike) {
		if(verbose || startVerbose) {
			cerr << "About to initialize rev Ebwt: "; logTime(cerr, true);
		}
		ebwtBw = new Ebwt(
			adjustedEbwtFileBase + ".rev",
			-1,     // don't care about entireReverse
			false, // index is for the reverse direction
			/* overriding: */ offRate,
			/* overriding: */ isaRate,
			useMm,    // whether to use memory-mapped files
			useShmem, // whether to use shared memory
			mmSweep,  // sweep memory-mapped files
			!noRefNames, // load names?
			verbose,  // whether to be talkative
			startVerbose, // talkative during initialization
			false /*passMemExc*/,
			sanityCheck,
	        isBt2Index);
	}
	if(!os.empty()) {
		for(size_t i = 0; i < os.size(); i++) {
			size_t olen = os[i].length();
			int longestStretch = 0;
			int curStretch = 0;
			for(size_t j = 0; j < olen; j++) {
				if((int)os[i][j] < 4) {
					curStretch++;
					if(curStretch > longestStretch) longestStretch = curStretch;
				} else {
					curStretch = 0;
				}
			}
			if(longestStretch < 1) {
				os.erase(i--);
			}
		}
	}
	if(sanityCheck && !os.empty()) {
		// Sanity check number of patterns and pattern lengths in Ebwt
		// against original strings
		assert_eq(os.size(), ebwt.nPat());
		for(size_t i = 0; i < os.size(); i++) {
			assert_eq(os[i].length(), ebwt.plen()[i]);
		}
		ebwt.loadIntoMemory(-1, !noRefNames, startVerbose);
		ebwt.checkOrigs(os, false);
		ebwt.evictFromMemory();
	}
	{
		Timer _t(cerr, "Time searching: ", timing);
		if(verbose || startVerbose) {
			cerr << "Creating HitSink: "; logTime(cerr, true);
		}
		// Set up hit sink; if sanityCheck && !os.empty() is true,
		// then instruct the sink to "retain" hits in a vector in
		// memory so that we can easily sanity check them later on
		HitSink *sink;
		EList<string>* refnames = &ebwt.refnames();
		if(noRefNames) refnames = NULL;
		if(outType == OUTPUT_FULL) {
			sink = new VerboseHitSink(
					*fout, offBase,
					printCost,
					suppressOuts,
					fullRef,
					dumpAlBase,
					dumpUnalBase,
					dumpMaxBase,
					format == TAB_MATE, sampleMax,
					refnames, nthreads,
					outBatchSz, partitionSz);
		} else if(outType == OUTPUT_SAM) {
			SAMHitSink *sam = new SAMHitSink(
				*fout,
				fullRef, samNoQnameTrunc,
				dumpAlBase,
				dumpUnalBase,
				dumpMaxBase,
				format == TAB_MATE,
				sampleMax,
				refnames,
				nthreads,
				outBatchSz,
				reorder);
			if(!samNoHead) {
				EList<string> refnames;
				if(!samNoSQ) {
					readEbwtRefnames(adjustedEbwtFileBase, refnames);
				}
				sam->appendHeaders(
					sam->out(),
					ebwt.nPat(),
					refnames, samNoSQ,
					ebwt.plen(), fullRef,
					samNoQnameTrunc,
					argstr.c_str(),
					rgs.empty() ? NULL : rgs.c_str());
			}
			sink = sam;
		} else {
			cerr << "Invalid output type: " << outType << endl;
			throw 1;
		}
		if(verbose || startVerbose) {
			cerr << "Dispatching to search driver: "; logTime(cerr, true);
		}
		if(maqLike) {
			seededQualCutoffSearchFull(seedLen,
									   qualThresh,
									   seedMms,
									   *patsrc,
									   *sink,
									   ebwt,    // forward index
									   *ebwtBw, // mirror index (not optional)
									   os);     // references, if available
		}
		else if(mismatches > 0) {
			if(mismatches == 1) {
				assert(ebwtBw != NULL);
				mismatchSearchFull(*patsrc, *sink, ebwt, *ebwtBw, os);
			} else if(mismatches == 2 || mismatches == 3) {
				twoOrThreeMismatchSearchFull(*patsrc, *sink, ebwt, *ebwtBw, os, mismatches == 2);
			} else {
				cerr << "Error: " << mismatches << " is not a supported number of mismatches" << endl;
				throw 1;
			}
		} else {
			// Search without mismatches
			// Note that --fast doesn't make a difference here because
			// we're only loading half of the index anyway
			exactSearch(*patsrc, *sink, ebwt, os);
		}
		// Evict any loaded indexes from memory
		if(ebwt.isInMemory()) {
			ebwt.evictFromMemory();
		}
		if(ebwtBw != NULL) {
			delete ebwtBw;
		}
		sink->finish(hadoopOut); // end the hits section of the hit file
		for(size_t i = 0; i < patsrcs_a.size(); i++) {
			assert(patsrcs_a[i] != NULL);
			delete patsrcs_a[i];
		}
		for(size_t i = 0; i < patsrcs_b.size(); i++) {
			if(patsrcs_b[i] != NULL) {
				delete patsrcs_b[i];
			}
		}
		for(size_t i = 0; i < patsrcs_ab.size(); i++) {
			if(patsrcs_ab[i] != NULL) {
				delete patsrcs_ab[i];
			}
		}
		delete patsrc;
		delete sink;
		if(fout != NULL) delete fout;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x42278, %rsp          # imm = 0x42278
movq %rsi, 0x108(%rsp)
movq %rdi, %rbx
cmpb $0x0, 0x55d15(%rip)     # 0x6524d
jne 0xf543
cmpb $0x1, 0x55cf7(%rip)     # 0x65238
jne 0xf55b
movq 0x52aa6(%rip), %rdi     # 0x61ff0
leaq 0x3aca5(%rip), %rsi     # 0x4a1f6
callq 0x94e0
callq 0xcaaa
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x110(%rsp)
andq $0x0, 0x118(%rsp)
movq $0x80, 0x120(%rsp)
andq $0x0, 0x128(%rsp)
movq 0x55aee(%rip), %r15     # 0x65080
testq %r15, %r15
movq %rbx, 0x48(%rsp)
je 0xfaed
cmpq $0x6, %r15
jb 0xf5eb
leaq -0x6(%r15), %rdx
leaq 0x55ac7(%rip), %rsi     # 0x65078
leaq 0x1b8(%rsp), %rdi
pushq $-0x1
popq %rcx
callq 0x9520
leaq 0x3ac41(%rip), %rsi     # 0x4a209
leaq 0x1b8(%rsp), %rdi
callq 0x17c2c
testb %al, %al
je 0xf5f5
leaq 0x1b8(%rsp), %rdi
callq 0x9a68
jmp 0xf735
cmpq $0x4, %r15
jb 0xf6a2
leaq -0x4(%r15), %r14
leaq 0x55a78(%rip), %rsi     # 0x65078
leaq 0x218(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %r14, %rdx
callq 0x9520
leaq 0x39a40(%rip), %rsi     # 0x4905a
leaq 0x218(%rsp), %rdi
callq 0x17c2c
movb $0x1, %bl
testb %al, %al
jne 0xf70d
leaq 0x55a40(%rip), %rsi     # 0x65078
leaq 0x1f8(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %r14, %rdx
callq 0x9520
leaq 0x3abbe(%rip), %rsi     # 0x4a210
leaq 0x1f8(%rsp), %rdi
callq 0x17c2c
movb $0x1, %bl
testb %al, %al
jne 0xf700
leaq 0x55a08(%rip), %rsi     # 0x65078
leaq 0x1d8(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %r14, %rdx
callq 0x9520
leaq 0x3ab8b(%rip), %rsi     # 0x4a215
leaq 0x1d8(%rsp), %rdi
callq 0x17c2c
movb $0x1, %bpl
movb $0x1, %bl
testb %al, %al
je 0xf6ae
jmp 0xf6f3
cmpq $0x3, %r15
jne 0xfad4
xorl %ebp, %ebp
leaq -0x3(%r15), %rdx
leaq 0x559bf(%rip), %rsi     # 0x65078
leaq 0x238(%rsp), %rdi
pushq $-0x1
popq %rcx
callq 0x9520
leaq 0x3ab4a(%rip), %rsi     # 0x4a21a
leaq 0x238(%rsp), %r14
movq %r14, %rdi
callq 0x17c2c
movl %eax, %ebx
movq %r14, %rdi
callq 0x9a68
testb %bpl, %bpl
je 0x1071f
leaq 0x1d8(%rsp), %rdi
callq 0x9a68
leaq 0x1f8(%rsp), %rdi
callq 0x9a68
leaq 0x218(%rsp), %rdi
callq 0x9a68
cmpq $0x6, %r15
jb 0xf72d
leaq 0x1b8(%rsp), %rdi
callq 0x9a68
testb %bl, %bl
je 0xfad4
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x130(%rsp)
andq $0x0, 0x138(%rsp)
movq $0x80, 0x140(%rsp)
andq $0x0, 0x148(%rsp)
leaq 0x3bcd3(%rip), %rsi     # 0x4b43f
leaq 0x238(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x15df2
leaq 0x558f3(%rip), %rdi     # 0x65078
leaq 0x238(%rsp), %rsi
leaq 0x130(%rsp), %rdx
pushq $-0x1
popq %rcx
callq 0xf44a
leaq 0x238(%rsp), %r14
movq %r14, %rdi
callq 0x9a68
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorl %r15d, %r15d
leaq 0x50(%rsp), %r12
leaq 0x158(%rsp), %rbx
cmpq 0x148(%rsp), %r15
jae 0xfac5
movq 0x138(%rsp), %r13
movq %r15, 0x40(%rsp)
shlq $0x5, %r15
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movl $0x80, %ecx
movq %rcx, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
movq %rax, 0x20(%rsp)
andq $0x0, 0x28(%rsp)
movq %rcx, 0x30(%rsp)
andq $0x0, 0x38(%rsp)
movq (%r13,%r15), %rdi
leaq 0x39208(%rip), %rsi     # 0x48a39
callq 0x9570
testq %rax, %rax
je 0x121f8
andq $0x0, 0x18(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r14)
movl $0x40000, %ecx          # imm = 0x40000
movq %rcx, 0x260(%rsp)
movq %rcx, 0x258(%rsp)
movb $0x0, 0x268(%rsp)
andq $0x0, 0x40270(%rsp)
addq %r15, %r13
movq %rax, 0x238(%rsp)
xorl %eax, %eax
movl $0x40000, %edx          # imm = 0x40000
cmpq %rcx, %rdx
jne 0xf891
testb $0x1, %al
jne 0xf926
andq $0x0, 0x50(%rsp)
leaq 0x78(%rsp), %rdi
movq %r12, %rsi
callq 0x18a9a
andq $0x0, 0x50(%rsp)
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
callq 0x18a9a
movq 0x80(%rsp), %rax
movq 0x90(%rsp), %rcx
leaq (%rax,%rcx,8), %rsi
addq $-0x8, %rsi
movq 0x28(%rsp), %rax
movq 0x38(%rsp), %rcx
leaq -0x8(%rax,%rcx,8), %rdx
movq %r14, %rdi
xorl %ecx, %ecx
callq 0x18ae8
movq 0x28(%rsp), %rcx
movq 0x38(%rsp), %rax
cmpq $0x0, -0x8(%rcx,%rax,8)
jne 0xf90a
decq 0x90(%rsp)
decq %rax
movq %rax, 0x38(%rsp)
movq 0x258(%rsp), %rdx
movq 0x260(%rsp), %rcx
movb 0x268(%rsp), %al
jmp 0xf884
movq %r14, %rdi
callq 0x18a8a
movq (%r13), %rdi
leaq 0x39100(%rip), %rsi     # 0x48a39
callq 0x9570
testq %rax, %rax
je 0x12232
andq $0x0, 0x18(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%r14)
movl $0x40000, %ecx          # imm = 0x40000
movq %rcx, 0x260(%rsp)
movq %rcx, 0x258(%rsp)
movb $0x0, 0x268(%rsp)
andq $0x0, 0x40270(%rsp)
movq %rax, 0x238(%rsp)
xorl %r13d, %r13d
xorl %eax, %eax
movl $0x40000, %edx          # imm = 0x40000
cmpq %rcx, %rdx
jne 0xf999
testb $0x1, %al
jne 0xfa98
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
andq $0x0, 0x58(%rsp)
movb $0x0, 0x60(%rsp)
movq 0x80(%rsp), %rax
movq (%rax,%r13), %rsi
incq %rsi
movq %r12, %rdi
callq 0x97d0
movq 0x28(%rsp), %r15
movq (%r15,%r13), %rdi
callq 0x9030
movq (%r15,%r13), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x18970
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
callq 0x1890e
movq %rbx, %rdi
callq 0x15f54
movq 0x118(%rsp), %rax
movq 0x128(%rsp), %rcx
shlq $0x5, %rcx
leaq (%rax,%rcx), %rdx
addq $-0x20, %rdx
movq %r14, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x1898c
movq 0x118(%rsp), %rax
movq 0x128(%rsp), %rdx
movq %rdx, %rcx
shlq $0x5, %rcx
movq -0x8(%rax,%rcx), %rsi
testq %rsi, %rsi
je 0xfa60
movq %rbp, %rdx
subq %rsi, %rdx
jge 0xfa6d
leaq (%rax,%rcx), %rdi
addq $-0x20, %rdi
movq %rbp, %rsi
callq 0x15e58
xorl %ebp, %ebp
jmp 0xfa70
decq %rdx
movq %rdx, 0x128(%rsp)
jmp 0xfa70
movq %rdx, %rbp
movq %r12, %rdi
callq 0x9a68
movq 0x258(%rsp), %rdx
movq 0x260(%rsp), %rcx
movb 0x268(%rsp), %al
addq $0x8, %r13
jmp 0xf98c
movq %r14, %rdi
callq 0x18a8a
leaq 0x20(%rsp), %rdi
callq 0x18c86
leaq 0x78(%rsp), %rdi
callq 0x18c86
movq 0x40(%rsp), %r15
incq %r15
testq %rbp, %rbp
jg 0xf7c2
leaq 0x130(%rsp), %rdi
callq 0x197f0
jmp 0xfaed
leaq 0x5559d(%rip), %rdi     # 0x65078
leaq 0x110(%rsp), %rsi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
callq 0x17cce
movq 0x5574c(%rip), %rsi     # 0x65240
leaq 0x78(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x15df2
movzbl 0x55743(%rip), %ecx     # 0x6524d
leaq 0x556d7(%rip), %rdx     # 0x651e8
leaq 0x238(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x40854
leaq 0x55526(%rip), %rdi     # 0x65050
leaq 0x238(%rsp), %rbx
movq %rbx, %rsi
callq 0x95e0
movq %rbx, %rdi
callq 0x9a68
leaq 0x78(%rsp), %rdi
callq 0x9a68
leaq 0x558c5(%rip), %rdi     # 0x65418
leaq 0x3a6c4(%rip), %rsi     # 0x4a21e
callq 0x17c2c
testb %al, %al
jne 0xfb7a
leaq 0x558ae(%rip), %rdi     # 0x65418
leaq 0x3a6b1(%rip), %rsi     # 0x4a222
callq 0x17c2c
testb %al, %al
je 0xfb82
movb $0x1, %al
movl %eax, 0x40(%rsp)
jmp 0xfb8a
movl $0x0, 0x40(%rsp)
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
movq %rcx, 0x158(%rsp)
andq $0x0, 0x160(%rsp)
movl $0x80, %eax
movq %rax, 0x168(%rsp)
andq $0x0, 0x170(%rsp)
movq %rcx, 0x130(%rsp)
andq $0x0, 0x138(%rsp)
movq %rax, 0x140(%rsp)
andq $0x0, 0x148(%rsp)
movq %rcx, 0x178(%rsp)
andq $0x0, 0x180(%rsp)
movq %rax, 0x188(%rsp)
andq $0x0, 0x190(%rsp)
movq 0x55442(%rip), %rax     # 0x65048
orq 0x553fb(%rip), %rax     # 0x65008
je 0xfc16
movb $0x1, 0x556bf(%rip)     # 0x652d5
cmpb $0x0, 0x55630(%rip)     # 0x6524d
jne 0xfc28
cmpb $0x1, 0x55612(%rip)     # 0x65238
jne 0xfc40
movq 0x523c1(%rip), %rdi     # 0x61ff0
leaq 0x3a5f1(%rip), %rsi     # 0x4a227
callq 0x94e0
callq 0xcaaa
pushq $-0x1
popq %r12
xorl %r13d, %r13d
leaq 0x178(%rsp), %r14
leaq 0x78(%rsp), %r15
incq %r12
cmpq 0x553ea(%rip), %r12     # 0x65048
jae 0xfcf2
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x238(%rsp)
andq $0x0, 0x240(%rsp)
movq $0x80, 0x248(%rsp)
andq $0x0, 0x250(%rsp)
cmpb $0x1, 0x55636(%rip)     # 0x652d1
leaq 0x5538e(%rip), %rsi     # 0x65030
jne 0xfcb9
movq 0x5538d(%rip), %rsi     # 0x65038
addq %r13, %rsi
movq %rbx, %rdi
callq 0x16afe
movq %rbx, %rsi
movl 0x55591(%rip), %edi     # 0x65250
xorl %edx, %edx
callq 0x128e6
movq %rax, 0x78(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x17ce6
addq $0x20, %r13
movb 0x555f0(%rip), %bpl     # 0x652d1
movq %rbx, %rdi
callq 0x197f0
testb %bpl, %bpl
jne 0xfc54
pushq $-0x1
popq %r13
xorl %ebp, %ebp
movl $0x80, %r15d
leaq 0x238(%rsp), %r14
leaq 0x78(%rsp), %rbx
incq %r13
cmpq 0x552f3(%rip), %r13     # 0x65008
jae 0xfdf8
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x238(%rsp)
andq $0x0, 0x240(%rsp)
movq %r15, 0x248(%rsp)
andq $0x0, 0x250(%rsp)
movq %rax, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movq %r15, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
cmpb $0x1, 0x55564(%rip)     # 0x652d1
leaq 0x5527c(%rip), %rsi     # 0x64ff0
leaq 0x55405(%rip), %rdx     # 0x65180
jne 0xfda7
movq 0x55274(%rip), %rsi     # 0x64ff8
addq %rbp, %rsi
movq %r14, %rdi
callq 0x16afe
movq 0x553f2(%rip), %rsi     # 0x65188
addq %rbp, %rsi
movq %rbx, %rdi
callq 0x16afe
movq %r14, %rsi
movq %r14, %rdx
movq 0x18(%rdx), %rax
testq %rax, %rax
cmoveq %rax, %rdx
movl 0x55498(%rip), %edi     # 0x65250
callq 0x128e6
movq %rax, 0x20(%rsp)
leaq 0x158(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x17ce6
addq $0x20, %rbp
movb 0x554f2(%rip), %r12b    # 0x652d1
movq %rbx, %rdi
callq 0x197f0
movq %r14, %rdi
callq 0x197f0
testb %r12b, %r12b
jne 0xfd0b
pushq $-0x1
popq %r13
xorl %ebp, %ebp
movl $0x80, %r15d
leaq 0x238(%rsp), %r14
incq %r13
cmpq 0x55212(%rip), %r13     # 0x65028
jae 0xfef9
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x238(%rsp)
andq $0x0, 0x240(%rsp)
movq %r15, 0x248(%rsp)
andq $0x0, 0x250(%rsp)
movq %rax, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movq %r15, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
cmpb $0x1, 0x55463(%rip)     # 0x652d1
leaq 0x5519b(%rip), %rsi     # 0x65010
leaq 0x55324(%rip), %rdx     # 0x651a0
jne 0xfea8
movq 0x55193(%rip), %rsi     # 0x65018
addq %rbp, %rsi
movq %r14, %rdi
callq 0x16afe
movq 0x55311(%rip), %rsi     # 0x651a8
addq %rbp, %rsi
movq %rbx, %rdi
callq 0x16afe
movq %r14, %rsi
movq %rbx, %rdx
movq 0x18(%rdx), %rax
testq %rax, %rax
cmoveq %rax, %rdx
movl 0x55397(%rip), %edi     # 0x65250
callq 0x128e6
movq %rax, 0x20(%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x17ce6
addq $0x20, %rbp
movb 0x553f1(%rip), %r12b    # 0x652d1
movq %rbx, %rdi
callq 0x197f0
movq %r14, %rdi
callq 0x197f0
testb %r12b, %r12b
jne 0xfe0c
cmpb $0x0, 0x5534d(%rip)     # 0x6524d
movq 0x48(%rsp), %rbp
jne 0xff10
cmpb $0x1, 0x5532a(%rip)     # 0x65238
jne 0xff28
movq 0x520d9(%rip), %rdi     # 0x61ff0
leaq 0x3a327(%rip), %rsi     # 0x4a245
callq 0x94e0
callq 0xcaaa
pushq $-0x1
popq %r15
xorl %r12d, %r12d
movl $0x80, %r13d
leaq 0x238(%rsp), %rbx
leaq 0x78(%rsp), %r14
incq %r15
cmpq 0x18(%rbp), %r15
jae 0x10048
andq $0x0, 0x20(%rsp)
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x238(%rsp)
andq $0x0, 0x240(%rsp)
movq %r13, 0x248(%rsp)
andq $0x0, 0x250(%rsp)
movq %rax, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movq %r13, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
cmpb $0x1, 0x5532a(%rip)     # 0x652d1
movq %rbp, %rsi
leaq 0x551af(%rip), %rdx     # 0x65160
jne 0xffda
movq 0x8(%rbp), %rsi
addq %r12, %rsi
movq %rbx, %rdi
callq 0x16afe
movq 0x5519f(%rip), %rsi     # 0x65168
addq %r12, %rsi
movq %r14, %rdi
callq 0x16afe
movq %rbx, %rsi
movq %r14, %rdx
movq 0x18(%rdx), %rax
testq %rax, %rax
cmoveq %rax, %rdx
movl 0x55265(%rip), %edi     # 0x65250
callq 0x128e6
movq %rax, 0x20(%rsp)
leaq 0x158(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x17ce6
andq $0x0, 0x50(%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x17ce6
addq $0x20, %r12
movb 0x552a7(%rip), %bpl     # 0x652d1
movq %r14, %rdi
callq 0x197f0
movq %rbx, %rdi
callq 0x197f0
testb %bpl, %bpl
movq 0x48(%rsp), %rbp
jne 0xff42
cmpb $0x0, 0x551fe(%rip)     # 0x6524d
jne 0x1005a
cmpb $0x1, 0x551e0(%rip)     # 0x65238
jne 0x10072
movq 0x51f8f(%rip), %rdi     # 0x61ff0
leaq 0x3a1fb(%rip), %rsi     # 0x4a263
callq 0x94e0
callq 0xcaaa
cmpq $0x0, 0x54fce(%rip)     # 0x65048
je 0x100a5
pushq $0x30
popq %rdi
callq 0x9500
movq %rax, 0x48(%rsp)
movq 0x108(%rsp), %r14
leaq 0x178(%rsp), %rsi
movq 0x48(%rsp), %rdi
callq 0x17d34
jmp 0x100d4
pushq $0x50
popq %rdi
callq 0x9500
movq %rax, 0x48(%rsp)
movq 0x108(%rsp), %r14
leaq 0x158(%rsp), %rsi
leaq 0x130(%rsp), %rdx
movq 0x48(%rsp), %rdi
callq 0x17d56
cmpb $0x0, 0x55172(%rip)     # 0x6524d
jne 0x100e6
cmpb $0x1, 0x55154(%rip)     # 0x65238
jne 0x100fe
movq 0x51f03(%rip), %rdi     # 0x61ff0
leaq 0x3a188(%rip), %rsi     # 0x4a27c
callq 0x94e0
callq 0xcaaa
cmpq $0x0, 0x8(%r14)
je 0x10121
movl $0x4020, %edi           # imm = 0x4020
callq 0x9500
movq %rax, %rbx
movq (%r14), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x17dae
jmp 0x10152
movl $0x4020, %edi           # imm = 0x4020
callq 0x9500
movq %rax, %rbx
leaq 0x3a2ce(%rip), %rax     # 0x4a403
movq %rax, (%rbx)
andq $0x0, 0x10(%rbx)
movb $0x0, 0x4018(%rbx)
movq 0x51e15(%rip), %rax     # 0x61f60
movq (%rax), %rax
movq %rax, 0x8(%rbx)
cmpb $0x0, 0x550f4(%rip)     # 0x6524d
movq %rbx, 0x108(%rsp)
jne 0x1016c
cmpb $0x1, 0x550ce(%rip)     # 0x65238
jne 0x10192
movq 0x51e7d(%rip), %rdi     # 0x61ff0
leaq 0x3a11c(%rip), %rsi     # 0x4a296
callq 0x94e0
callq 0xcaaa
movb 0x550c3(%rip), %cl      # 0x6524d
movb 0x550a8(%rip), %dl      # 0x65238
jmp 0x10196
xorl %edx, %edx
xorl %ecx, %ecx
movl 0x550d7(%rip), %r8d     # 0x65274
movl 0x550d4(%rip), %r9d     # 0x65278
movzbl 0x55128(%rip), %eax     # 0x652d3
movzbl 0x5511f(%rip), %r10d    # 0x652d2
movzbl 0x55119(%rip), %r11d    # 0x652d4
movzbl 0x550ed(%rip), %r14d    # 0x652b0
movzbl 0x55089(%rip), %r15d    # 0x65254
subq $0x8, %rsp
movzbl 0x48(%rsp), %ebx
movzbl %dl, %r12d
andl $0x1, %r12d
movzbl %cl, %r13d
andl $0x1, %r13d
xorl $0x1, %r14d
leaq 0x54e61(%rip), %rsi     # 0x65050
leaq 0x240(%rsp), %rbp
pushq $-0x1
popq %rdx
pushq $0x1
popq %rcx
movq %rbp, %rdi
pushq %rbx
pushq %r15
pushq $0x0
pushq %r12
pushq %r13
pushq %r14
pushq %r11
pushq %r10
pushq %rax
callq 0x17e3a
addq $0x50, %rsp
cmpl $0x0, 0x5505c(%rip)     # 0x6527c
jg 0x10233
testb $0x1, 0x5505b(%rip)     # 0x65284
jne 0x10233
xorl %r14d, %r14d
jmp 0x10313
cmpb $0x0, 0x55013(%rip)     # 0x6524d
jne 0x10245
cmpb $0x1, 0x54ff5(%rip)     # 0x65238
jne 0x1025d
movq 0x51da4(%rip), %rdi     # 0x61ff0
leaq 0x3a061(%rip), %rsi     # 0x4a2b4
callq 0x94e0
callq 0xcaaa
movl $0x188, %edi            # imm = 0x188
callq 0x9500
movq %rax, %r14
leaq 0x54ddf(%rip), %rsi     # 0x65050
leaq 0x3a05b(%rip), %rdx     # 0x4a2d3
leaq 0x78(%rsp), %rdi
callq 0x16a9f
movl 0x54feb(%rip), %r8d     # 0x65274
movl 0x54fe8(%rip), %r9d     # 0x65278
movzbl 0x5503c(%rip), %eax     # 0x652d3
movzbl 0x55034(%rip), %ecx     # 0x652d2
movzbl 0x5502f(%rip), %edx     # 0x652d4
movzbl 0x55004(%rip), %esi     # 0x652b0
movzbl 0x54f9a(%rip), %edi     # 0x6524d
movzbl 0x54f7d(%rip), %r10d    # 0x65238
movzbl 0x54f91(%rip), %r11d    # 0x65254
subq $0x50, %rsp
movl %ebx, 0x40(%rsp)
movl %r11d, 0x38(%rsp)
movl %r10d, 0x28(%rsp)
movl %edi, 0x20(%rsp)
xorl $0x1, %esi
movl %esi, 0x18(%rsp)
movl %edx, 0x10(%rsp)
movl %ecx, 0x8(%rsp)
movl %eax, (%rsp)
andl $0x0, 0x30(%rsp)
leaq 0xc8(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %r14, %rdi
xorl %ecx, %ecx
callq 0x17e3a
addq $0x50, %rsp
leaq 0x78(%rsp), %rdi
callq 0x9a68
movq %r14, 0x40(%rsp)
movq 0x128(%rsp), %rax
testq %rax, %rax
je 0x103ee
xorl %r15d, %r15d
leaq 0x110(%rsp), %rbx
xorl %r14d, %r14d
cmpq %rax, %r14
jae 0x103a3
movq 0x118(%rsp), %rdx
movq %r14, %rsi
shlq $0x5, %rsi
leaq (%rdx,%rsi), %rcx
movq 0x18(%rdx,%rsi), %rsi
xorl %edx, %edx
xorl %r8d, %r8d
xorl %edi, %edi
cmpq %rdi, %rsi
je 0x10384
movq 0x8(%rcx), %r9
cmpl %edx, %r8d
leal 0x1(%r8), %r8d
movl %r8d, %r10d
cmovll %edx, %r10d
cmpb $0x4, (%r9,%rdi)
cmovll %r10d, %edx
cmovgel %r15d, %r8d
incq %rdi
jmp 0x1035b
testl %edx, %edx
jg 0x1039e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x180b4
decq %r14
movq 0x128(%rsp), %rax
incq %r14
jmp 0x10337
testq %rax, %rax
je 0x103ee
testb $0x1, 0x54ea5(%rip)     # 0x65254
je 0x103ee
movzbl 0x54ef8(%rip), %edx     # 0x652b0
movzbl 0x54e79(%rip), %ecx     # 0x65238
xorl $0x1, %edx
leaq 0x238(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x180fe
leaq 0x238(%rsp), %rdi
xorl %edx, %edx
callq 0xb180
leaq 0x238(%rsp), %rdi
callq 0x18114
movb 0x54e58(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x198(%rsp)
movq 0x51be6(%rip), %rax     # 0x61ff0
movq %rax, 0x1a0(%rsp)
leaq 0x39ebf(%rip), %rax     # 0x4a2d8
movq %rax, 0x1a8(%rsp)
movb %bl, 0x1b0(%rsp)
cmpb $0x0, 0x54e1e(%rip)     # 0x6524d
jne 0x1043a
cmpb $0x1, 0x54e00(%rip)     # 0x65238
jne 0x10452
movq 0x51baf(%rip), %rdi     # 0x61ff0
leaq 0x39ea1(%rip), %rsi     # 0x4a2e9
callq 0x94e0
callq 0xcaaa
leaq 0x300(%rsp), %rax
xorl %ebx, %ebx
cmpb $0x0, 0x54e4d(%rip)     # 0x652b0
cmoveq %rax, %rbx
movl 0x54e3f(%rip), %eax     # 0x652ac
cmpl $0x1, %eax
je 0x1051b
cmpl $0x4, %eax
jne 0x1226c
movl $0x1f8, %edi            # imm = 0x1F8
callq 0x9500
movq %rax, %r13
movzbl 0x54e96(%rip), %edx     # 0x65329
movzbl 0x54e90(%rip), %ecx     # 0x6532a
xorl %eax, %eax
cmpl $0x5, 0x54dad(%rip)     # 0x65250
sete %al
movzbl 0x54e7f(%rip), %r10d    # 0x6532d
movslq 0x54de7(%rip), %r11     # 0x6529c
movl 0x54e0c(%rip), %r14d    # 0x652c8
movzbl 0x54ddc(%rip), %r15d    # 0x652a0
subq $0x8, %rsp
leaq 0x54c29(%rip), %r12     # 0x650f8
leaq 0x54be2(%rip), %r8      # 0x650b8
leaq 0x54bfb(%rip), %r9      # 0x650d8
movq %r13, %rdi
movq 0x110(%rsp), %rsi
pushq %r15
pushq %r14
pushq %r11
pushq %rbx
pushq %r10
pushq %rax
pushq %r12
callq 0x182a2
addq $0x40, %rsp
cmpb $0x0, 0x54e27(%rip)     # 0x6532b
movq 0x40(%rsp), %r15
je 0x105c5
movq 0x51ada(%rip), %r12     # 0x61ff0
jmp 0x10960
movl $0x228, %edi            # imm = 0x228
callq 0x9500
movl 0x54dcd(%rip), %edx     # 0x652f8
movzbl 0x54e02(%rip), %ecx     # 0x65334
movzbl 0x54def(%rip), %r9d     # 0x65329
xorl %r13d, %r13d
cmpl $0x5, 0x54d0c(%rip)     # 0x65250
sete %r13b
movzbl 0x54ddd(%rip), %r10d    # 0x6532d
movslq 0x54d45(%rip), %r11     # 0x6529c
movl 0x54d62(%rip), %r14d    # 0x652c0
subq $0x8, %rsp
leaq 0x54b8f(%rip), %r15     # 0x650f8
leaq 0x54b68(%rip), %r12     # 0x650d8
movq %rax, %rdi
leaq 0x54b3e(%rip), %rax     # 0x650b8
leaq 0x54bb7(%rip), %r8      # 0x65138
movq %rdi, %rbp
movq 0x110(%rsp), %rsi
pushq %r14
pushq 0x54d34(%rip)           # 0x652c8
pushq %r11
pushq %rbx
pushq %r10
pushq %r13
pushq %r15
pushq %r12
pushq %rax
callq 0x181d6
addq $0x50, %rsp
movq 0x40(%rsp), %r15
movq %rbp, %r13
movq 0x51a38(%rip), %r12     # 0x61ff0
leaq 0x238(%rsp), %rbp
jmp 0x10960
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
movq %rax, 0x50(%rsp)
andq $0x0, 0x58(%rsp)
movq $0x80, 0x60(%rsp)
andq $0x0, 0x68(%rsp)
movb $0x1, %cl
cmpb $0x0, 0x54d3a(%rip)     # 0x6532c
movq 0x519f7(%rip), %r12     # 0x61ff0
jne 0x108fb
leaq 0x54a4a(%rip), %rsi     # 0x65050
leaq 0x39dfb(%rip), %rdx     # 0x4a408
leaq 0x20(%rsp), %rdi
callq 0x16a9f
leaq 0x54dfa(%rip), %rdx     # 0x65418
leaq 0x78(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x19aec
movq %r13, 0x100(%rsp)
leaq 0x78(%rsp), %rbx
movq (%rbx), %rdi
leaq 0x36ef4(%rip), %rsi     # 0x47538
callq 0x9570
movq %rax, %rbp
movq %rbx, %rdi
callq 0x9a68
leaq 0x20(%rsp), %rdi
callq 0x9a68
testq %rbp, %rbp
je 0x12305
movq %rbp, %rdi
xorl %esi, %esi
callq 0xcbd7
movl %eax, %ebx
xorl %r15d, %r15d
cmpl $0x1, %eax
setne %r15b
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcbd7
movl %eax, 0x70(%rsp)
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc07
movl %eax, 0x154(%rsp)
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc07
movl %eax, 0x150(%rsp)
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc07
movl %eax, %r14d
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc07
movl %eax, %r13d
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc07
movl %eax, %r12d
testl %eax, %eax
sets %al
negb %r12b
andb $0x4, %r12b
shrb $0x2, %r12b
andb %al, %r12b
leaq 0x54d24(%rip), %rdi     # 0x65418
leaq 0x39b23(%rip), %rsi     # 0x4a21e
callq 0x17c2c
testb %al, %al
jne 0x1071b
leaq 0x54d0d(%rip), %rdi     # 0x65418
leaq 0x39b0c(%rip), %rsi     # 0x4a21e
callq 0x17c2c
testb %al, %al
je 0x1072e
movb $0x1, %al
jmp 0x10730
cmpq $0x5, %r15
ja 0xf720
jmp 0xf72d
xorl %eax, %eax
xorl %r15d, %r15d
cmpl $0x1, %ebx
setne %r15b
subq $0x8, %rsp
movzbl %al, %eax
movzbl %r12b, %r10d
leaq 0x80(%rsp), %rbx
pushq $-0x1
popq %r9
movq %rbx, %rdi
movl 0x78(%rsp), %esi
movl 0x15c(%rsp), %edx
movl 0x158(%rsp), %ecx
movl %r14d, %r8d
pushq %rax
pushq %r10
pushq %r13
callq 0x15f90
addq $0x20, %rsp
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcc37
leal (,%rax,4), %esi
pushq $0x1
popq %r14
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcbd7
imull $0xc, %eax, %esi
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
movl 0x7c(%rbx), %esi
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
movq %rbp, %rdi
movl %r15d, %esi
callq 0xcbd7
pushq $0x14
popq %rsi
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
movl 0x38(%rbx), %esi
shll $0x2, %esi
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
movl 0x30(%rbx), %esi
shll $0x2, %esi
movq %rbp, %rdi
movl %r14d, %edx
callq 0x9880
leaq 0x3bd74(%rip), %rbx     # 0x4c575
leaq 0x20(%rsp), %r14
leaq 0x8(%rsp), %r15
leaq 0x50(%rsp), %r12
movq %rbp, %rdi
callq 0x97c0
cmpl $-0x1, %eax
je 0x108a4
movl %eax, %r13d
cmpb $0xa, %r13b
je 0x1087e
movzbl %r13b, %eax
testl %eax, %eax
je 0x108a4
movq 0x68(%rsp), %rax
testq %rax, %rax
jne 0x10862
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x15df2
movq %r12, %rdi
movq %r14, %rsi
callq 0x16afe
movq %r14, %rdi
callq 0x9a68
movq 0x68(%rsp), %rax
movq 0x58(%rsp), %rcx
shlq $0x5, %rax
leaq (%rcx,%rax), %rdi
addq $-0x20, %rdi
movsbl %r13b, %esi
callq 0x9440
jmp 0x10810
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x15df2
movq %r12, %rdi
movq %r14, %rsi
callq 0x16afe
movq %r14, %rdi
callq 0x9a68
jmp 0x10810
movq 0x58(%rsp), %rcx
movq 0x68(%rsp), %rax
movq %rax, %rdx
shlq $0x5, %rdx
cmpq $0x0, -0x18(%rcx,%rdx)
jne 0x108c5
decq %rax
movq %rax, 0x68(%rsp)
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9880
movq %rbp, %rdi
callq 0x94f0
movb 0x54a4d(%rip), %cl      # 0x6532c
movq 0x40(%rsp), %r15
movq 0x100(%rsp), %r13
movq 0x516fd(%rip), %r12     # 0x61ff0
leaq 0x238(%rsp), %rbp
movq 0x8(%r13), %rsi
movl 0x2ac(%rsp), %edx
movq 0x2b8(%rsp), %r9
movzbl 0x54a14(%rip), %eax     # 0x65329
movzbl 0x54a0d(%rip), %r10d    # 0x6532a
movq 0x548f4(%rip), %r11     # 0x65218
movq 0x547f5(%rip), %rbx     # 0x65120
testq %rbx, %rbx
je 0x10937
movq 0x547e1(%rip), %rbx     # 0x65118
movzbl %cl, %r8d
andl $0x1, %r8d
leaq 0x50(%rsp), %rcx
movq %r13, %rdi
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
callq 0x4463c
addq $0x20, %rsp
leaq 0x50(%rsp), %rdi
callq 0x197f0
cmpb $0x0, 0x548e6(%rip)     # 0x6524d
jne 0x10972
cmpb $0x1, 0x548c8(%rip)     # 0x65238
jne 0x1098a
movq 0x51677(%rip), %rdi     # 0x61ff0
leaq 0x39992(%rip), %rsi     # 0x4a312
callq 0x94e0
callq 0xcaaa
cmpb $0x1, 0x548f3(%rip)     # 0x65284
movq %r13, 0x100(%rsp)
jne 0x10d44
movl 0x548eb(%rip), %eax     # 0x65290
movq 0x48(%rsp), %rcx
movq %rcx, 0x54987(%rip)     # 0x65338
movq %r13, 0x54988(%rip)     # 0x65340
movq %rbp, 0x54989(%rip)     # 0x65348
movq %r15, 0x5498a(%rip)     # 0x65350
leaq 0x110(%rsp), %rcx
movq %rcx, 0x54983(%rip)     # 0x65358
movl %eax, 0x54985(%rip)     # 0x65360
movq 0x54666(%rip), %rax     # 0x65048
xorl %ecx, %ecx
orq 0x5461d(%rip), %rax     # 0x65008
je 0x10aac
cmpl $-0x1, 0x548f0(%rip)    # 0x652e8
je 0x10aac
movb 0x54848(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x39a41(%rip), %rax     # 0x4a460
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movl $0x568, %edi            # imm = 0x568
callq 0x9500
movq %rax, %rbp
movzbl 0x54812(%rip), %edx     # 0x65254
movzbl 0x5488a(%rip), %eax     # 0x652d3
movzbl 0x54881(%rip), %r10d    # 0x652d2
movzbl 0x5487b(%rip), %r11d    # 0x652d4
movzbl 0x547ed(%rip), %ebx     # 0x6524d
movzbl 0x547d0(%rip), %r14d    # 0x65238
leaq 0x545e1(%rip), %rsi     # 0x65050
leaq 0x110(%rsp), %r8
movq %rbp, %rdi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq %r14
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
pushq $0x1
callq 0x1ae28
addq $0x30, %rsp
cmpb $0x0, 0x560(%rbp)
je 0x122b4
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq %rbp, %rcx
movq %rcx, 0x70(%rsp)
movq %rcx, 0x548b0(%rip)     # 0x65368
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
movq %rsi, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movl 0x547c6(%rip), %eax     # 0x6529c
movl 0x547c8(%rip), %ecx     # 0x652a4
movl $0x80, %edx
movq %rdx, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
leaq 0x20(%rsp), %rdi
movq %rsi, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
cmpl %ecx, %eax
cmovgl %eax, %ecx
movslq %ecx, %rsi
callq 0x1bc78
xorl %eax, %eax
xchgl %eax, 0x1c(%rsp)
cmpq $0x0, 0xb8(%r15)
je 0x10b2d
movq %r15, %rdi
callq 0x18114
cmpq $0x0, 0x2f0(%rsp)
jne 0x10b8a
movb 0x5470e(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x50(%rsp)
movq %r12, 0x58(%rsp)
leaq 0x39923(%rip), %rax     # 0x4a479
movq %rax, 0x60(%rsp)
movb %bl, 0x68(%rsp)
movzbl 0x5474a(%rip), %edx     # 0x652b0
movzbl 0x546cb(%rip), %ecx     # 0x65238
xorl $0x1, %edx
leaq 0x238(%rsp), %rdi
pushq $-0x1
popq %rsi
callq 0x180fe
leaq 0x50(%rsp), %rdi
callq 0x174a8
movq 0x48(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movb 0x546b1(%rip), %bl      # 0x6524c
xorl %r13d, %r13d
xorl %edi, %edi
callq 0x9490
movq %rax, 0x50(%rsp)
movq %r12, 0x58(%rsp)
leaq 0x398e0(%rip), %rax     # 0x4a496
movq %rax, 0x60(%rsp)
movb %bl, 0x68(%rsp)
movzbl 0x546ea(%rip), %edx     # 0x652b0
movzbl 0x5466b(%rip), %ecx     # 0x65238
xorl $0x1, %edx
pushq $-0x1
popq %rsi
movq %r15, %rdi
callq 0x180fe
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x174a8
movb 0x5465d(%rip), %bpl     # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, (%rbx)
movq %r12, 0x8(%rbx)
leaq 0x398ae(%rip), %rax     # 0x4a4b2
movq %rax, 0x10(%rbx)
movb %bpl, 0x18(%rbx)
cmpb $0x1, 0x54695(%rip)     # 0x652a8
jne 0x10c33
callq 0x9730
movl %eax, %r13d
movq 0x54474(%rip), %rdi     # 0x65098
movl %eax, %esi
callq 0x12b23
xorl %eax, %eax
xchgl %eax, 0x545d9(%rip)     # 0x6520c
xorl %ebp, %ebp
leaq 0x1c(%rsp), %r15
leaq 0x36627(%rip), %r14     # 0x47268
xorl %r12d, %r12d
movslq 0x54651(%rip), %rbx     # 0x6529c
cmpq %rbx, %r12
jge 0x110d1
movq 0x28(%rsp), %rax
movl %r12d, (%rax,%rbp)
movq 0x28(%rsp), %rax
movq %r15, 0x8(%rax,%rbp)
movl 0x5462f(%rip), %ecx     # 0x6529c
decl %ecx
movb 0x54660(%rip), %al      # 0x652d5
cmpq %rcx, %r12
jne 0x10c90
movq 0x28(%rsp), %rdi
addq %rbp, %rdi
testb $0x1, %al
je 0x10cd6
callq 0x12bab
jmp 0x10d38
testb $0x1, %al
je 0x10cdd
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x1ef5(%rip), %rsi      # 0x12bab
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x10d1d
callq 0x12f1a
jmp 0x10d38
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x221b(%rip), %rsi      # 0x12f1a
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movq 0x80(%rsp), %rax
movq (%rax,%r12,8), %rdi
callq 0x9940
movq %r14, %rdi
xorl %esi, %esi
callq 0x9180
incq %r12
addq $0x10, %rbp
jmp 0x10c44
movl 0x54532(%rip), %eax     # 0x6527c
testl %eax, %eax
jle 0x11325
cmpl $0x1, %eax
jne 0x11669
movq 0x48(%rsp), %rax
movq %rax, 0x54609(%rip)     # 0x65370
movq %r13, 0x5460a(%rip)     # 0x65378
movq %rbp, 0x5460b(%rip)     # 0x65380
movq %r15, 0x5460c(%rip)     # 0x65388
leaq 0x110(%rsp), %rax
movq %rax, 0x54605(%rip)     # 0x65390
movb 0x544bb(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x396cd(%rip), %rax     # 0x4a479
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movzbl 0x544ee(%rip), %edx     # 0x652b0
movzbl 0x5446f(%rip), %ecx     # 0x65238
xorl $0x1, %edx
pushq $-0x1
popq %rsi
movq %rbp, %rdi
callq 0x180fe
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
callq 0x174a8
movb 0x54461(%rip), %bpl     # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, (%rbx)
movq %r12, 0x8(%rbx)
leaq 0x39696(%rip), %rax     # 0x4a496
movq %rax, 0x10(%rbx)
movb %bpl, 0x18(%rbx)
movzbl 0x544a1(%rip), %edx     # 0x652b0
movzbl 0x54422(%rip), %ecx     # 0x65238
xorl $0x1, %edx
pushq $-0x1
popq %rsi
movq %r15, %rdi
callq 0x180fe
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq 0x54213(%rip), %rax     # 0x65048
xorl %ecx, %ecx
orq 0x541ca(%rip), %rax     # 0x65008
je 0x10f00
cmpl $-0x1, 0x5449d(%rip)    # 0x652e8
je 0x10f00
movb 0x543f5(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x395ee(%rip), %rax     # 0x4a460
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movl $0x568, %edi            # imm = 0x568
callq 0x9500
movq %rax, %r15
movzbl 0x543bf(%rip), %edx     # 0x65254
movzbl 0x54437(%rip), %eax     # 0x652d3
movzbl 0x5442e(%rip), %r10d    # 0x652d2
movzbl 0x54428(%rip), %r11d    # 0x652d4
movzbl 0x5439a(%rip), %ebx     # 0x6524d
movzbl 0x5437d(%rip), %r14d    # 0x65238
leaq 0x5418e(%rip), %rsi     # 0x65050
leaq 0x110(%rsp), %r8
movq %r15, %rdi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq %r14
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
pushq $0x1
callq 0x1ae28
addq $0x30, %rsp
cmpb $0x0, 0x560(%r15)
je 0x1236f
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq %r15, %rcx
movq %rcx, 0x70(%rsp)
movq %rcx, 0x5448c(%rip)     # 0x65398
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
movq %rsi, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movl 0x54372(%rip), %eax     # 0x6529c
movl 0x54374(%rip), %ecx     # 0x652a4
movl $0x80, %edx
movq %rdx, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
leaq 0x20(%rsp), %rdi
movq %rsi, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
cmpl %ecx, %eax
cmovgl %eax, %ecx
movslq %ecx, %rsi
callq 0x1bc78
xorl %r13d, %r13d
xorl %eax, %eax
xchgl %eax, 0x1c(%rsp)
movb 0x542d4(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x50(%rsp)
movq %r12, 0x58(%rsp)
leaq 0x3a18f(%rip), %rax     # 0x4b11f
movq %rax, 0x60(%rsp)
movb %bl, 0x68(%rsp)
cmpb $0x1, 0x54308(%rip)     # 0x652a8
jne 0x10fc0
callq 0x9730
movl %eax, %r13d
movq 0x540e7(%rip), %rdi     # 0x65098
movl %eax, %esi
callq 0x12b23
xorl %eax, %eax
xchgl %eax, 0x5424c(%rip)     # 0x6520c
xorl %ebp, %ebp
leaq 0x1c(%rsp), %r12
leaq 0x362ca(%rip), %r14     # 0x47298
xorl %r15d, %r15d
movslq 0x542c4(%rip), %rbx     # 0x6529c
cmpq %rbx, %r15
jge 0x11a1b
movq 0x28(%rsp), %rax
movl %r15d, (%rax,%rbp)
movq 0x28(%rsp), %rax
movq %r12, 0x8(%rax,%rbp)
movl 0x542a2(%rip), %ecx     # 0x6529c
decl %ecx
movb 0x542d3(%rip), %al      # 0x652d5
cmpq %rcx, %r15
jne 0x1101d
movq 0x28(%rsp), %rdi
addq %rbp, %rdi
testb $0x1, %al
je 0x11063
callq 0x143ea
jmp 0x110c5
testb $0x1, %al
je 0x1106a
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x33a7(%rip), %rsi      # 0x143ea
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x110aa
callq 0x146ac
jmp 0x110c5
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x3620(%rip), %rsi      # 0x146ac
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movq 0x80(%rsp), %rax
movq (%rax,%r15,8), %rdi
callq 0x9940
movq %r14, %rdi
xorl %esi, %esi
callq 0x9180
incq %r15
addq $0x10, %rbp
jmp 0x10fd1
cmpb $0x1, 0x541d0(%rip)     # 0x652a8
jne 0x11254
pushq $0xa
popq %r14
pushq $0x1
popq %rbp
subl $0x1, %r14d
jb 0x110f4
movl %ebp, %edi
callq 0x93a0
jmp 0x110e5
pushq $0x1
popq %r14
movl 0x5410e(%rip), %eax     # 0x6520c
testl %eax, %eax
jle 0x11254
movl %r13d, %edi
movl %ebx, %esi
callq 0x14189
testb %al, %al
je 0x1123e
movslq 0x5417d(%rip), %rax     # 0x6529c
leal 0x1(%rax), %ecx
movl %ecx, 0x54174(%rip)     # 0x6529c
movq 0x28(%rsp), %rcx
movq %rax, %rdx
shlq $0x4, %rdx
movl %eax, (%rcx,%rdx)
movslq 0x5415e(%rip), %rbp     # 0x6529c
decq %rbp
movq 0x28(%rsp), %rax
shlq $0x4, %rbp
movq %r15, 0x8(%rax,%rbp)
cmpb $0x1, 0x5417f(%rip)     # 0x652d5
jne 0x11197
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r12
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x1a34(%rip), %rsi      # 0x12bab
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r12, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x111d4
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r12
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x1d64(%rip), %rsi      # 0x12f1a
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r12, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movslq 0x540c1(%rip), %rax     # 0x6529c
movq 0x80(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rdi
callq 0x9940
leaq 0x36084(%rip), %rdi     # 0x47278
xorl %esi, %esi
callq 0x9180
movq 0x50dee(%rip), %rdi     # 0x61ff0
leaq 0x392cc(%rip), %rsi     # 0x4a4d5
callq 0x94e0
movq %rax, %rdi
movl %r13d, %esi
callq 0x9930
movq %rax, %rdi
leaq 0x392b7(%rip), %rsi     # 0x4a4da
callq 0x94e0
movl 0x5406e(%rip), %esi     # 0x6529c
movq %rax, %rdi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0xa
popq %rbp
subl $0x1, %ebp
jb 0x110f8
movl %r14d, %edi
callq 0x93a0
jmp 0x11241
movl 0x1c(%rsp), %eax
cmpl 0x5403e(%rip), %eax     # 0x6529c
jge 0x11270
leaq 0x36021(%rip), %rdi     # 0x47288
xorl %esi, %esi
callq 0x9180
jmp 0x11254
cmpb $0x1, 0x54031(%rip)     # 0x652a8
jne 0x11288
movq 0x53e18(%rip), %rdi     # 0x65098
movl %r13d, %esi
callq 0xcf78
leaq 0x50(%rsp), %rdi
callq 0x174a8
movq 0x70(%rsp), %rbx
testq %rbx, %rbx
je 0x112b1
movq %rbx, %rdi
callq 0x1bd84
movl $0x568, %esi            # imm = 0x568
movq %rbx, %rdi
callq 0x9510
movl 0x53fe5(%rip), %eax     # 0x6529c
xorl %r15d, %r15d
pushq $0x8
popq %rbx
movq 0x100(%rsp), %r12
leal -0x1(%rax), %ecx
movslq %ecx, %rcx
cmpq %rcx, %r15
jge 0x112ff
movq 0x80(%rsp), %rcx
movq (%rcx,%r15,8), %r14
testq %r14, %r14
je 0x112fa
movq %r14, %rdi
callq 0x1be38
movq %r14, %rdi
movq %rbx, %rsi
callq 0x9510
movl 0x53fa2(%rip), %eax     # 0x6529c
incq %r15
jmp 0x112c5
movq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x18114
leaq 0x20(%rsp), %rdi
callq 0x1c290
leaq 0x78(%rsp), %rdi
callq 0x37754
jmp 0x120ad
movq 0x48(%rsp), %rax
movq %rax, 0x540af(%rip)     # 0x653e0
movq %r13, 0x540b0(%rip)     # 0x653e8
movq %rbp, 0x540b1(%rip)     # 0x653f0
leaq 0x110(%rsp), %rax
movq %rax, 0x540aa(%rip)     # 0x653f8
movb 0x53ef8(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x3910a(%rip), %rax     # 0x4a479
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movzbl 0x53f2b(%rip), %edx     # 0x652b0
movzbl 0x53eac(%rip), %ecx     # 0x65238
xorl $0x1, %edx
pushq $-0x1
popq %rsi
movq %rbp, %rdi
callq 0x180fe
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq 0x53c9d(%rip), %rax     # 0x65048
xorl %r15d, %r15d
orq 0x53c53(%rip), %rax     # 0x65008
je 0x11474
cmpl $-0x1, 0x53f26(%rip)    # 0x652e8
je 0x11474
movb 0x53e7e(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x39077(%rip), %rax     # 0x4a460
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movl $0x568, %edi            # imm = 0x568
callq 0x9500
movq %rax, %r15
movzbl 0x53e48(%rip), %edx     # 0x65254
movzbl 0x53ec0(%rip), %eax     # 0x652d3
movzbl 0x53eb7(%rip), %r10d    # 0x652d2
movzbl 0x53eb1(%rip), %r11d    # 0x652d4
movzbl 0x53e23(%rip), %ebx     # 0x6524d
movzbl 0x53e06(%rip), %r14d    # 0x65238
leaq 0x53c17(%rip), %rsi     # 0x65050
leaq 0x110(%rsp), %r8
movq %r15, %rdi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq %r14
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
pushq $0x1
callq 0x1ae28
addq $0x30, %rsp
cmpb $0x0, 0x560(%r15)
je 0x12350
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq %r15, 0x53f85(%rip)     # 0x65400
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
movq %rsi, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movl 0x53e03(%rip), %eax     # 0x6529c
movl 0x53e05(%rip), %ecx     # 0x652a4
movl $0x80, %edx
movq %rdx, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
leaq 0x20(%rsp), %rdi
movq %rsi, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
cmpl %ecx, %eax
cmovgl %eax, %ecx
movslq %ecx, %rsi
callq 0x1bc78
movq %r15, 0x70(%rsp)
xorl %r13d, %r13d
xorl %eax, %eax
xchgl %eax, 0x1c(%rsp)
movb 0x53d60(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x50(%rsp)
movq %r12, 0x58(%rsp)
leaq 0x39d02(%rip), %rax     # 0x4b206
movq %rax, 0x60(%rsp)
movb %bl, 0x68(%rsp)
cmpb $0x1, 0x53d94(%rip)     # 0x652a8
jne 0x11534
callq 0x9730
movl %eax, %r13d
movq 0x53b73(%rip), %rdi     # 0x65098
movl %eax, %esi
callq 0x12b23
xorl %eax, %eax
xchgl %eax, 0x53cd8(%rip)     # 0x6520c
pushq $0xa
popq %r15
xorl %ebp, %ebp
leaq 0x1c(%rsp), %r12
xorl %r14d, %r14d
movslq 0x53d53(%rip), %rbx     # 0x6529c
cmpq %rbx, %r14
jge 0x11646
movq 0x28(%rsp), %rax
movl %r14d, (%rax,%rbp)
movq 0x28(%rsp), %rax
movq %r12, 0x8(%rax,%rbp)
movl 0x53d31(%rip), %ecx     # 0x6529c
decl %ecx
movb 0x53d62(%rip), %al      # 0x652d5
cmpq %rcx, %r14
jne 0x1158e
movq 0x28(%rsp), %rdi
addq %rbp, %rdi
testb $0x1, %al
je 0x115d4
callq 0x15712
jmp 0x1163a
testb $0x1, %al
je 0x115db
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x415e(%rip), %rsi      # 0x15712
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x1161b
callq 0x159ab
jmp 0x1163a
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x43ae(%rip), %rsi      # 0x159ab
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movq 0x80(%rsp), %rax
movq (%rax,%r14,8), %rdi
callq 0x9940
leaq 0x35cc5(%rip), %rdi     # 0x472f8
xorl %esi, %esi
callq 0x9180
incq %r14
addq $0x10, %rbp
jmp 0x11542
cmpb $0x1, 0x53c5b(%rip)     # 0x652a8
jne 0x11bc9
pushq $0x1
popq %rbp
subl $0x1, %r15d
jb 0x11a69
movl %ebp, %edi
callq 0x93a0
jmp 0x11656
movl %eax, %ecx
andl $0x7ffffffe, %ecx       # imm = 0x7FFFFFFE
cmpl $0x2, %ecx
jne 0x122d3
cmpl $0x2, %eax
sete %bpl
movb 0x53bc5(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x38dd7(%rip), %rax     # 0x4a479
movq %rax, 0x88(%rsp)
movb %bl, 0x90(%rsp)
movzbl 0x53bf8(%rip), %edx     # 0x652b0
movzbl 0x53b79(%rip), %ecx     # 0x65238
xorl $0x1, %edx
leaq 0x238(%rsp), %rbx
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0x180fe
leaq 0x78(%rsp), %r14
movq %r14, %rdi
callq 0x174a8
movb 0x53b63(%rip), %r15b    # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, (%r14)
movq %r12, 0x8(%r14)
leaq 0x38d98(%rip), %rax     # 0x4a496
movq %rax, 0x10(%r14)
movb %r15b, 0x18(%r14)
movzbl 0x53ba3(%rip), %edx     # 0x652b0
movzbl 0x53b24(%rip), %ecx     # 0x65238
xorl $0x1, %edx
pushq $-0x1
popq %rsi
movq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x180fe
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq 0x53910(%rip), %rax     # 0x65048
xorl %ecx, %ecx
orq 0x538c7(%rip), %rax     # 0x65008
je 0x11813
cmpl $-0x1, 0x53b9a(%rip)    # 0x652e8
je 0x11813
movb 0x53af1(%rip), %r14b    # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x78(%rsp)
movq %r12, 0x80(%rsp)
leaq 0x38cea(%rip), %rax     # 0x4a460
movq %rax, 0x88(%rsp)
movb %r14b, 0x90(%rsp)
movl $0x568, %edi            # imm = 0x568
callq 0x9500
movq %rax, %rbx
movzbl 0x53aba(%rip), %edx     # 0x65254
movzbl 0x53b32(%rip), %eax     # 0x652d3
movzbl 0x53b29(%rip), %r10d    # 0x652d2
movzbl 0x53b23(%rip), %r11d    # 0x652d4
movzbl 0x53a94(%rip), %r14d    # 0x6524d
movzbl 0x53a77(%rip), %r15d    # 0x65238
leaq 0x53888(%rip), %rsi     # 0x65050
leaq 0x110(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq %r15
pushq %r14
pushq %r11
pushq %r10
pushq %rax
pushq $0x1
callq 0x1ae28
addq $0x30, %rsp
cmpb $0x0, 0x560(%rbx)
movq 0x40(%rsp), %r14
je 0x1238e
leaq 0x78(%rsp), %rdi
callq 0x174a8
movq %rbx, %rcx
leaq 0x238(%rsp), %rbx
movq %rcx, 0x70(%rsp)
movq %rcx, 0x53b81(%rip)     # 0x653a0
movq 0x48(%rsp), %rax
movq %rax, 0x53b7d(%rip)     # 0x653a8
movq %r13, 0x53b7e(%rip)     # 0x653b0
movq %rbx, 0x53b7f(%rip)     # 0x653b8
movq %r14, 0x53b80(%rip)     # 0x653c0
leaq 0x110(%rsp), %rax
movq %rax, 0x53b79(%rip)     # 0x653c8
movb %bpl, 0x53b7a(%rip)     # 0x653d0
movabsq $-0x100000000, %rsi     # imm = 0xFFFFFFFF00000000
movq %rsi, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
movl 0x53a28(%rip), %eax     # 0x6529c
movl 0x53a2a(%rip), %ecx     # 0x652a4
movl $0x80, %edx
movq %rdx, 0x88(%rsp)
andq $0x0, 0x90(%rsp)
leaq 0x20(%rsp), %rdi
movq %rsi, (%rdi)
andq $0x0, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
cmpl %ecx, %eax
cmovgl %eax, %ecx
movslq %ecx, %rsi
callq 0x1bc78
xorl %r13d, %r13d
xorl %eax, %eax
xchgl %eax, 0x1c(%rsp)
movb 0x5398a(%rip), %bl      # 0x6524c
xorl %edi, %edi
callq 0x9490
movq %rax, 0x50(%rsp)
movq %r12, 0x58(%rsp)
leaq 0x398b0(%rip), %rax     # 0x4b18a
movq %rax, 0x60(%rsp)
movb %bl, 0x68(%rsp)
cmpb $0x1, 0x539be(%rip)     # 0x652a8
jne 0x1190a
callq 0x9730
movl %eax, %r13d
movq 0x5379d(%rip), %rdi     # 0x65098
movl %eax, %esi
callq 0x12b23
xorl %eax, %eax
xchgl %eax, 0x53902(%rip)     # 0x6520c
xorl %ebp, %ebp
leaq 0x1c(%rsp), %r12
leaq 0x359b0(%rip), %r14     # 0x472c8
xorl %r15d, %r15d
movslq 0x5397a(%rip), %rbx     # 0x6529c
cmpq %rbx, %r15
jge 0x11a42
movq 0x28(%rsp), %rax
movl %r15d, (%rax,%rbp)
movq 0x28(%rsp), %rax
movq %r12, 0x8(%rax,%rbp)
movl 0x53958(%rip), %ecx     # 0x6529c
decl %ecx
movb 0x53989(%rip), %al      # 0x652d5
cmpq %rcx, %r15
jne 0x11967
movq 0x28(%rsp), %rdi
addq %rbp, %rdi
testb $0x1, %al
je 0x119ad
callq 0x14bc2
jmp 0x11a0f
testb $0x1, %al
je 0x119b4
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x3235(%rip), %rsi      # 0x14bc2
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x119f4
callq 0x14ed9
jmp 0x11a0f
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %rbx
movq 0x28(%rsp), %rax
addq %rbp, %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
leaq 0x3503(%rip), %rsi      # 0x14ed9
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %rbx, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movq 0x80(%rsp), %rax
movq (%rax,%r15,8), %rdi
callq 0x9940
movq %r14, %rdi
xorl %esi, %esi
callq 0x9180
incq %r15
addq $0x10, %rbp
jmp 0x1191b
cmpb $0x1, 0x53886(%rip)     # 0x652a8
jne 0x11dd9
pushq $0xa
popq %r14
pushq $0x1
popq %rbp
subl $0x1, %r14d
jb 0x11c79
movl %ebp, %edi
callq 0x93a0
jmp 0x11a2f
cmpb $0x1, 0x5385f(%rip)     # 0x652a8
jne 0x11fe9
pushq $0xa
popq %r14
pushq $0x1
popq %rbp
subl $0x1, %r14d
jb 0x11e89
movl %ebp, %edi
callq 0x93a0
jmp 0x11a56
pushq $0x1
popq %r14
movl 0x53799(%rip), %eax     # 0x6520c
testl %eax, %eax
jle 0x11bc9
movl %r13d, %edi
movl %ebx, %esi
callq 0x14189
testb %al, %al
je 0x11bb3
movslq 0x53808(%rip), %rax     # 0x6529c
leal 0x1(%rax), %ecx
movl %ecx, 0x537ff(%rip)     # 0x6529c
movq 0x28(%rsp), %rcx
movq %rax, %rdx
shlq $0x4, %rdx
movl %eax, (%rcx,%rdx)
movslq 0x537e9(%rip), %rbp     # 0x6529c
decq %rbp
movq 0x28(%rsp), %rax
shlq $0x4, %rbp
movq %r12, 0x8(%rax,%rbp)
cmpb $0x1, 0x5380a(%rip)     # 0x652d5
jne 0x11b0c
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x3c26(%rip), %rsi      # 0x15712
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x11b49
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x3e80(%rip), %rsi      # 0x159ab
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movslq 0x5374c(%rip), %rax     # 0x6529c
movq 0x80(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rdi
callq 0x9940
leaq 0x3579f(%rip), %rdi     # 0x47308
xorl %esi, %esi
callq 0x9180
movq 0x50479(%rip), %rdi     # 0x61ff0
leaq 0x38957(%rip), %rsi     # 0x4a4d5
callq 0x94e0
movq %rax, %rdi
movl %r13d, %esi
callq 0x9930
movq %rax, %rdi
leaq 0x38942(%rip), %rsi     # 0x4a4da
callq 0x94e0
movl 0x536f9(%rip), %esi     # 0x6529c
movq %rax, %rdi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0xa
popq %rbp
subl $0x1, %ebp
jb 0x11a6d
movl %r14d, %edi
callq 0x93a0
jmp 0x11bb6
movl 0x1c(%rsp), %eax
cmpl 0x536c9(%rip), %eax     # 0x6529c
jge 0x11be5
leaq 0x3573c(%rip), %rdi     # 0x47318
xorl %esi, %esi
callq 0x9180
jmp 0x11bc9
cmpb $0x1, 0x536bc(%rip)     # 0x652a8
jne 0x11bfd
movq 0x534a3(%rip), %rdi     # 0x65098
movl %r13d, %esi
callq 0xcf78
leaq 0x50(%rsp), %rdi
callq 0x174a8
movq 0x70(%rsp), %rbx
testq %rbx, %rbx
je 0x11c26
movq %rbx, %rdi
callq 0x1bd84
movl $0x568, %esi            # imm = 0x568
movq %rbx, %rdi
callq 0x9510
movl 0x53670(%rip), %eax     # 0x6529c
xorl %r15d, %r15d
pushq $0x8
popq %rbx
movq 0x100(%rsp), %r12
leal -0x1(%rax), %ecx
movslq %ecx, %rcx
cmpq %rcx, %r15
jge 0x11c74
movq 0x80(%rsp), %rcx
movq (%rcx,%r15,8), %r14
testq %r14, %r14
je 0x11c6f
movq %r14, %rdi
callq 0x1be38
movq %r14, %rdi
movq %rbx, %rsi
callq 0x9510
movl 0x5362d(%rip), %eax     # 0x6529c
incq %r15
jmp 0x11c3a
jmp 0x12094
pushq $0x1
popq %r14
movl 0x53589(%rip), %eax     # 0x6520c
testl %eax, %eax
jle 0x11dd9
movl %r13d, %edi
movl %ebx, %esi
callq 0x14189
testb %al, %al
je 0x11dc3
movslq 0x535f8(%rip), %rax     # 0x6529c
leal 0x1(%rax), %ecx
movl %ecx, 0x535ef(%rip)     # 0x6529c
movq 0x28(%rsp), %rcx
movq %rax, %rdx
shlq $0x4, %rdx
movl %eax, (%rcx,%rdx)
movslq 0x535d9(%rip), %rbp     # 0x6529c
decq %rbp
movq 0x28(%rsp), %rax
shlq $0x4, %rbp
movq %r12, 0x8(%rax,%rbp)
cmpb $0x1, 0x535fa(%rip)     # 0x652d5
jne 0x11d1c
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x26ee(%rip), %rsi      # 0x143ea
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x11d59
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x2971(%rip), %rsi      # 0x146ac
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movslq 0x5353c(%rip), %rax     # 0x6529c
movq 0x80(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rdi
callq 0x9940
leaq 0x3552f(%rip), %rdi     # 0x472a8
xorl %esi, %esi
callq 0x9180
movq 0x50269(%rip), %rdi     # 0x61ff0
leaq 0x38747(%rip), %rsi     # 0x4a4d5
callq 0x94e0
movq %rax, %rdi
movl %r13d, %esi
callq 0x9930
movq %rax, %rdi
leaq 0x38732(%rip), %rsi     # 0x4a4da
callq 0x94e0
movl 0x534e9(%rip), %esi     # 0x6529c
movq %rax, %rdi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0xa
popq %rbp
subl $0x1, %ebp
jb 0x11c7d
movl %r14d, %edi
callq 0x93a0
jmp 0x11dc6
movl 0x1c(%rsp), %eax
cmpl 0x534b9(%rip), %eax     # 0x6529c
jge 0x11df5
leaq 0x354cc(%rip), %rdi     # 0x472b8
xorl %esi, %esi
callq 0x9180
jmp 0x11dd9
cmpb $0x1, 0x534ac(%rip)     # 0x652a8
jne 0x11e0d
movq 0x53293(%rip), %rdi     # 0x65098
movl %r13d, %esi
callq 0xcf78
leaq 0x50(%rsp), %rdi
callq 0x174a8
movq 0x70(%rsp), %rbx
testq %rbx, %rbx
je 0x11e36
movq %rbx, %rdi
callq 0x1bd84
movl $0x568, %esi            # imm = 0x568
movq %rbx, %rdi
callq 0x9510
movl 0x53460(%rip), %eax     # 0x6529c
xorl %r15d, %r15d
pushq $0x8
popq %rbx
movq 0x100(%rsp), %r12
leal -0x1(%rax), %ecx
movslq %ecx, %rcx
cmpq %rcx, %r15
jge 0x11e84
movq 0x80(%rsp), %rcx
movq (%rcx,%r15,8), %r14
testq %r14, %r14
je 0x11e7f
movq %r14, %rdi
callq 0x1be38
movq %r14, %rdi
movq %rbx, %rsi
callq 0x9510
movl 0x5341d(%rip), %eax     # 0x6529c
incq %r15
jmp 0x11e4a
jmp 0x12094
pushq $0x1
popq %r14
movl 0x53379(%rip), %eax     # 0x6520c
testl %eax, %eax
jle 0x11fe9
movl %r13d, %edi
movl %ebx, %esi
callq 0x14189
testb %al, %al
je 0x11fd3
movslq 0x533e8(%rip), %rax     # 0x6529c
leal 0x1(%rax), %ecx
movl %ecx, 0x533df(%rip)     # 0x6529c
movq 0x28(%rsp), %rcx
movq %rax, %rdx
shlq $0x4, %rdx
movl %eax, (%rcx,%rdx)
movslq 0x533c9(%rip), %rbp     # 0x6529c
decq %rbp
movq 0x28(%rsp), %rax
shlq $0x4, %rbp
movq %r12, 0x8(%rax,%rbp)
cmpb $0x1, 0x533ea(%rip)     # 0x652d5
jne 0x11f2c
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x2cb6(%rip), %rsi      # 0x14bc2
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
jmp 0x11f69
pushq $0x8
popq %rdi
callq 0x9500
movq %rax, %r15
addq 0x28(%rsp), %rbp
movq %rbp, 0x10(%rsp)
movq %rax, %rdi
leaq 0x2f8e(%rip), %rsi      # 0x14ed9
leaq 0x10(%rsp), %rdx
callq 0x1bd0a
movq %r15, 0x8(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1bcbc
movslq 0x5332c(%rip), %rax     # 0x6529c
movq 0x80(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rdi
callq 0x9940
leaq 0x3534f(%rip), %rdi     # 0x472d8
xorl %esi, %esi
callq 0x9180
movq 0x50059(%rip), %rdi     # 0x61ff0
leaq 0x38537(%rip), %rsi     # 0x4a4d5
callq 0x94e0
movq %rax, %rdi
movl %r13d, %esi
callq 0x9930
movq %rax, %rdi
leaq 0x38522(%rip), %rsi     # 0x4a4da
callq 0x94e0
movl 0x532d9(%rip), %esi     # 0x6529c
movq %rax, %rdi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0xa
popq %rbp
subl $0x1, %ebp
jb 0x11e8d
movl %r14d, %edi
callq 0x93a0
jmp 0x11fd6
movl 0x1c(%rsp), %eax
cmpl 0x532a9(%rip), %eax     # 0x6529c
jge 0x12005
leaq 0x352ec(%rip), %rdi     # 0x472e8
xorl %esi, %esi
callq 0x9180
jmp 0x11fe9
cmpb $0x1, 0x5329c(%rip)     # 0x652a8
jne 0x1201d
movq 0x53083(%rip), %rdi     # 0x65098
movl %r13d, %esi
callq 0xcf78
leaq 0x50(%rsp), %rdi
callq 0x174a8
movq 0x70(%rsp), %rbx
testq %rbx, %rbx
je 0x12046
movq %rbx, %rdi
callq 0x1bd84
movl $0x568, %esi            # imm = 0x568
movq %rbx, %rdi
callq 0x9510
movl 0x53250(%rip), %eax     # 0x6529c
xorl %r15d, %r15d
pushq $0x8
popq %rbx
movq 0x100(%rsp), %r12
leal -0x1(%rax), %ecx
movslq %ecx, %rcx
cmpq %rcx, %r15
jge 0x12094
movq 0x80(%rsp), %rcx
movq (%rcx,%r15,8), %r14
testq %r14, %r14
je 0x1208f
movq %r14, %rdi
callq 0x1be38
movq %r14, %rdi
movq %rbx, %rsi
callq 0x9510
movl 0x5320d(%rip), %eax     # 0x6529c
incq %r15
jmp 0x1205a
leaq 0x20(%rsp), %rdi
callq 0x1c290
leaq 0x78(%rsp), %rdi
callq 0x37754
movq 0x40(%rsp), %rbx
cmpq $0x0, 0x2f0(%rsp)
je 0x120c5
leaq 0x238(%rsp), %rdi
callq 0x18114
testq %rbx, %rbx
je 0x120df
movq %rbx, %rdi
callq 0x18324
movl $0x188, %esi            # imm = 0x188
movq %rbx, %rdi
callq 0x9510
movzbl 0x53242(%rip), %esi     # 0x65328
movq %r12, %rdi
callq 0x1841c
xorl %ebx, %ebx
cmpq 0x170(%rsp), %rbx
jae 0x12116
movq 0x160(%rsp), %rax
movq (%rax,%rbx,8), %rdi
testq %rdi, %rdi
je 0x12111
movq (%rdi), %rax
callq *0x8(%rax)
incq %rbx
jmp 0x120f0
xorl %ebx, %ebx
cmpq 0x148(%rsp), %rbx
jae 0x1213e
movq 0x138(%rsp), %rax
movq (%rax,%rbx,8), %rdi
testq %rdi, %rdi
je 0x12139
movq (%rdi), %rax
callq *0x8(%rax)
incq %rbx
jmp 0x12118
xorl %ebx, %ebx
cmpq 0x190(%rsp), %rbx
jae 0x12166
movq 0x180(%rsp), %rax
movq (%rax,%rbx,8), %rdi
testq %rdi, %rdi
je 0x12161
movq (%rdi), %rax
callq *0x8(%rax)
incq %rbx
jmp 0x12140
movq 0x48(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq (%r12), %rax
movq %r12, %rdi
callq *0x8(%rax)
movq 0x108(%rsp), %rbx
movq %rbx, %rdi
callq 0x188fe
movl $0x4020, %esi           # imm = 0x4020
movq %rbx, %rdi
callq 0x9510
leaq 0x198(%rsp), %rdi
callq 0x174a8
leaq 0x238(%rsp), %rdi
callq 0x18324
leaq 0x178(%rsp), %rdi
callq 0x192d8
leaq 0x130(%rsp), %rdi
callq 0x192d8
leaq 0x158(%rsp), %rdi
callq 0x192d8
leaq 0x110(%rsp), %rdi
callq 0x18ebc
addq $0x42278, %rsp          # imm = 0x42278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4fdf1(%rip), %rdi     # 0x61ff0
leaq 0x38154(%rip), %rsi     # 0x4a35a
callq 0x94e0
movq %rax, %rdi
callq 0x9210
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fd30(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
movq 0x4fdb7(%rip), %rdi     # 0x61ff0
leaq 0x3811a(%rip), %rsi     # 0x4a35a
callq 0x94e0
movq %rax, %rdi
callq 0x9210
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fcf6(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
movq 0x4fd7d(%rip), %rdi     # 0x61ff0
leaq 0x38082(%rip), %rsi     # 0x4a2fc
callq 0x94e0
movl 0x53027(%rip), %esi     # 0x652ac
movq %rax, %rdi
callq 0x9930
movq %rax, %rdi
callq 0x9210
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fcae(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fc8f(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
movq 0x4fd16(%rip), %rdi     # 0x61ff0
leaq 0x363e6(%rip), %rsi     # 0x486c7
callq 0x94e0
movl 0x52f90(%rip), %esi     # 0x6527c
movq %rax, %rdi
callq 0x9930
leaq 0x38036(%rip), %rsi     # 0x4a331
movq %rax, %rdi
callq 0x94e0
jmp 0x1228d
pushq $0x10
popq %rdi
callq 0x9220
movq %rax, %rbx
leaq 0x38137(%rip), %rsi     # 0x4a44e
leaq 0x52d32(%rip), %rdx     # 0x65050
leaq 0x78(%rsp), %rdi
callq 0x17c58
movb $0x1, %bpl
leaq 0x78(%rsp), %rsi
movq %rbx, %rdi
callq 0x1adfc
xorl %ebp, %ebp
leaq 0x4e78f(%rip), %rsi     # 0x60ad0
movq 0x4fc58(%rip), %rdx     # 0x61fa0
movq %rbx, %rdi
callq 0x9910
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fbf3(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fbd4(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
pushq $0x4
popq %rdi
callq 0x9220
movl $0x1, (%rax)
movq 0x4fbb5(%rip), %rsi     # 0x61f58
movq %rax, %rdi
xorl %edx, %edx
callq 0x9910
movq %rax, %r13
leaq 0x78(%rsp), %rdi
callq 0x9a68
testb %bpl, %bpl
jne 0x123c7
jmp 0x1264a
movq %rax, %r13
movq %rbx, %rdi
callq 0x9360
jmp 0x1264a
movq %rax, %r13
movl $0x568, %esi            # imm = 0x568
movq %rbx, %rdi
jmp 0x123f3
jmp 0x123e8
movq %rax, %r13
jmp 0x12412
movq %rax, %r13
movl $0x568, %esi            # imm = 0x568
movq %r15, %rdi
callq 0x9510
jmp 0x124dd
movq %rax, %r13
testb %bpl, %bpl
je 0x12476
leaq 0x1d8(%rsp), %rdi
callq 0x9a68
leaq 0x1f8(%rsp), %rdi
callq 0x9a68
jmp 0x12439
jmp 0x12636
jmp 0x12448
jmp 0x12454
jmp 0x12448
jmp 0x12454
jmp 0x12454
jmp 0x12454
jmp 0x12454
jmp 0x12454
movq %rax, %r13
leaq 0x218(%rsp), %rdi
callq 0x9a68
jmp 0x12476
movq %rax, %r13
jmp 0x12790
jmp 0x124c8
jmp 0x12454
movq %rax, %r13
jmp 0x124dd
movq %rax, %r13
movl $0x568, %esi            # imm = 0x568
movq %rbp, %rdi
callq 0x9510
jmp 0x124dd
jmp 0x125dc
movq %rax, %r13
cmpq $0x6, %r15
jb 0x12824
leaq 0x1b8(%rsp), %rdi
jmp 0x125d2
jmp 0x125dc
movq %rax, %r13
leaq 0x238(%rsp), %rdi
callq 0x9a68
jmp 0x12817
movq %rax, %r13
jmp 0x12817
jmp 0x12647
movq %rax, %r13
pushq $0x50
jmp 0x12591
jmp 0x12636
jmp 0x12647
movq %rax, %r13
jmp 0x12786
jmp 0x124d2
movq %rax, %r13
jmp 0x12790
movq %rax, %r13
leaq 0x78(%rsp), %rdi
callq 0x174a8
jmp 0x127a4
movq %rax, %r13
movl $0x228, %esi            # imm = 0x228
movq %rbp, %rdi
jmp 0x12504
movq %r13, %rdi
movq %rax, %r13
movl $0x1f8, %esi            # imm = 0x1F8
callq 0x9510
jmp 0x127a4
jmp 0x126bd
movq %rax, %r13
leaq 0x78(%rsp), %rdi
callq 0x9a68
jmp 0x12525
movq %rax, %r13
movl $0x188, %esi            # imm = 0x188
movq %r14, %rdi
callq 0x9510
jmp 0x127b1
jmp 0x1274f
jmp 0x12548
jmp 0x1274f
jmp 0x1274f
movq %rax, %r13
pushq $0x8
popq %rsi
movq %r15, %rdi
jmp 0x125fe
jmp 0x1274f
jmp 0x12754
jmp 0x1256c
jmp 0x12754
jmp 0x12754
movq %rax, %r13
pushq $0x8
popq %rsi
movq %r15, %rdi
jmp 0x12627
jmp 0x12754
movq %rax, %r13
movl $0x4020, %esi           # imm = 0x4020
movq %rbx, %rdi
jmp 0x12597
movq %rax, %r13
pushq $0x30
popq %rsi
movq 0x48(%rsp), %rdi
callq 0x9510
jmp 0x127be
jmp 0x125b7
jmp 0x12759
jmp 0x12759
jmp 0x12759
jmp 0x12759
movq %rax, %r13
pushq $0x8
popq %rsi
movq %r15, %rdi
jmp 0x12673
jmp 0x126ee
movq %rax, %r13
leaq 0x78(%rsp), %rdi
callq 0x9a68
jmp 0x12824
movq %rax, %r13
jmp 0x12824
jmp 0x1274f
jmp 0x125f5
jmp 0x1274f
jmp 0x1274f
movq %rax, %r13
pushq $0x8
popq %rsi
movq %rbx, %rdi
callq 0x9510
jmp 0x12752
jmp 0x1274f
jmp 0x12754
jmp 0x1261e
jmp 0x12754
jmp 0x12754
movq %rax, %r13
pushq $0x8
popq %rsi
movq %rbx, %rdi
callq 0x9510
jmp 0x12757
jmp 0x12754
movq %rax, %r13
leaq 0x20(%rsp), %rdi
callq 0x9a68
jmp 0x1264a
jmp 0x12647
movq %rax, %r13
leaq 0x50(%rsp), %rdi
callq 0x197f0
jmp 0x127a4
jmp 0x12759
jmp 0x1266a
jmp 0x12759
jmp 0x12759
movq %rax, %r13
pushq $0x8
popq %rsi
movq %rbx, %rdi
callq 0x9510
jmp 0x1275c
jmp 0x12759
jmp 0x126bd
jmp 0x1270a
jmp 0x1269a
jmp 0x12783
jmp 0x12783
jmp 0x12783
movq %rax, %r13
pushq $0x8
popq %rsi
movq %r12, %rdi
jmp 0x126e4
jmp 0x12783
jmp 0x1274f
jmp 0x12754
jmp 0x126ee
jmp 0x126ee
jmp 0x12759
movq %rax, %r13
jmp 0x127a4
jmp 0x126db
jmp 0x12783
jmp 0x12783
jmp 0x12783
jmp 0x12783
movq %rax, %r13
pushq $0x8
popq %rsi
movq %rbx, %rdi
callq 0x9510
jmp 0x12786
movq %rax, %r13
jmp 0x127be
jmp 0x1274f
jmp 0x12754
jmp 0x126fc
movq %rax, %r13
jmp 0x12803
jmp 0x12759
jmp 0x1274f
jmp 0x12754
movq %rax, %r13
jmp 0x127b1
jmp 0x12783
jmp 0x1272c
jmp 0x12759
jmp 0x1274f
jmp 0x12754
jmp 0x12759
jmp 0x12783
jmp 0x12733
jmp 0x12733
jmp 0x12733
jmp 0x12783
jmp 0x12733
jmp 0x12733
movq %rax, %r13
jmp 0x12740
jmp 0x12783
movq %rax, %r13
leaq 0x78(%rsp), %rdi
callq 0x197f0
leaq 0x238(%rsp), %rdi
callq 0x197f0
jmp 0x127be
movq %rax, %r13
jmp 0x1275c
movq %rax, %r13
jmp 0x1275c
movq %rax, %r13
leaq 0x50(%rsp), %rdi
callq 0x174a8
jmp 0x12790
movq %rax, %r13
leaq 0x158(%rsp), %rdi
callq 0x15f54
jmp 0x127ec
jmp 0x1277e
jmp 0x1277e
movq %rax, %r13
jmp 0x127f6
movq %rax, %r13
leaq 0x50(%rsp), %rdi
callq 0x174a8
leaq 0x20(%rsp), %rdi
callq 0x1c290
leaq 0x78(%rsp), %rdi
callq 0x37754
leaq 0x198(%rsp), %rdi
callq 0x174a8
leaq 0x238(%rsp), %rdi
callq 0x18324
leaq 0x178(%rsp), %rdi
callq 0x192d8
leaq 0x130(%rsp), %rdi
callq 0x192d8
leaq 0x158(%rsp), %rdi
callq 0x192d8
jmp 0x12824
jmp 0x127e9
movq %rax, %r13
leaq 0x50(%rsp), %rdi
callq 0x9a68
leaq 0x238(%rsp), %rdi
callq 0x18a8a
leaq 0x20(%rsp), %rdi
callq 0x18c86
leaq 0x78(%rsp), %rdi
callq 0x18c86
leaq 0x130(%rsp), %rdi
callq 0x197f0
leaq 0x110(%rsp), %rdi
callq 0x18ebc
movq %r13, %rdi
callq 0x9950