// File: tonymugen[P]sampleSNPs/sampleSNPs.cpp
// Function: main
int main(int argc, char *argv[]){
	string fileType;   // type variant file; Supporting what varfiles supports
	string inFileName; // input file name; will strip off the extension if necessary
	string nSampTxt;   // string version of the number of samples
	uint64_t n;        // number of samples

	// set usage message
	string cliHelp = "Command line flags required (in any order):\n  -s NNN (number of samples)\n  -i fileName (input file name, with or without extension)\n  -t fileType (type of SNP file; required if no extension in the input file name)";
	unordered_map <char, string> clInfo;
	parseCL(argc, argv, clInfo);
	auto clIter = clInfo.begin(); // iterator of the command line flags

	// Process CLI flags
	clIter = clInfo.find('s');
	if (clIter == clInfo.end()) { // if not there, complain
		cerr << "ERROR: specification of the number of samples is required" << endl;
		cerr << cliHelp << endl;
		exit(1);
	} else {
		n        = stoi(clIter->second);
		nSampTxt = clIter->second;
	}

	clIter = clInfo.find('i');
	if (clIter == clInfo.end()) { // if not there, complain
		cerr << "ERROR: specification of the input file name is required" << endl;
		cerr << cliHelp << endl;
		exit(2);
	} else {
		inFileName = clIter->second;
	}

	clIter = clInfo.find('t');
	if (clIter == clInfo.end()) { // if not there, set to nothing
		fileType = "";
	} else {
		fileType = clIter->second;
	}

	// Processing file types first
	if (fileType == "BED") {
		// Doing BED. First figure out if there is an extension on the file name
		string ext;
		bool haveExt = false;
		auto flNit   = inFileName.end() - 1;
		for (; flNit != inFileName.begin(); --flNit) {
			if ((*flNit) == '.') {
				haveExt = true;
				break;
			}
			ext = (*flNit) + ext;
		}
		// get rid of the extension
		if (haveExt && (ext != "bed")) {
			cerr << "WARNING: extension " << ext << " non-standard for BED files; will assume that it is not an extension" << endl;
		} else if (haveExt){
			inFileName.erase(flNit, inFileName.end());
		}
		string outFileStub = inFileName + "_s" + nSampTxt;
		BedFileI bedIn(inFileName);
		BedFileO bedOut(outFileStub);
		bedIn.sample(bedOut, n);

	} else if (fileType == "TPED"){
		// Doing TPED. First figure out if there is an extension on the file name
		string ext;
		bool haveExt = false;
		auto flNit   = inFileName.end();
		for (; flNit != inFileName.begin(); --flNit) {
			if ((*flNit) == '.') {
				haveExt = true;
				break;
			}
			ext = (*flNit) + ext;
		}
		// get rid of the extension
		if (haveExt && (ext != "tped")) {
			cerr << "WARNING: extension " << ext << " non-standard for TPED files; will assume that it is not an extension" << endl;
		} else if (haveExt){
			inFileName.erase(flNit, inFileName.end());
		}
		string outFileStub = inFileName + "_s" + nSampTxt;
		TpedFileI tpedIn(inFileName);
		TpedFileO tpedOut(outFileStub);
		tpedIn.sample(tpedOut, n);

	} else if (fileType == "VCF"){
		// Doing VCF. First figure out if there is an extension on the file name
		string ext;
		bool haveExt = false;
		auto flNit   = inFileName.end() - 1;
		for (; flNit != inFileName.begin(); --flNit) {
			if ((*flNit) == '.') {
				haveExt = true;
				break;
			}
			ext = (*flNit) + ext;
		}
		// get rid of the extension
		if (haveExt) {
			if (ext != "vcf") {
				// Did they specify a file name stub that has periods in it? If yes, the file with the .vcf added should exist
				string testNam = inFileName + ".vcf";
				if (FILE *file = fopen(testNam.c_str(), "r")) {
					ext = "vcf";
					fclose(file);
				} else {
					cerr << "WARNING: extension " << ext << " non-standard for VCF files" << endl;
					inFileName.erase(flNit, inFileName.end());
				}
			} else {
				inFileName.erase(flNit, inFileName.end());
			}

		}
		string outFileName = inFileName + "_s" + nSampTxt + "." + ext; // not messing with the provided extension
		inFileName         = inFileName + "." + ext;

		VcfFileI vcfIn(inFileName);
		VcfFileO vcfOut(outFileName);
		vcfIn.sample(vcfOut, n);

	} else if (fileType == "HMP"){
		// Doing hapmap. First figure out if there is an extension on the file name
		string ext;
		bool haveExt = false;
		auto flNit   = inFileName.end() - 1;
		for (; flNit != inFileName.begin(); --flNit) {
			if ((*flNit) == '.') {
				if (ext == "txt") { // because typically it is .hmp.txt
					ext = (*flNit) + ext;
					continue;
				}
				haveExt = true;
				break;
			}
			ext = (*flNit) + ext;
		}
		// get rid of the extension
		if (haveExt) {
			if ( (ext != "hmp.txt") && (ext != "hmp") ) {
				// Did they specify a file name stub that has periods in it? If yes, the file with the .hmp.txt added should exist
				string testNam1 = inFileName + ".hmp.txt";
				string testNam2 = inFileName + ".hmp";
				if (FILE *file = fopen(testNam1.c_str(), "r")) {
					ext = "hmp.txt";
					fclose(file);
				} else if (FILE *file = fopen(testNam2.c_str(), "r")){
					ext = "hmp";
					fclose(file);
				}
				else {
					cerr << "WARNING: extension " << ext << " non-standard for HapMap files" << endl;
					inFileName.erase(flNit, inFileName.end());
				}
			} else {
				inFileName.erase(flNit, inFileName.end());
			}
		}
		string outFileName = inFileName + "_s" + nSampTxt + "." + ext;
		inFileName         = inFileName + "." + ext;
		HmpFileI hmpIn(inFileName);
		HmpFileO hmpOut(outFileName);
		hmpIn.sample(hmpOut, n);

	} else { // no (or an unrecognized) file type specified on CL
		// First figure out if there is an extension on the file name
		string ext;
		bool haveExt = false;
		auto flNit   = inFileName.end() - 1;
		for (; flNit != inFileName.begin(); --flNit) {
			if ((*flNit) == '.') {
				if (ext == "txt") { // because typically it is .hmp.txt
					ext = (*flNit) + ext;
					continue;
				}
				haveExt = true;
				break;
			}
			ext = (*flNit) + ext;
		}
		if (haveExt) {
			if (ext == "bed") {
				if (!fileType.empty()) {
					cerr << "WARNING: unrecognized file type " << fileType << " specified. Assuming BED file based on extension" << endl;
				}
				inFileName.erase(flNit, inFileName.end());
				string outFileStub = inFileName + "_s" + nSampTxt;
				BedFileI bedIn(inFileName);
				BedFileO bedOut(outFileStub);
				bedIn.sample(bedOut, n);

			} else if (ext == "tped") {
				if (!fileType.empty()) {
					cerr << "WARNING: unrecognized file type " << fileType << " specified. Assuming TPED file based on extension" << endl;
				}
				inFileName.erase(flNit, inFileName.end());
				string outFileStub = inFileName + "_s" + nSampTxt;
				TpedFileI tpedIn(inFileName);
				TpedFileO tpedOut(outFileStub);
				tpedIn.sample(tpedOut, n);

			} else if (ext == "vcf") {
				if (!fileType.empty()) {
					cerr << "WARNING: unrecognized file type " << fileType << " specified. Assuming VCF file based on extension" << endl;
				}
				inFileName.erase(flNit, inFileName.end());
				string outFileName = inFileName + "_s" + nSampTxt + ".vcf";
				inFileName         = inFileName + "." + ext;
				VcfFileI vcfIn(inFileName);
				VcfFileO vcfOut(outFileName);
				vcfIn.sample(vcfOut, n);

			} else if ( (ext == "hmp.txt") || (ext == "hmp") ) {
				if (!fileType.empty()) {
					cerr << "WARNING: unrecognized file type " << fileType << " specified. Assuming HapMap file based on extension" << endl;
				}
				inFileName.erase(flNit, inFileName.end());
				string outFileName = inFileName + "_s" + nSampTxt + ext;
				inFileName         = inFileName + "." + ext;
				HmpFileI hmpIn(inFileName);
				HmpFileO hmpOut(outFileName);
				hmpIn.sample(hmpOut, n);

			} else {
				if (fileType.empty()) {
					cerr << "ERROR: unrecognized extension (" << ext << ") in input file name " << inFileName << " and no file type specified" << endl;
					exit(3);
				} else {
					cerr << "ERROR: unrecognized extension (" << ext << ") in input file name " << inFileName << " and unrecognized file type (" << fileType  << ") specified" << endl;
					exit(4);
				}

			}
		} else {
			if (fileType.empty()) {
				cerr << "ERROR: no extension in input file name " << inFileName << " and no file type specified" << endl;
				exit(3);
			} else {
				cerr << "ERROR: no extension in input file name " << inFileName << " and unrecognized file type (" << fileType  << ") specified" << endl;
				exit(4);
			}
		}
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x49a0, %rsp           # imm = 0x49A0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x44d0
leaq -0x50(%rbp), %rdi
callq 0x44d0
leaq -0x70(%rbp), %rdi
callq 0x44d0
leaq -0x99(%rbp), %rdi
movq %rdi, -0x46b0(%rbp)
callq 0x4620
movq -0x46b0(%rbp), %rdx
leaq 0x1e28e(%rip), %rsi     # 0x23083
leaq -0x98(%rbp), %rdi
callq 0x7470
jmp 0x4e03
leaq -0x99(%rbp), %rdi
callq 0x4380
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x46b8(%rbp)
callq 0x7520
movq -0x46b8(%rbp), %rdx
movq -0x10(%rbp), %rsi
leaq -0x8(%rbp), %rdi
callq 0x4c90
jmp 0x4e38
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x46c8(%rbp)
callq 0x7540
movq -0x46c8(%rbp), %rdi
movq %rax, -0xf0(%rbp)
movb $0x73, -0xf9(%rbp)
leaq -0xf9(%rbp), %rsi
callq 0x7570
movq %rax, -0x46c0(%rbp)
jmp 0x4e75
movq -0x46c0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x75d0
movq %rax, -0x108(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x75a0
testb $0x1, %al
jne 0x4ec0
jmp 0x4f66
movq 0x27129(%rip), %rdi     # 0x2bff0
leaq 0x1e28b(%rip), %rsi     # 0x23159
callq 0x4310
movq %rax, -0x46d0(%rbp)
jmp 0x4edc
movq -0x46d0(%rbp), %rdi
movq 0x270c6(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x4ef1
movq 0x270f8(%rip), %rdi     # 0x2bff0
leaq -0x98(%rbp), %rsi
callq 0x42e0
movq %rax, -0x46d8(%rbp)
jmp 0x4f0d
movq -0x46d8(%rbp), %rdi
movq 0x27095(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x4f22
movl $0x1, %edi
callq 0x4400
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x99(%rbp), %rdi
callq 0x4380
jmp 0x7410
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x73f8
leaq -0xf0(%rbp), %rdi
callq 0x7640
movq %rax, %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x7600
movl %eax, -0x46dc(%rbp)
jmp 0x4f8f
movl -0x46dc(%rbp), %eax
cltq
movq %rax, -0x78(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x7640
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x70(%rbp), %rdi
callq 0x4040
jmp 0x4fb9
jmp 0x4fbb
movb $0x69, -0x111(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0x111(%rbp), %rsi
callq 0x7570
movq %rax, -0x46e8(%rbp)
jmp 0x4fde
movq -0x46e8(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x75d0
movq %rax, -0x120(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x75a0
testb $0x1, %al
jne 0x5026
jmp 0x5092
movq 0x26fc3(%rip), %rdi     # 0x2bff0
leaq 0x1e15f(%rip), %rsi     # 0x23193
callq 0x4310
movq %rax, -0x46f0(%rbp)
jmp 0x5042
movq -0x46f0(%rbp), %rdi
movq 0x26f60(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x5057
movq 0x26f92(%rip), %rdi     # 0x2bff0
leaq -0x98(%rbp), %rsi
callq 0x42e0
movq %rax, -0x46f8(%rbp)
jmp 0x5073
movq -0x46f8(%rbp), %rdi
movq 0x26f2f(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x5088
movl $0x2, %edi
callq 0x4400
leaq -0xf0(%rbp), %rdi
callq 0x7640
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x50(%rbp), %rdi
callq 0x4040
jmp 0x50b0
jmp 0x50b2
movb $0x74, -0x129(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0x129(%rbp), %rsi
callq 0x7570
movq %rax, -0x4700(%rbp)
jmp 0x50d5
movq -0x4700(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x128(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x75d0
movq %rax, -0x138(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x75a0
testb $0x1, %al
jne 0x511d
jmp 0x5131
leaq 0x1e9f1(%rip), %rsi     # 0x23b15
leaq -0x30(%rbp), %rdi
callq 0x44c0
jmp 0x512f
jmp 0x5151
leaq -0xf0(%rbp), %rdi
callq 0x7640
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x30(%rbp), %rdi
callq 0x4040
jmp 0x514f
jmp 0x5151
leaq 0x1e70d(%rip), %rsi     # 0x23865
leaq -0x30(%rbp), %rdi
callq 0x7670
movb %al, -0x4701(%rbp)
jmp 0x5169
movb -0x4701(%rbp), %al
testb $0x1, %al
jne 0x5178
jmp 0x54c1
leaq -0x158(%rbp), %rdi
callq 0x44d0
movb $0x0, -0x159(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x41c0
movq %rax, -0x170(%rbp)
leaq -0x170(%rbp), %rdi
movl $0x1, %esi
callq 0x76a0
movq %rax, -0x168(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x42c0
movq %rax, -0x178(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x76e0
testb $0x1, %al
jne 0x51df
jmp 0x5267
leaq -0x168(%rbp), %rdi
callq 0x7720
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x51fc
movb $0x1, -0x159(%rbp)
jmp 0x5267
leaq -0x168(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x198(%rbp), %rdi
leaq -0x158(%rbp), %rdx
callq 0x7740
jmp 0x5220
leaq -0x158(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x4410
leaq -0x198(%rbp), %rdi
callq 0x46d8
leaq -0x168(%rbp), %rdi
callq 0x7840
jmp 0x51b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x54b0
testb $0x1, -0x159(%rbp)
je 0x5306
leaq 0x1e49b(%rip), %rsi     # 0x23716
leaq -0x158(%rbp), %rdi
callq 0x7860
movb %al, -0x4702(%rbp)
jmp 0x528f
movb -0x4702(%rbp), %al
testb $0x1, %al
jne 0x529b
jmp 0x5306
movq 0x26d4e(%rip), %rdi     # 0x2bff0
leaq 0x1df22(%rip), %rsi     # 0x231cb
callq 0x4310
movq %rax, -0x4710(%rbp)
jmp 0x52b7
movq -0x4710(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4718(%rbp)
jmp 0x52d3
movq -0x4718(%rbp), %rdi
leaq 0x1defe(%rip), %rsi     # 0x231df
callq 0x4310
movq %rax, -0x4720(%rbp)
jmp 0x52ef
movq -0x4720(%rbp), %rdi
movq 0x26cb3(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x5304
jmp 0x537f
testb $0x1, -0x159(%rbp)
je 0x537d
leaq -0x1a0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4730(%rbp)
callq 0x41c0
movq %rax, -0x1b0(%rbp)
leaq -0x1a8(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x7890
movq -0x4730(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4728(%rbp)
jmp 0x536f
movq -0x4728(%rbp), %rax
movq %rax, -0x1b8(%rbp)
jmp 0x537f
leaq 0x1de9e(%rip), %rdx     # 0x23224
leaq -0x1f8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x5398
leaq -0x1d8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x53b1
leaq -0x1f8(%rbp), %rdi
callq 0x46d8
leaq -0x880(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x79a0
jmp 0x53cf
leaq -0xf08(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x79e0
jmp 0x53e4
leaq -0x880(%rbp), %rdi
leaq -0xf08(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0xfed0
jmp 0x53fd
leaq -0xf08(%rbp), %rdi
callq 0x7a20
leaq -0x880(%rbp), %rdi
callq 0x7a40
leaq -0x1d8(%rbp), %rdi
callq 0x46d8
leaq -0x158(%rbp), %rdi
callq 0x46d8
jmp 0x73b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x46d8
jmp 0x54b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x54a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xf08(%rbp), %rdi
callq 0x7a20
leaq -0x880(%rbp), %rdi
callq 0x7a40
leaq -0x1d8(%rbp), %rdi
callq 0x46d8
leaq -0x158(%rbp), %rdi
callq 0x46d8
jmp 0x73f8
leaq 0x1dd5f(%rip), %rsi     # 0x23227
leaq -0x30(%rbp), %rdi
callq 0x7670
movb %al, -0x4731(%rbp)
jmp 0x54d9
movb -0x4731(%rbp), %al
testb $0x1, %al
jne 0x54e8
jmp 0x5819
leaq -0xf28(%rbp), %rdi
callq 0x44d0
movb $0x0, -0xf29(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x41c0
movq %rax, -0xf38(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x42c0
movq %rax, -0xf40(%rbp)
leaq -0xf38(%rbp), %rdi
leaq -0xf40(%rbp), %rsi
callq 0x76e0
testb $0x1, %al
jne 0x5537
jmp 0x55bf
leaq -0xf38(%rbp), %rdi
callq 0x7720
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x5554
movb $0x1, -0xf29(%rbp)
jmp 0x55bf
leaq -0xf38(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0xf60(%rbp), %rdi
leaq -0xf28(%rbp), %rdx
callq 0x7740
jmp 0x5578
leaq -0xf28(%rbp), %rdi
leaq -0xf60(%rbp), %rsi
callq 0x4410
leaq -0xf60(%rbp), %rdi
callq 0x46d8
leaq -0xf38(%rbp), %rdi
callq 0x7840
jmp 0x550b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5808
testb $0x1, -0xf29(%rbp)
je 0x565e
leaq 0x1de88(%rip), %rsi     # 0x2345b
leaq -0xf28(%rbp), %rdi
callq 0x7860
movb %al, -0x4732(%rbp)
jmp 0x55e7
movb -0x4732(%rbp), %al
testb $0x1, %al
jne 0x55f3
jmp 0x565e
movq 0x269f6(%rip), %rdi     # 0x2bff0
leaq 0x1dbca(%rip), %rsi     # 0x231cb
callq 0x4310
movq %rax, -0x4740(%rbp)
jmp 0x560f
movq -0x4740(%rbp), %rdi
leaq -0xf28(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4748(%rbp)
jmp 0x562b
movq -0x4748(%rbp), %rdi
leaq 0x1dbf3(%rip), %rsi     # 0x2322c
callq 0x4310
movq %rax, -0x4750(%rbp)
jmp 0x5647
movq -0x4750(%rbp), %rdi
movq 0x2695b(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x565c
jmp 0x56d7
testb $0x1, -0xf29(%rbp)
je 0x56d5
leaq -0xf68(%rbp), %rdi
leaq -0xf38(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4760(%rbp)
callq 0x41c0
movq %rax, -0xf78(%rbp)
leaq -0xf70(%rbp), %rdi
leaq -0xf78(%rbp), %rsi
callq 0x7890
movq -0x4760(%rbp), %rdi
movq -0xf68(%rbp), %rsi
movq -0xf70(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4758(%rbp)
jmp 0x56c7
movq -0x4758(%rbp), %rax
movq %rax, -0xf80(%rbp)
jmp 0x56d7
leaq 0x1db46(%rip), %rdx     # 0x23224
leaq -0xfc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x56f0
leaq -0xfa0(%rbp), %rdi
leaq -0xfc0(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x5709
leaq -0xfc0(%rbp), %rdi
callq 0x46d8
leaq -0x1430(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7a60
jmp 0x5727
leaq -0x18a0(%rbp), %rdi
leaq -0xfa0(%rbp), %rsi
callq 0x7aa0
jmp 0x573c
leaq -0x1430(%rbp), %rdi
leaq -0x18a0(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1a580
jmp 0x5755
leaq -0x18a0(%rbp), %rdi
callq 0x7ae0
leaq -0x1430(%rbp), %rdi
callq 0x7b00
leaq -0xfa0(%rbp), %rdi
callq 0x46d8
leaq -0xf28(%rbp), %rdi
callq 0x46d8
jmp 0x73b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xfc0(%rbp), %rdi
callq 0x46d8
jmp 0x5808
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x57fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x57f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x18a0(%rbp), %rdi
callq 0x7ae0
leaq -0x1430(%rbp), %rdi
callq 0x7b00
leaq -0xfa0(%rbp), %rdi
callq 0x46d8
leaq -0xf28(%rbp), %rdi
callq 0x46d8
jmp 0x73f8
leaq 0x1da52(%rip), %rsi     # 0x23272
leaq -0x30(%rbp), %rdi
callq 0x7670
movb %al, -0x4761(%rbp)
jmp 0x5831
movb -0x4761(%rbp), %al
testb $0x1, %al
jne 0x5840
jmp 0x5dbb
leaq -0x18c0(%rbp), %rdi
callq 0x44d0
movb $0x0, -0x18c1(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x41c0
movq %rax, -0x18d8(%rbp)
leaq -0x18d8(%rbp), %rdi
movl $0x1, %esi
callq 0x76a0
movq %rax, -0x18d0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x42c0
movq %rax, -0x18e0(%rbp)
leaq -0x18d0(%rbp), %rdi
leaq -0x18e0(%rbp), %rsi
callq 0x76e0
testb $0x1, %al
jne 0x58a7
jmp 0x592f
leaq -0x18d0(%rbp), %rdi
callq 0x7720
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x58c4
movb $0x1, -0x18c1(%rbp)
jmp 0x592f
leaq -0x18d0(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x1900(%rbp), %rdi
leaq -0x18c0(%rbp), %rdx
callq 0x7740
jmp 0x58e8
leaq -0x18c0(%rbp), %rdi
leaq -0x1900(%rbp), %rsi
callq 0x4410
leaq -0x1900(%rbp), %rdi
callq 0x46d8
leaq -0x18d0(%rbp), %rdi
callq 0x7840
jmp 0x587b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5daa
testb $0x1, -0x18c1(%rbp)
je 0x5b5b
leaq 0x1d934(%rip), %rsi     # 0x23277
leaq -0x18c0(%rbp), %rdi
callq 0x7860
movb %al, -0x4762(%rbp)
jmp 0x5957
movb -0x4762(%rbp), %al
testb $0x1, %al
jne 0x5966
jmp 0x5aeb
leaq 0x1d909(%rip), %rdx     # 0x23276
leaq -0x1920(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x597f
leaq -0x1920(%rbp), %rdi
callq 0x4140
movq %rax, %rdi
leaq 0x1e033(%rip), %rsi     # 0x239c8
callq 0x43e0
movq %rax, -0x4770(%rbp)
jmp 0x59a3
movq -0x4770(%rbp), %rax
movq %rax, -0x1928(%rbp)
cmpq $0x0, -0x1928(%rbp)
je 0x5a06
leaq 0x1d8b5(%rip), %rsi     # 0x23277
leaq -0x18c0(%rbp), %rdi
callq 0x44c0
jmp 0x59d0
movq -0x1928(%rbp), %rdi
callq 0x4320
jmp 0x59de
jmp 0x5add
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1920(%rbp), %rdi
callq 0x46d8
jmp 0x5daa
movq 0x265e3(%rip), %rdi     # 0x2bff0
leaq 0x1d7b7(%rip), %rsi     # 0x231cb
callq 0x4310
movq %rax, -0x4778(%rbp)
jmp 0x5a22
movq -0x4778(%rbp), %rdi
leaq -0x18c0(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4780(%rbp)
jmp 0x5a3e
movq -0x4780(%rbp), %rdi
leaq 0x1d82f(%rip), %rsi     # 0x2327b
callq 0x4310
movq %rax, -0x4788(%rbp)
jmp 0x5a5a
movq -0x4788(%rbp), %rdi
movq 0x26548(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x5a6f
leaq -0x1930(%rbp), %rdi
leaq -0x18d0(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4798(%rbp)
callq 0x41c0
movq %rax, -0x1940(%rbp)
leaq -0x1938(%rbp), %rdi
leaq -0x1940(%rbp), %rsi
callq 0x7890
movq -0x4798(%rbp), %rdi
movq -0x1930(%rbp), %rsi
movq -0x1938(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4790(%rbp)
jmp 0x5acf
movq -0x4790(%rbp), %rax
movq %rax, -0x1948(%rbp)
leaq -0x1920(%rbp), %rdi
callq 0x46d8
jmp 0x5b59
leaq -0x1950(%rbp), %rdi
leaq -0x18d0(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x47a8(%rbp)
callq 0x41c0
movq %rax, -0x1960(%rbp)
leaq -0x1958(%rbp), %rdi
leaq -0x1960(%rbp), %rsi
callq 0x7890
movq -0x47a8(%rbp), %rdi
movq -0x1950(%rbp), %rsi
movq -0x1958(%rbp), %rdx
callq 0x40a0
movq %rax, -0x47a0(%rbp)
jmp 0x5b4b
movq -0x47a0(%rbp), %rax
movq %rax, -0x1968(%rbp)
jmp 0x5b5b
leaq 0x1d6c2(%rip), %rdx     # 0x23224
leaq -0x19e8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x5b74
leaq -0x19c8(%rbp), %rdi
leaq -0x19e8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x5b8d
leaq 0x1db13(%rip), %rdx     # 0x236a7
leaq -0x19a8(%rbp), %rdi
leaq -0x19c8(%rbp), %rsi
callq 0x7b20
jmp 0x5ba9
leaq -0x1988(%rbp), %rdi
leaq -0x19a8(%rbp), %rsi
leaq -0x18c0(%rbp), %rdx
callq 0x78d0
jmp 0x5bc5
leaq -0x19a8(%rbp), %rdi
callq 0x46d8
leaq -0x19c8(%rbp), %rdi
callq 0x46d8
leaq -0x19e8(%rbp), %rdi
callq 0x46d8
leaq 0x1dab7(%rip), %rdx     # 0x236a7
leaq -0x1a28(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x5c02
leaq -0x1a08(%rbp), %rdi
leaq -0x1a28(%rbp), %rsi
leaq -0x18c0(%rbp), %rdx
callq 0x78d0
jmp 0x5c1e
leaq -0x50(%rbp), %rdi
movq %rdi, -0x47b0(%rbp)
leaq -0x1a08(%rbp), %rsi
movq %rsi, -0x47b8(%rbp)
callq 0x4410
movq -0x47b8(%rbp), %rdi
callq 0x46d8
leaq -0x1a28(%rbp), %rdi
callq 0x46d8
movq -0x47b0(%rbp), %rsi
leaq -0x1c68(%rbp), %rdi
callq 0x7b70
jmp 0x5c69
leaq -0x1ea8(%rbp), %rdi
leaq -0x1988(%rbp), %rsi
callq 0x7bb0
jmp 0x5c7e
leaq -0x1c68(%rbp), %rdi
leaq -0x1ea8(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1c720
jmp 0x5c97
leaq -0x1ea8(%rbp), %rdi
callq 0x7bf0
leaq -0x1c68(%rbp), %rdi
callq 0x7c10
leaq -0x1988(%rbp), %rdi
callq 0x46d8
leaq -0x18c0(%rbp), %rdi
callq 0x46d8
jmp 0x73b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5d1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5d12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x19a8(%rbp), %rdi
callq 0x46d8
leaq -0x19c8(%rbp), %rdi
callq 0x46d8
leaq -0x19e8(%rbp), %rdi
callq 0x46d8
jmp 0x5daa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5d9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1a28(%rbp), %rdi
callq 0x46d8
jmp 0x5d9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x5d92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1ea8(%rbp), %rdi
callq 0x7bf0
leaq -0x1c68(%rbp), %rdi
callq 0x7c10
leaq -0x1988(%rbp), %rdi
callq 0x46d8
leaq -0x18c0(%rbp), %rdi
callq 0x46d8
jmp 0x73f8
leaq 0x1d4d5(%rip), %rsi     # 0x23297
leaq -0x30(%rbp), %rdi
callq 0x7670
movb %al, -0x47b9(%rbp)
jmp 0x5dd3
movb -0x47b9(%rbp), %al
testb $0x1, %al
jne 0x5de2
jmp 0x64aa
leaq -0x1ec8(%rbp), %rdi
callq 0x44d0
movb $0x0, -0x1ec9(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x41c0
movq %rax, -0x1ee0(%rbp)
leaq -0x1ee0(%rbp), %rdi
movl $0x1, %esi
callq 0x76a0
movq %rax, -0x1ed8(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x42c0
movq %rax, -0x1ee8(%rbp)
leaq -0x1ed8(%rbp), %rdi
leaq -0x1ee8(%rbp), %rsi
callq 0x76e0
testb $0x1, %al
jne 0x5e49
jmp 0x5f41
leaq -0x1ed8(%rbp), %rdi
callq 0x7720
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x5eed
leaq 0x1d438(%rip), %rsi     # 0x232a0
leaq -0x1ec8(%rbp), %rdi
callq 0x7670
movb %al, -0x47ba(%rbp)
jmp 0x5e7c
movb -0x47ba(%rbp), %al
testb $0x1, %al
jne 0x5e88
jmp 0x5ee4
leaq -0x1ed8(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x1f08(%rbp), %rdi
leaq -0x1ec8(%rbp), %rdx
callq 0x7740
jmp 0x5eac
leaq -0x1ec8(%rbp), %rdi
leaq -0x1f08(%rbp), %rsi
callq 0x4410
leaq -0x1f08(%rbp), %rdi
callq 0x46d8
jmp 0x5f30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6499
movb $0x1, -0x1ec9(%rbp)
jmp 0x5f41
leaq -0x1ed8(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x1f28(%rbp), %rdi
leaq -0x1ec8(%rbp), %rdx
callq 0x7740
jmp 0x5f11
leaq -0x1ec8(%rbp), %rdi
leaq -0x1f28(%rbp), %rsi
callq 0x4410
leaq -0x1f28(%rbp), %rdi
callq 0x46d8
leaq -0x1ed8(%rbp), %rdi
callq 0x7840
jmp 0x5e1d
testb $0x1, -0x1ec9(%rbp)
je 0x624a
leaq 0x1d347(%rip), %rsi     # 0x2329c
leaq -0x1ec8(%rbp), %rdi
callq 0x7860
movb %al, -0x47bb(%rbp)
jmp 0x5f69
movb -0x47bb(%rbp), %al
testb $0x1, %al
jne 0x5f78
jmp 0x61da
leaq 0x1d326(%rip), %rsi     # 0x232a5
leaq -0x1ec8(%rbp), %rdi
callq 0x7860
movb %al, -0x47bc(%rbp)
jmp 0x5f93
movb -0x47bc(%rbp), %al
testb $0x1, %al
jne 0x5fa2
jmp 0x61da
leaq 0x1d2f2(%rip), %rdx     # 0x2329b
leaq -0x1f48(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x5fbb
leaq 0x1d2e2(%rip), %rdx     # 0x232a4
leaq -0x1f68(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x5fd4
leaq -0x1f48(%rbp), %rdi
callq 0x4140
movq %rax, %rdi
leaq 0x1d9de(%rip), %rsi     # 0x239c8
callq 0x43e0
movq %rax, -0x47c8(%rbp)
jmp 0x5ff8
movq -0x47c8(%rbp), %rax
movq %rax, -0x1f70(%rbp)
cmpq $0x0, -0x1f70(%rbp)
je 0x6072
leaq 0x1d285(%rip), %rsi     # 0x2329c
leaq -0x1ec8(%rbp), %rdi
callq 0x44c0
jmp 0x6025
movq -0x1f70(%rbp), %rdi
callq 0x4320
jmp 0x6033
jmp 0x61af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x61c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1f68(%rbp), %rdi
callq 0x46d8
jmp 0x61c9
leaq -0x1f68(%rbp), %rdi
callq 0x4140
movq %rax, %rdi
leaq 0x1d940(%rip), %rsi     # 0x239c8
callq 0x43e0
movq %rax, -0x47d0(%rbp)
jmp 0x6096
movq -0x47d0(%rbp), %rax
movq %rax, -0x1f78(%rbp)
cmpq $0x0, -0x1f78(%rbp)
je 0x60d6
leaq 0x1d1f0(%rip), %rsi     # 0x232a5
leaq -0x1ec8(%rbp), %rdi
callq 0x44c0
jmp 0x60c3
movq -0x1f78(%rbp), %rdi
callq 0x4320
jmp 0x60d1
jmp 0x61ad
movq 0x25f13(%rip), %rdi     # 0x2bff0
leaq 0x1d0e7(%rip), %rsi     # 0x231cb
callq 0x4310
movq %rax, -0x47d8(%rbp)
jmp 0x60f2
movq -0x47d8(%rbp), %rdi
leaq -0x1ec8(%rbp), %rsi
callq 0x42e0
movq %rax, -0x47e0(%rbp)
jmp 0x610e
movq -0x47e0(%rbp), %rdi
leaq 0x1d18d(%rip), %rsi     # 0x232a9
callq 0x4310
movq %rax, -0x47e8(%rbp)
jmp 0x612a
movq -0x47e8(%rbp), %rdi
movq 0x25e78(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x613f
leaq -0x1f80(%rbp), %rdi
leaq -0x1ed8(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x47f8(%rbp)
callq 0x41c0
movq %rax, -0x1f90(%rbp)
leaq -0x1f88(%rbp), %rdi
leaq -0x1f90(%rbp), %rsi
callq 0x7890
movq -0x47f8(%rbp), %rdi
movq -0x1f80(%rbp), %rsi
movq -0x1f88(%rbp), %rdx
callq 0x40a0
movq %rax, -0x47f0(%rbp)
jmp 0x619f
movq -0x47f0(%rbp), %rax
movq %rax, -0x1f98(%rbp)
jmp 0x61af
leaq -0x1f68(%rbp), %rdi
callq 0x46d8
leaq -0x1f48(%rbp), %rdi
callq 0x46d8
jmp 0x6248
leaq -0x1f48(%rbp), %rdi
callq 0x46d8
jmp 0x6499
leaq -0x1fa0(%rbp), %rdi
leaq -0x1ed8(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4808(%rbp)
callq 0x41c0
movq %rax, -0x1fb0(%rbp)
leaq -0x1fa8(%rbp), %rdi
leaq -0x1fb0(%rbp), %rsi
callq 0x7890
movq -0x4808(%rbp), %rdi
movq -0x1fa0(%rbp), %rsi
movq -0x1fa8(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4800(%rbp)
jmp 0x623a
movq -0x4800(%rbp), %rax
movq %rax, -0x1fb8(%rbp)
jmp 0x624a
leaq 0x1cfd3(%rip), %rdx     # 0x23224
leaq -0x2038(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6263
leaq -0x2018(%rbp), %rdi
leaq -0x2038(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x627c
leaq 0x1d424(%rip), %rdx     # 0x236a7
leaq -0x1ff8(%rbp), %rdi
leaq -0x2018(%rbp), %rsi
callq 0x7b20
jmp 0x6298
leaq -0x1fd8(%rbp), %rdi
leaq -0x1ff8(%rbp), %rsi
leaq -0x1ec8(%rbp), %rdx
callq 0x78d0
jmp 0x62b4
leaq -0x1ff8(%rbp), %rdi
callq 0x46d8
leaq -0x2018(%rbp), %rdi
callq 0x46d8
leaq -0x2038(%rbp), %rdi
callq 0x46d8
leaq 0x1d3c8(%rip), %rdx     # 0x236a7
leaq -0x2078(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x62f1
leaq -0x2058(%rbp), %rdi
leaq -0x2078(%rbp), %rsi
leaq -0x1ec8(%rbp), %rdx
callq 0x78d0
jmp 0x630d
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4810(%rbp)
leaq -0x2058(%rbp), %rsi
movq %rsi, -0x4818(%rbp)
callq 0x4410
movq -0x4818(%rbp), %rdi
callq 0x46d8
leaq -0x2078(%rbp), %rdi
callq 0x46d8
movq -0x4810(%rbp), %rsi
leaq -0x22b8(%rbp), %rdi
callq 0x1d750
jmp 0x6358
leaq -0x24f8(%rbp), %rdi
leaq -0x1fd8(%rbp), %rsi
callq 0x7c30
jmp 0x636d
leaq -0x22b8(%rbp), %rdi
leaq -0x24f8(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1e090
jmp 0x6386
leaq -0x24f8(%rbp), %rdi
callq 0x7c70
leaq -0x22b8(%rbp), %rdi
callq 0x7c90
leaq -0x1fd8(%rbp), %rdi
callq 0x46d8
leaq -0x1ec8(%rbp), %rdi
callq 0x46d8
jmp 0x73b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x640d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6401
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1ff8(%rbp), %rdi
callq 0x46d8
leaq -0x2018(%rbp), %rdi
callq 0x46d8
leaq -0x2038(%rbp), %rdi
callq 0x46d8
jmp 0x6499
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x648d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x2078(%rbp), %rdi
callq 0x46d8
jmp 0x648d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6481
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x24f8(%rbp), %rdi
callq 0x7c70
leaq -0x22b8(%rbp), %rdi
callq 0x7c90
leaq -0x1fd8(%rbp), %rdi
callq 0x46d8
leaq -0x1ec8(%rbp), %rdi
callq 0x46d8
jmp 0x73f8
leaq -0x2518(%rbp), %rdi
callq 0x44d0
movb $0x0, -0x2519(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x41c0
movq %rax, -0x2530(%rbp)
leaq -0x2530(%rbp), %rdi
movl $0x1, %esi
callq 0x76a0
movq %rax, -0x2528(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x42c0
movq %rax, -0x2538(%rbp)
leaq -0x2528(%rbp), %rdi
leaq -0x2538(%rbp), %rsi
callq 0x76e0
testb $0x1, %al
jne 0x6511
jmp 0x6609
leaq -0x2528(%rbp), %rdi
callq 0x7720
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x65b5
leaq 0x1cd70(%rip), %rsi     # 0x232a0
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x4819(%rbp)
jmp 0x6544
movb -0x4819(%rbp), %al
testb $0x1, %al
jne 0x6550
jmp 0x65ac
leaq -0x2528(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x2558(%rbp), %rdi
leaq -0x2518(%rbp), %rdx
callq 0x7740
jmp 0x6574
leaq -0x2518(%rbp), %rdi
leaq -0x2558(%rbp), %rsi
callq 0x4410
leaq -0x2558(%rbp), %rdi
callq 0x46d8
jmp 0x65f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x73a5
movb $0x1, -0x2519(%rbp)
jmp 0x6609
leaq -0x2528(%rbp), %rdi
callq 0x7720
movsbl (%rax), %esi
leaq -0x2578(%rbp), %rdi
leaq -0x2518(%rbp), %rdx
callq 0x7740
jmp 0x65d9
leaq -0x2518(%rbp), %rdi
leaq -0x2578(%rbp), %rsi
callq 0x4410
leaq -0x2578(%rbp), %rdi
callq 0x46d8
leaq -0x2528(%rbp), %rdi
callq 0x7840
jmp 0x64e5
testb $0x1, -0x2519(%rbp)
je 0x7273
leaq 0x1d0f9(%rip), %rsi     # 0x23716
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x481a(%rbp)
jmp 0x6631
movb -0x481a(%rbp), %al
testb $0x1, %al
jne 0x6640
jmp 0x6850
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x66b5
movq 0x2599c(%rip), %rdi     # 0x2bff0
leaq 0x1cc6d(%rip), %rsi     # 0x232c8
callq 0x4310
movq %rax, -0x4828(%rbp)
jmp 0x6669
movq -0x4828(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4830(%rbp)
jmp 0x6682
movq -0x4830(%rbp), %rdi
leaq 0x1cc59(%rip), %rsi     # 0x232e9
callq 0x4310
movq %rax, -0x4838(%rbp)
jmp 0x669e
movq -0x4838(%rbp), %rdi
movq 0x25904(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x66b3
jmp 0x66b5
leaq -0x2580(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4848(%rbp)
callq 0x41c0
movq %rax, -0x2590(%rbp)
leaq -0x2588(%rbp), %rdi
leaq -0x2590(%rbp), %rsi
callq 0x7890
movq -0x4848(%rbp), %rdi
movq -0x2580(%rbp), %rsi
movq -0x2588(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4840(%rbp)
jmp 0x6715
movq -0x4840(%rbp), %rax
movq %rax, -0x2598(%rbp)
leaq 0x1cafa(%rip), %rdx     # 0x23224
leaq -0x25d8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x673c
leaq -0x25b8(%rbp), %rdi
leaq -0x25d8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x6755
leaq -0x25d8(%rbp), %rdi
callq 0x46d8
leaq -0x2c60(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x79a0
jmp 0x6773
leaq -0x32e8(%rbp), %rdi
leaq -0x25b8(%rbp), %rsi
callq 0x79e0
jmp 0x6788
leaq -0x2c60(%rbp), %rdi
leaq -0x32e8(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0xfed0
jmp 0x67a1
leaq -0x32e8(%rbp), %rdi
callq 0x7a20
leaq -0x2c60(%rbp), %rdi
callq 0x7a40
leaq -0x25b8(%rbp), %rdi
callq 0x46d8
jmp 0x726e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x25d8(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x683f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6833
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x32e8(%rbp), %rdi
callq 0x7a20
leaq -0x2c60(%rbp), %rdi
callq 0x7a40
leaq -0x25b8(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
leaq 0x1cc04(%rip), %rsi     # 0x2345b
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x4849(%rbp)
jmp 0x686b
movb -0x4849(%rbp), %al
testb $0x1, %al
jne 0x687a
jmp 0x6a8a
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x68ef
movq 0x25762(%rip), %rdi     # 0x2bff0
leaq 0x1ca33(%rip), %rsi     # 0x232c8
callq 0x4310
movq %rax, -0x4858(%rbp)
jmp 0x68a3
movq -0x4858(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4860(%rbp)
jmp 0x68bc
movq -0x4860(%rbp), %rdi
leaq 0x1ca50(%rip), %rsi     # 0x2331a
callq 0x4310
movq %rax, -0x4868(%rbp)
jmp 0x68d8
movq -0x4868(%rbp), %rdi
movq 0x256ca(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x68ed
jmp 0x68ef
leaq -0x32f0(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x4878(%rbp)
callq 0x41c0
movq %rax, -0x3300(%rbp)
leaq -0x32f8(%rbp), %rdi
leaq -0x3300(%rbp), %rsi
callq 0x7890
movq -0x4878(%rbp), %rdi
movq -0x32f0(%rbp), %rsi
movq -0x32f8(%rbp), %rdx
callq 0x40a0
movq %rax, -0x4870(%rbp)
jmp 0x694f
movq -0x4870(%rbp), %rax
movq %rax, -0x3308(%rbp)
leaq 0x1c8c0(%rip), %rdx     # 0x23224
leaq -0x3348(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6976
leaq -0x3328(%rbp), %rdi
leaq -0x3348(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x698f
leaq -0x3348(%rbp), %rdi
callq 0x46d8
leaq -0x37b8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7a60
jmp 0x69ad
leaq -0x3c28(%rbp), %rdi
leaq -0x3328(%rbp), %rsi
callq 0x7aa0
jmp 0x69c2
leaq -0x37b8(%rbp), %rdi
leaq -0x3c28(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1a580
jmp 0x69db
leaq -0x3c28(%rbp), %rdi
callq 0x7ae0
leaq -0x37b8(%rbp), %rdi
callq 0x7b00
leaq -0x3328(%rbp), %rdi
callq 0x46d8
jmp 0x726c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3348(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6a79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6a6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3c28(%rbp), %rdi
callq 0x7ae0
leaq -0x37b8(%rbp), %rdi
callq 0x7b00
leaq -0x3328(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
leaq 0x1c7e6(%rip), %rsi     # 0x23277
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x4879(%rbp)
jmp 0x6aa5
movb -0x4879(%rbp), %al
testb $0x1, %al
jne 0x6ab4
jmp 0x6d9a
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x6b29
movq 0x25528(%rip), %rdi     # 0x2bff0
leaq 0x1c7f9(%rip), %rsi     # 0x232c8
callq 0x4310
movq %rax, -0x4888(%rbp)
jmp 0x6add
movq -0x4888(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4890(%rbp)
jmp 0x6af6
movq -0x4890(%rbp), %rdi
leaq 0x1c848(%rip), %rsi     # 0x2334c
callq 0x4310
movq %rax, -0x4898(%rbp)
jmp 0x6b12
movq -0x4898(%rbp), %rdi
movq 0x25490(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x6b27
jmp 0x6b29
leaq -0x3c30(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x48a8(%rbp)
callq 0x41c0
movq %rax, -0x3c40(%rbp)
leaq -0x3c38(%rbp), %rdi
leaq -0x3c40(%rbp), %rsi
callq 0x7890
movq -0x48a8(%rbp), %rdi
movq -0x3c30(%rbp), %rsi
movq -0x3c38(%rbp), %rdx
callq 0x40a0
movq %rax, -0x48a0(%rbp)
jmp 0x6b89
movq -0x48a0(%rbp), %rax
movq %rax, -0x3c48(%rbp)
leaq 0x1c686(%rip), %rdx     # 0x23224
leaq -0x3ca8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6bb0
leaq -0x3c88(%rbp), %rdi
leaq -0x3ca8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x6bc9
leaq 0x1c6a6(%rip), %rdx     # 0x23276
leaq -0x3c68(%rbp), %rdi
leaq -0x3c88(%rbp), %rsi
callq 0x7b20
jmp 0x6be5
leaq -0x3c88(%rbp), %rdi
callq 0x46d8
leaq -0x3ca8(%rbp), %rdi
callq 0x46d8
leaq 0x1caa3(%rip), %rdx     # 0x236a7
leaq -0x3ce8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6c16
leaq -0x3cc8(%rbp), %rdi
leaq -0x3ce8(%rbp), %rsi
leaq -0x2518(%rbp), %rdx
callq 0x78d0
jmp 0x6c32
leaq -0x50(%rbp), %rdi
movq %rdi, -0x48b0(%rbp)
leaq -0x3cc8(%rbp), %rsi
movq %rsi, -0x48b8(%rbp)
callq 0x4410
movq -0x48b8(%rbp), %rdi
callq 0x46d8
leaq -0x3ce8(%rbp), %rdi
callq 0x46d8
movq -0x48b0(%rbp), %rsi
leaq -0x3f28(%rbp), %rdi
callq 0x7b70
jmp 0x6c7d
leaq -0x4168(%rbp), %rdi
leaq -0x3c68(%rbp), %rsi
callq 0x7bb0
jmp 0x6c92
leaq -0x3f28(%rbp), %rdi
leaq -0x4168(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1c720
jmp 0x6cab
leaq -0x4168(%rbp), %rdi
callq 0x7bf0
leaq -0x3f28(%rbp), %rdi
callq 0x7c10
leaq -0x3c68(%rbp), %rdi
callq 0x46d8
jmp 0x726a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6d06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3c88(%rbp), %rdi
callq 0x46d8
leaq -0x3ca8(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6d89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3ce8(%rbp), %rdi
callq 0x46d8
jmp 0x6d89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x6d7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x4168(%rbp), %rdi
callq 0x7bf0
leaq -0x3f28(%rbp), %rdi
callq 0x7c10
leaq -0x3c68(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
leaq 0x1c4fb(%rip), %rsi     # 0x2329c
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x48b9(%rbp)
jmp 0x6db5
movb -0x48b9(%rbp), %al
testb $0x1, %al
jne 0x6deb
jmp 0x6dc1
leaq 0x1c4dd(%rip), %rsi     # 0x232a5
leaq -0x2518(%rbp), %rdi
callq 0x7670
movb %al, -0x48ba(%rbp)
jmp 0x6ddc
movb -0x48ba(%rbp), %al
testb $0x1, %al
jne 0x6deb
jmp 0x70d1
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x6e60
movq 0x251f1(%rip), %rdi     # 0x2bff0
leaq 0x1c4c2(%rip), %rsi     # 0x232c8
callq 0x4310
movq %rax, -0x48c8(%rbp)
jmp 0x6e14
movq -0x48c8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x48d0(%rbp)
jmp 0x6e2d
movq -0x48d0(%rbp), %rdi
leaq 0x1c542(%rip), %rsi     # 0x2337d
callq 0x4310
movq %rax, -0x48d8(%rbp)
jmp 0x6e49
movq -0x48d8(%rbp), %rdi
movq 0x25159(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x6e5e
jmp 0x6e60
leaq -0x4170(%rbp), %rdi
leaq -0x2528(%rbp), %rsi
callq 0x7890
leaq -0x50(%rbp), %rdi
movq %rdi, -0x48e8(%rbp)
callq 0x41c0
movq %rax, -0x4180(%rbp)
leaq -0x4178(%rbp), %rdi
leaq -0x4180(%rbp), %rsi
callq 0x7890
movq -0x48e8(%rbp), %rdi
movq -0x4170(%rbp), %rsi
movq -0x4178(%rbp), %rdx
callq 0x40a0
movq %rax, -0x48e0(%rbp)
jmp 0x6ec0
movq -0x48e0(%rbp), %rax
movq %rax, -0x4188(%rbp)
leaq 0x1c34f(%rip), %rdx     # 0x23224
leaq -0x41e8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6ee7
leaq -0x41c8(%rbp), %rdi
leaq -0x41e8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x78d0
jmp 0x6f00
leaq -0x41a8(%rbp), %rdi
leaq -0x41c8(%rbp), %rsi
leaq -0x2518(%rbp), %rdx
callq 0x78d0
jmp 0x6f1c
leaq -0x41c8(%rbp), %rdi
callq 0x46d8
leaq -0x41e8(%rbp), %rdi
callq 0x46d8
leaq 0x1c76c(%rip), %rdx     # 0x236a7
leaq -0x4228(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x7920
jmp 0x6f4d
leaq -0x4208(%rbp), %rdi
leaq -0x4228(%rbp), %rsi
leaq -0x2518(%rbp), %rdx
callq 0x78d0
jmp 0x6f69
leaq -0x50(%rbp), %rdi
movq %rdi, -0x48f0(%rbp)
leaq -0x4208(%rbp), %rsi
movq %rsi, -0x48f8(%rbp)
callq 0x4410
movq -0x48f8(%rbp), %rdi
callq 0x46d8
leaq -0x4228(%rbp), %rdi
callq 0x46d8
movq -0x48f0(%rbp), %rsi
leaq -0x4468(%rbp), %rdi
callq 0x1d750
jmp 0x6fb4
leaq -0x46a8(%rbp), %rdi
leaq -0x41a8(%rbp), %rsi
callq 0x7c30
jmp 0x6fc9
leaq -0x4468(%rbp), %rdi
leaq -0x46a8(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x1e090
jmp 0x6fe2
leaq -0x46a8(%rbp), %rdi
callq 0x7c70
leaq -0x4468(%rbp), %rdi
callq 0x7c90
leaq -0x41a8(%rbp), %rdi
callq 0x46d8
jmp 0x7268
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x703d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x41c8(%rbp), %rdi
callq 0x46d8
leaq -0x41e8(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x70c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x4228(%rbp), %rdi
callq 0x46d8
jmp 0x70c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x70b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x46a8(%rbp), %rdi
callq 0x7c70
leaq -0x4468(%rbp), %rdi
callq 0x7c90
leaq -0x41a8(%rbp), %rdi
callq 0x46d8
jmp 0x73a5
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x70e3
jmp 0x718b
movq 0x24f06(%rip), %rdi     # 0x2bff0
leaq 0x1c2c0(%rip), %rsi     # 0x233b1
callq 0x4310
movq %rax, -0x4900(%rbp)
jmp 0x70ff
movq -0x4900(%rbp), %rdi
leaq -0x2518(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4908(%rbp)
jmp 0x711b
movq -0x4908(%rbp), %rdi
leaq 0x1c2a8(%rip), %rsi     # 0x233d1
callq 0x4310
movq %rax, -0x4910(%rbp)
jmp 0x7137
movq -0x4910(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4918(%rbp)
jmp 0x7150
movq -0x4918(%rbp), %rdi
leaq 0x1c289(%rip), %rsi     # 0x233e7
callq 0x4310
movq %rax, -0x4920(%rbp)
jmp 0x716c
movq -0x4920(%rbp), %rdi
movq 0x24e36(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x7181
movl $0x3, %edi
callq 0x4400
movq 0x24e5e(%rip), %rdi     # 0x2bff0
leaq 0x1c218(%rip), %rsi     # 0x233b1
callq 0x4310
movq %rax, -0x4928(%rbp)
jmp 0x71a7
movq -0x4928(%rbp), %rdi
leaq -0x2518(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4930(%rbp)
jmp 0x71c3
movq -0x4930(%rbp), %rdi
leaq 0x1c200(%rip), %rsi     # 0x233d1
callq 0x4310
movq %rax, -0x4938(%rbp)
jmp 0x71df
movq -0x4938(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4940(%rbp)
jmp 0x71f8
movq -0x4940(%rbp), %rdi
leaq 0x1c1fd(%rip), %rsi     # 0x23403
callq 0x4310
movq %rax, -0x4948(%rbp)
jmp 0x7214
movq -0x4948(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4950(%rbp)
jmp 0x722d
movq -0x4950(%rbp), %rdi
leaq 0x1c1e6(%rip), %rsi     # 0x23421
callq 0x4310
movq %rax, -0x4958(%rbp)
jmp 0x7249
movq -0x4958(%rbp), %rdi
movq 0x24d59(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x725e
movl $0x4, %edi
callq 0x4400
jmp 0x726a
jmp 0x726c
jmp 0x726e
jmp 0x7397
leaq -0x30(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x7282
jmp 0x72f2
movq 0x24d67(%rip), %rdi     # 0x2bff0
leaq 0x1c19d(%rip), %rsi     # 0x2342d
callq 0x4310
movq %rax, -0x4960(%rbp)
jmp 0x729e
movq -0x4960(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4968(%rbp)
jmp 0x72b7
movq -0x4968(%rbp), %rdi
leaq 0x1c122(%rip), %rsi     # 0x233e7
callq 0x4310
movq %rax, -0x4970(%rbp)
jmp 0x72d3
movq -0x4970(%rbp), %rdi
movq 0x24ccf(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x72e8
movl $0x3, %edi
callq 0x4400
movq 0x24cf7(%rip), %rdi     # 0x2bff0
leaq 0x1c12d(%rip), %rsi     # 0x2342d
callq 0x4310
movq %rax, -0x4978(%rbp)
jmp 0x730e
movq -0x4978(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4980(%rbp)
jmp 0x7327
movq -0x4980(%rbp), %rdi
leaq 0x1c0ce(%rip), %rsi     # 0x23403
callq 0x4310
movq %rax, -0x4988(%rbp)
jmp 0x7343
movq -0x4988(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x42e0
movq %rax, -0x4990(%rbp)
jmp 0x735c
movq -0x4990(%rbp), %rdi
leaq 0x1c0b7(%rip), %rsi     # 0x23421
callq 0x4310
movq %rax, -0x4998(%rbp)
jmp 0x7378
movq -0x4998(%rbp), %rdi
movq 0x24c2a(%rip), %rsi     # 0x2bfb0
callq 0x4350
jmp 0x738d
movl $0x4, %edi
callq 0x4400
leaq -0x2518(%rbp), %rdi
callq 0x46d8
jmp 0x73b3
leaq -0x2518(%rbp), %rdi
callq 0x46d8
jmp 0x73f8
jmp 0x73b5
jmp 0x73b7
jmp 0x73b9
leaq -0xe8(%rbp), %rdi
callq 0x7cb0
leaq -0x98(%rbp), %rdi
callq 0x46d8
leaq -0x70(%rbp), %rdi
callq 0x46d8
leaq -0x50(%rbp), %rdi
callq 0x46d8
leaq -0x30(%rbp), %rdi
callq 0x46d8
movl -0x4(%rbp), %eax
addq $0x49a0, %rsp           # imm = 0x49A0
popq %rbp
retq
leaq -0xe8(%rbp), %rdi
callq 0x7cb0
leaq -0x98(%rbp), %rdi
callq 0x46d8
leaq -0x70(%rbp), %rdi
callq 0x46d8
leaq -0x50(%rbp), %rdi
callq 0x46d8
leaq -0x30(%rbp), %rdi
callq 0x46d8
movq -0xa8(%rbp), %rdi
callq 0x4610
nopw (%rax,%rax)