// File: /workspace/github_cpp_makefile_star2_O1/CK7[P]abawaca/src/abawaca.cpp
// Function: Prog_params::read_params(int, char const**)
int Prog_params::read_params(int argc, const char** argv)
{
	if((argc == 1) || ((argc == 2) && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")))) {
		usage(argv[0]);
		return -1;
	}

	// Read parameters
	for(auto i=1; i<argc; i++) {
		if(!strcmp(argv[i], "-u")) {
			abawaca_build_dir = argv[++i];
			char data_file[2048];
			sprintf(data_file, "%s/data.txt", abawaca_build_dir.c_str());
			FILE* fp = fopen(data_file, "r");
			if(fp == NULL) {
				cerr << "Error: could not find " << abawaca_build_dir << "/data.txt. Is it possible that the data was generated using an old version of abawaca-build? (prior to v1.07)" << endl << endl; 
				return -1;
			}
			char line[8192];
			while(fgets(line, 8192, fp)) {
				char* p = strrchr(line, '\n');
				while((p != NULL) && (*p == '\n'))  {
					*(p--) = 0;
				}
				p=strchr(line, '\t');
				*(p++) = 0;
				while(isspace(*p) && (*p != 0))
					p++;

				if(!strcmp(line, "Links")) {
					links_file = p;
				}
				else if(!strcmp(line, "Info")) {
					info_file = p;
				}
				else if(!strcmp(line, "Names")) {
					names_file = p;
				}
				else if(!strcmp(line, "Lrn")) {
					lrn_file = p;
				}
				else if(!strcmp(line, "Assembly")) {
					fasta_file = p;
				}
				else if(!strcmp(line, "SCG")) {
					gene2scg_file = p;
				}
			}
/*			lrn_file = abawaca_build_dir + "/abawaca.lrn";
			names_file = abawaca_build_dir + "/abawaca.names";
			info_file = abawaca_build_dir + "/abawaca.info";
			links_file = abawaca_build_dir + "/abawaca.links";*/
		}
		else if(!strcmp(argv[i], "-f"))
			fasta_file = argv[++i];
		else if(!strcmp(argv[i], "-o"))
			root_dir = argv[++i];
		else if(!strcmp(argv[i], "-p")) {
			ncpus = atoi(argv[++i]);
			if(ncpus==0 || ncpus>40) {
				cerr << "Error: # CPUs (" << argv[i] << ") must be an integer between 1 to 40" << endl << endl;
				return -1; 
			}
		}
		else if(!strcmp(argv[i], "-c"))
			gene2scg_file = argv[++i];
		else {
			cerr << "Unrecognizes flag: " << argv[i] << endl;
			return -1;
		}
	}

	// Make sure we have everything we need
	if(lrn_file == "") {
		cerr << "abawaca-build directrory was not specified (-u)" << endl << endl;
		return -1;
	}

	FILE* IN = fopen(names_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read names file (" << names_file << ") from the abawaca directory (" << abawaca_build_dir << ")" << endl;
		return -1;
	}
	fclose(IN);

	IN = fopen(lrn_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read lrn file (" << lrn_file << ") from the abawaca directory (" << abawaca_build_dir << ")" << endl;
		return -1;
	}
	fclose(IN);

	IN = fopen(info_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read info file (" << info_file << ") from the abawaca directory (" << abawaca_build_dir << ")" << endl;
		return -1;
	}
	fclose(IN);

	IN = fopen(links_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read links file (" << links_file << ") from the abawaca directory (" << abawaca_build_dir << ")" << endl;
		return -1;
	}
	fclose(IN);

	IN = fopen(fasta_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read " << fasta_file << endl;
		return -1;
	}
	fclose(IN);

	if(gene2scg_file.size() > 0) {
		IN = fopen(gene2scg_file.c_str(), "r");
		if(IN == NULL) {
			cerr << "Could not read " << gene2scg_file << endl;
			return -1;
		}
		fclose(IN);
	}

//	const char* p = strrchr(argv[0], '/');
//	if(p != NULL) {
//		string s = argv[0];
//		scg_list_file = s.substr(0, p-argv[0]+1) + scg_list_file;
//	}
	IN = fopen(scg_list_file.c_str(), "r");
	if(IN == NULL) {
		cerr << "Could not read " << scg_list_file << endl;
		return -1;
	}
	fclose(IN);

	cluster_dir = root_dir + string("/clusters");
	fasta_dir = root_dir + string("/final-clusters");

	char 			line[1024] = {};

	if(!directory_exists(root_dir.c_str())) {
		sprintf(line, "mkdir %s", root_dir.c_str());
		system(line);
	}
	if(!directory_exists(cluster_dir.c_str())) {
		sprintf(line, "mkdir %s", cluster_dir.c_str());
		system(line);
	}
	if(!directory_exists(fasta_dir.c_str())) {
		sprintf(line, "mkdir %s", fasta_dir.c_str());
		system(line);
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2898, %rsp           # imm = 0x2898
movl %esi, %r15d
movq %rdi, %r14
cmpl $0x2, %esi
movq %rdx, -0x38(%rbp)
je 0x831e
cmpl $0x1, %r15d
jne 0x8350
jmp 0x87c0
movq 0x8(%rdx), %rbx
leaq 0x11f31(%rip), %rsi     # 0x1a25a
movq %rbx, %rdi
callq 0x5510
testl %eax, %eax
je 0x87c0
leaq 0x11f1d(%rip), %rsi     # 0x1a25d
movq %rbx, %rdi
callq 0x5510
testl %eax, %eax
je 0x87c0
cmpl $0x2, %r15d
setge %al
movq %r14, -0x40(%rbp)
movq -0x38(%rbp), %rbx
jl 0x88bb
movq -0x40(%rbp), %rcx
leaq 0xc0(%rcx), %rdx
movq %rdx, -0x58(%rbp)
leaq 0xc8(%rcx), %rdx
movq %rdx, -0x50(%rbp)
leaq 0xa0(%rcx), %rdx
movq %rdx, -0x80(%rbp)
leaq 0xa8(%rcx), %rdx
movq %rdx, -0x78(%rbp)
leaq 0x80(%rcx), %rdx
movq %rdx, -0x68(%rbp)
leaq 0x88(%rcx), %rdx
movq %rdx, -0x60(%rbp)
leaq 0x100(%rcx), %rdx
movq %rdx, -0x70(%rbp)
leaq 0x8(%rcx), %rdx
movq %rdx, -0x88(%rbp)
leaq 0x20(%rcx), %rdx
movq %rdx, -0x98(%rbp)
leaq 0x28(%rcx), %rdx
movq %rdx, -0x90(%rbp)
leaq 0x40(%rcx), %rdx
movq %rdx, -0xa8(%rbp)
leaq 0x48(%rcx), %rdx
movq %rdx, -0xa0(%rbp)
leaq 0x60(%rcx), %rdx
movq %rdx, -0xb8(%rbp)
addq $0x68, %rcx
movq %rcx, -0xb0(%rbp)
movl $0x1, %r12d
movl %r15d, -0x44(%rbp)
movb %al, -0x29(%rbp)
movslq %r12d, %r14
movq (%rbx,%r14,8), %r15
movq %r15, %rdi
leaq 0x11e43(%rip), %rsi     # 0x1a264
callq 0x5510
testl %eax, %eax
je 0x84c9
movq %r15, %rdi
leaq 0x11eda(%rip), %rsi     # 0x1a312
callq 0x5510
movq -0x60(%rbp), %rcx
movq -0x68(%rbp), %r13
testl %eax, %eax
je 0x849a
movq %r15, %rdi
leaq 0x11ec2(%rip), %rsi     # 0x1a315
callq 0x5510
movq -0x78(%rbp), %rcx
movq -0x80(%rbp), %r13
testl %eax, %eax
je 0x849a
movq %r15, %rdi
leaq 0x11eaa(%rip), %rsi     # 0x1a318
callq 0x5510
testl %eax, %eax
je 0x8755
movq %r15, %rdi
leaq 0x11ecb(%rip), %rsi     # 0x1a350
callq 0x5510
movq -0x50(%rbp), %rcx
movq -0x58(%rbp), %r13
testl %eax, %eax
jne 0x87ce
incl %r12d
movq -0x38(%rbp), %rbx
movq 0x8(%rbx,%r14,8), %r14
movq (%rcx), %r15
movq %r14, %rdi
callq 0x5180
movq %r13, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x55a0
jmp 0x873d
movq 0x8(%rbx,%r14,8), %rbx
movq -0x40(%rbp), %r14
movq 0x108(%r14), %r15
movq %rbx, %rdi
callq 0x5180
movq -0x70(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %rbx, %rcx
movq %rax, %r8
callq 0x55a0
movq 0x100(%r14), %rdx
leaq -0x8c0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x11d5a(%rip), %rsi     # 0x1a267
xorl %eax, %eax
callq 0x5090
movq %rbx, %rdi
leaq 0x11c13(%rip), %rsi     # 0x1a131
callq 0x5450
movq %rax, %r13
testq %rax, %rax
je 0x8691
leaq -0x28c0(%rbp), %rbx
movq %rbx, %rdi
movl $0x2000, %esi           # imm = 0x2000
movq %r13, %rdx
callq 0x55e0
testq %rax, %rax
je 0x872d
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53f0
testq %rax, %rax
je 0x8573
cmpb $0xa, (%rax)
jne 0x8573
movb $0x0, (%rax)
cmpb $0xa, -0x1(%rax)
leaq -0x1(%rax), %rax
je 0x8566
movq %rbx, %rdi
movl $0x9, %esi
callq 0x5150
movq %rax, %r15
movb $0x0, (%rax)
movsbl 0x1(%r15), %ebx
incq %r15
movl %ebx, %edi
callq 0x5070
testl %ebx, %ebx
je 0x859d
testl %eax, %eax
jne 0x8586
movl -0x28c0(%rbp), %eax
movl $0x6b6e694c, %ecx       # imm = 0x6B6E694C
xorl %ecx, %eax
movzwl -0x28bc(%rbp), %ecx
xorl $0x73, %ecx
orl %eax, %ecx
movq -0xb0(%rbp), %rax
movq -0xb8(%rbp), %rbx
je 0x866e
movl -0x28c0(%rbp), %eax
movl $0x6f666e49, %ecx       # imm = 0x6F666E49
xorl %ecx, %eax
movzbl -0x28bc(%rbp), %ecx
orl %eax, %ecx
movq -0xa0(%rbp), %rax
movq -0xa8(%rbp), %rbx
je 0x866e
movl -0x28c0(%rbp), %eax
movl $0x656d614e, %ecx       # imm = 0x656D614E
xorl %ecx, %eax
movzwl -0x28bc(%rbp), %ecx
xorl $0x73, %ecx
orl %eax, %ecx
movq -0x90(%rbp), %rax
movq -0x98(%rbp), %rbx
je 0x866e
movl -0x28c0(%rbp), %ecx
movq -0x88(%rbp), %rax
movq -0x40(%rbp), %rbx
cmpl $0x6e724c, %ecx         # imm = 0x6E724C
je 0x866e
movq -0x28c0(%rbp), %rax
movabsq $0x796c626d65737341, %rdx # imm = 0x796C626D65737341
xorq %rdx, %rax
movzbl -0x28b8(%rbp), %edx
orq %rax, %rdx
movq -0x60(%rbp), %rax
movq -0x68(%rbp), %rbx
je 0x866e
movq -0x50(%rbp), %rax
movq -0x58(%rbp), %rbx
cmpl $0x474353, %ecx         # imm = 0x474353
jne 0x852f
movq (%rax), %r14
movq %r15, %rdi
callq 0x5180
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %rax, %r8
callq 0x55a0
jmp 0x852f
movq %r14, %rbx
movl $0x16, %edx
movq 0x1a948(%rip), %r14     # 0x22fe8
movq %r14, %rdi
leaq 0x11bc9(%rip), %rsi     # 0x1a273
callq 0x5420
movq 0x100(%rbx), %rsi
movq 0x108(%rbx), %rdx
movq %r14, %rdi
callq 0x5420
movq %rax, %rbx
movl $0x6d, %edx
movq %rax, %rdi
leaq 0x11bb3(%rip), %rsi     # 0x1a28a
callq 0x5420
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq -0x38(%rbp), %rbx
testq %r13, %r13
je 0x88ac
incl %r12d
incl %r12d
movl -0x44(%rbp), %r15d
cmpl %r15d, %r12d
setl %al
jl 0x840d
jmp 0x88bb
movq -0x38(%rbp), %rbx
movq 0x8(%rbx,%r14,8), %rdi
callq 0x55c0
movq -0x40(%rbp), %rcx
movl %eax, 0x160(%rcx)
testl %eax, %eax
je 0x8776
cmpl $0x29, %eax
jl 0x873a
incq %r14
movq 0x1a868(%rip), %r15     # 0x22fe8
leaq 0x11b94(%rip), %rsi     # 0x1a31b
movl $0xf, %edx
movq %r15, %rdi
callq 0x5420
movq (%rbx,%r14,8), %rbx
testq %rbx, %rbx
je 0x882f
movq %rbx, %rdi
callq 0x5180
movq 0x1a838(%rip), %rdi     # 0x22fe8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x5420
jmp 0x8847
movq -0x38(%rbp), %rdi
callq 0x5790
jmp 0x8d89
movq 0x1a813(%rip), %r15     # 0x22fe8
leaq 0x11b77(%rip), %rsi     # 0x1a353
movl $0x13, %edx
movq %r15, %rdi
callq 0x5420
movq -0x38(%rbp), %rax
movq (%rax,%r14,8), %rbx
testq %rbx, %rbx
je 0x880e
movq %rbx, %rdi
callq 0x5180
movq %r15, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x5420
jmp 0x8885
movq 0x1a7d3(%rip), %r15     # 0x22fe8
movq (%r15), %rax
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x5630
jmp 0x8885
movq (%r15), %rax
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x5630
leaq 0x11add(%rip), %rsi     # 0x1a32b
movl $0x24, %edx
movq %r15, %rdi
callq 0x5420
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %r15, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq %rax, %r15
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %r15, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testb $0x1, -0x29(%rbp)
jne 0x8d8e
leaq 0x129a8(%rip), %rsi     # 0x1b26a
movq -0x40(%rbp), %r14
movq %r14, %rdi
callq 0x50f0
testl %eax, %eax
je 0x8b52
movq 0x20(%r14), %rdi
leaq 0x11850(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8b9f
movq %rax, %rdi
callq 0x5390
movq (%r14), %rdi
leaq 0x11830(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8bc4
movq %rax, %rdi
callq 0x5390
movq 0x40(%r14), %rdi
leaq 0x1180f(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8c5e
movq %rax, %rdi
callq 0x5390
movq 0x60(%r14), %rdi
leaq 0x117ee(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8c83
movq %rax, %rdi
callq 0x5390
movq 0x80(%r14), %rdi
leaq 0x117ca(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8cfa
movq %rax, %rdi
callq 0x5390
cmpq $0x0, 0xc8(%r14)
je 0x89ab
movq 0xc0(%r14), %rdi
leaq 0x1179c(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8d50
movq %rax, %rdi
callq 0x5390
movq 0xe0(%r14), %rdi
leaq 0x11778(%rip), %rsi     # 0x1a131
callq 0x5450
testq %rax, %rax
je 0x8d25
movq %rax, %rdi
callq 0x5390
leaq -0x8b0(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x11a51(%rip), %rsi     # 0x1a433
leaq 0x11a53(%rip), %rdx     # 0x1a43c
leaq -0x8c0(%rbp), %rdi
callq 0xb314
leaq 0xa0(%r14), %r15
leaq -0x28c0(%rbp), %rdi
leaq -0x8c0(%rbp), %rdx
movq %r15, %rsi
callq 0x9835
addq $0x120, %r14            # imm = 0x120
leaq -0x28c0(%rbp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x5490
movq (%rbx), %rdi
leaq -0x28b0(%rbp), %r13
cmpq %r13, %rdi
je 0x8a3f
callq 0x5340
movq -0x8c0(%rbp), %rdi
cmpq %r12, %rdi
je 0x8a50
callq 0x5340
leaq -0x8c0(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x119dc(%rip), %rsi     # 0x1a43d
leaq 0x119e4(%rip), %rdx     # 0x1a44c
callq 0xb314
leaq -0x28c0(%rbp), %rdi
leaq -0x8c0(%rbp), %rdx
movq %r15, %rsi
callq 0x9835
movq -0x40(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq %rdi, %r12
movq %rbx, %rsi
callq 0x5490
movq (%rbx), %rdi
cmpq %r13, %rdi
je 0x8aa6
callq 0x5340
movq -0x8c0(%rbp), %rdi
leaq -0x8b0(%rbp), %rax
cmpq %rax, %rdi
je 0x8abe
callq 0x5340
leaq -0x28c0(%rbp), %rdi
movl $0x400, %edx            # imm = 0x400
xorl %esi, %esi
callq 0x51f0
movq (%r15), %rdi
callq 0x17a2c
testl %eax, %eax
jne 0x8af9
movq (%r15), %rdx
leaq 0x11966(%rip), %rsi     # 0x1a44d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5090
movq %rbx, %rdi
callq 0x52e0
movq (%r14), %rdi
callq 0x17a2c
testl %eax, %eax
jne 0x8b21
movq (%r14), %rdx
leaq 0x1193e(%rip), %rsi     # 0x1a44d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5090
movq %rbx, %rdi
callq 0x52e0
movq (%r12), %rdi
callq 0x17a2c
testl %eax, %eax
jne 0x8b4b
movq (%r12), %rdx
leaq 0x11914(%rip), %rsi     # 0x1a44d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5090
movq %rbx, %rdi
callq 0x52e0
xorl %eax, %eax
jmp 0x8d8e
movq 0x1a48f(%rip), %rbx     # 0x22fe8
leaq 0x11807(%rip), %rsi     # 0x1a367
movl $0x2f, %edx
movq %rbx, %rdi
callq 0x5420
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
movq %rax, %rbx
movq (%rax), %rax
jmp 0x8c35
movq 0x1a442(%rip), %rbx     # 0x22fe8
leaq 0x117ea(%rip), %rsi     # 0x1a397
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x5420
movq 0x20(%r14), %rsi
movq 0x28(%r14), %rdx
jmp 0x8be6
movq 0x1a41d(%rip), %rbx     # 0x22fe8
leaq 0x11800(%rip), %rsi     # 0x1a3d2
movl $0x19, %edx
movq %rbx, %rdi
callq 0x5420
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x5420
movq %rax, %rbx
leaq 0x117bb(%rip), %rsi     # 0x1a3b3
movl $0x1e, %edx
movq %rax, %rdi
callq 0x5420
movq 0x100(%r14), %rsi
movq 0x108(%r14), %rdx
movq %rbx, %rdi
callq 0x5420
movq %rax, %rbx
leaq 0x12913(%rip), %rsi     # 0x1b538
movl $0x1, %edx
movq %rax, %rdi
callq 0x5420
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5360
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5250
jmp 0x8d89
movq 0x1a383(%rip), %rbx     # 0x22fe8
leaq 0x11780(%rip), %rsi     # 0x1a3ec
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x5420
movq 0x40(%r14), %rsi
movq 0x48(%r14), %rdx
jmp 0x8ca6
movq 0x1a35e(%rip), %rbx     # 0x22fe8
leaq 0x11776(%rip), %rsi     # 0x1a407
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x5420
movq 0x60(%r14), %rsi
movq 0x68(%r14), %rdx
movq %rbx, %rdi
callq 0x5420
movq %rax, %rbx
leaq 0x116fb(%rip), %rsi     # 0x1a3b3
movl $0x1e, %edx
movq %rax, %rdi
callq 0x5420
movq 0x100(%r14), %rsi
movq 0x108(%r14), %rdx
movq %rbx, %rdi
callq 0x5420
movq %rax, %rbx
leaq 0x12853(%rip), %rsi     # 0x1b538
movl $0x1, %edx
movq %rax, %rdi
callq 0x5420
movq %rbx, %rdi
jmp 0x8d84
movq 0x1a2e7(%rip), %rbx     # 0x22fe8
leaq 0x1171b(%rip), %rsi     # 0x1a423
movl $0xf, %edx
movq %rbx, %rdi
callq 0x5420
movq 0x80(%r14), %rsi
movq 0x88(%r14), %rdx
jmp 0x8d79
movq 0x1a2bc(%rip), %rbx     # 0x22fe8
leaq 0x116f0(%rip), %rsi     # 0x1a423
movl $0xf, %edx
movq %rbx, %rdi
callq 0x5420
movq 0xe0(%r14), %rsi
movq 0xe8(%r14), %rdx
jmp 0x8d79
movq 0x1a291(%rip), %rbx     # 0x22fe8
leaq 0x116c5(%rip), %rsi     # 0x1a423
movl $0xf, %edx
movq %rbx, %rdi
callq 0x5420
movq 0xc0(%r14), %rsi
movq 0xc8(%r14), %rdx
movq %rbx, %rdi
callq 0x5420
movq %rax, %rdi
callq 0x51a0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x2898, %rsp           # imm = 0x2898
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x8c0(%rbp), %rdi
leaq -0x8b0(%rbp), %rax
cmpq %rax, %rdi
jne 0x8dc9
jmp 0x8dd3
jmp 0x8dd0
movq %rax, %rbx
movq -0x8c0(%rbp), %rdi
cmpq %r12, %rdi
je 0x8dd3
callq 0x5340
jmp 0x8dd3
movq %rax, %rbx
movq %rbx, %rdi
callq 0x56a0