// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/ebwt_build.cpp
// Function: bowtie_build
int bowtie_build(int argc, const char **argv) {
	try {
		// Reset all global state, including getopt state
		opterr = optind = 1;
		resetOptions();

		string infile;
		EList<string> infiles;
		string outfile;

		parseOptions(argc, argv);
		argv0 = argv[0];
		if(showVersion) {
			cout << argv0 << " version " << BOWTIE_VERSION << endl;
			if(sizeof(void*) == 4) {
				cout << "32-bit" << endl;
			} else if(sizeof(void*) == 8) {
				cout << "64-bit" << endl;
			} else {
				cout << "Neither 32- nor 64-bit: sizeof(void*) = " << sizeof(void*) << endl;
			}
			cout << "Built on " << BUILD_HOST << endl;
			cout << BUILD_TIME << endl;
			cout << "Compiler: " << COMPILER_VERSION << endl;
			cout << "Options: " << COMPILER_OPTIONS << endl;
			cout << "Sizeof {int, long, long long, void*, size_t, off_t}: {"
				 << sizeof(int)
				 << ", " << sizeof(long) << ", " << sizeof(long long)
				 << ", " << sizeof(void *) << ", " << sizeof(size_t)
				 << ", " << sizeof(off_t) << "}" << endl;
			return 0;
		}

		// Get input filename
		if(optind >= argc) {
			cerr << "No input sequence or sequence file specified!" << endl;
			printUsage(cerr);
			return 1;
		}
		infile = argv[optind++];

		// Get output filename
		if(optind >= argc) {
			cerr << "No output file specified!" << endl;
			printUsage(cerr);
			return 1;
		}
		outfile = argv[optind++];

		tokenize(infile, ",", infiles);
		if(infiles.size() < 1) {
			cerr << "Tokenized input file list was empty!" << endl;
			printUsage(cerr);
			return 1;
		}

		// Optionally summarize
		if(verbose) {
			cout << "Settings:" << endl
				 << "  Output files: \"" << outfile << ".*." + gEbwt_ext + "\"" << endl
				 << "  Line rate: " << lineRate << " (line is " << (1<<lineRate) << " bytes)" << endl
				 << "  Lines per side: " << linesPerSide << " (side is " << ((1<<lineRate)*linesPerSide) << " bytes)" << endl
				 << "  Offset rate: " << offRate << " (one in " << (1<<offRate) << ")" << endl
				 << "  FTable chars: " << ftabChars << endl
				 << "  Strings: " << (packed? "packed" : "unpacked") << endl
				 ;
			if(bmax == OFF_MASK) {
				cout << "  Max bucket size: default" << endl;
			} else {
				cout << "  Max bucket size: " << bmax << endl;
			}
			if(bmaxMultSqrt == OFF_MASK) {
				cout << "  Max bucket size, sqrt multiplier: default" << endl;
			} else {
				cout << "  Max bucket size, sqrt multiplier: " << bmaxMultSqrt << endl;
			}
			if(bmaxDivN == 0xffffffff) {
				cout << "  Max bucket size, len divisor: default" << endl;
			} else {
				cout << "  Max bucket size, len divisor: " << bmaxDivN << endl;
			}
			cout << "  Difference-cover sample period: " << dcv << endl;
			cout << "  Endianness: " << (bigEndian? "big":"little") << endl
				 << "  Actual local endianness: " << (currentlyBigEndian()? "big":"little") << endl
				 << "  Sanity checking: " << (sanityCheck? "enabled":"disabled") << endl;
	#ifdef NDEBUG
			cout << "  Assertions: disabled" << endl;
	#else
			cout << "  Assertions: enabled" << endl;
	#endif
			cout << "  Random seed: " << seed << endl;
			cout << "  Sizeofs: void*:" << sizeof(void*) << ", int:" << sizeof(int) << ", long:" << sizeof(long) << ", size_t:" << sizeof(size_t) << endl;
			cout << "Input files DNA, " << file_format_names[format] << ":" << endl;
			for(size_t i = 0; i < infiles.size(); i++) {
				cout << "  " << infiles[i] << endl;
			}
		}
		// Seed random number generator
		srand(seed);
		{
			Timer timer(cout, "Total time for call to driver() for forward index: ", verbose);
			if(!packed) {
				try {
					driver<BTRefString >(infile, infiles, outfile);
				} catch(bad_alloc& e) {
					if(autoMem) {
						cerr << "Switching to a packed string representation." << endl;
						packed = true;
					} else {
						throw e;
					}
				}
			}
			if(packed) {
				driver<S2bDnaString>(infile, infiles, outfile);
			}
		}
		if(doubleEbwt) {
			srand(seed);
			Timer timer(cout, "Total time for backward call to driver() for mirror index: ", verbose);
			if(!packed) {
				try {
					driver<BTRefString >(infile, infiles, outfile + ".rev", true);
				} catch(bad_alloc& e) {
					if(autoMem) {
						cerr << "Switching to a packed string representation." << endl;
						packed = true;
					} else {
						throw e;
					}
				}
			}
			if(packed) {
				driver<S2bDnaString>(infile, infiles, outfile + ".rev", true);
			}
		}
		return 0;
	} catch(std::exception& e) {
		cerr << "Command: ";
		for(int i = 0; i < argc; i++) cerr << argv[i] << " ";
		cerr << endl;
		return 1;
	} catch(int e) {
		if(e != 0) {
			cerr << "Command: ";
			for(int i = 0; i < argc; i++) cerr << argv[i] << " ";
			cerr << endl;
		}
		return e;
	}
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movb $0x1, %al
movb %al, 0x2cb91(%rip)      # 0x34d5c
movb %al, 0x2cbc3(%rip)      # 0x34d94
movb %al, 0x2cbca(%rip)      # 0x34da1
movq 0x29dd2(%rip), %rax     # 0x31fb0
pushq $0x1
popq %rcx
movl %ecx, (%rax)
orl $-0x1, 0x2cb8a(%rip)    # 0x34d74
movq 0x29dcf(%rip), %rax     # 0x31fc0
orl $-0x1, 0x2cb80(%rip)    # 0x34d78
movl %ecx, (%rax)
andl $0x0, 0x2cb97(%rip)     # 0x34d98
xorl %edx, %edx
andl $0x0, 0x2cb92(%rip)     # 0x34d9c
movb %dl, 0x2cb78(%rip)      # 0x34d88
andl $0x0, 0x2cb75(%rip)     # 0x34d8c
movl %ecx, 0x2cb73(%rip)     # 0x34d90
andl $0x0, 0x2cb34(%rip)     # 0x34d58
movl $0x4, 0x2cb4e(%rip)     # 0x34d7c
movl $0x400, 0x2cb48(%rip)   # imm = 0x400
movl $0x6, 0x2cb1e(%rip)     # 0x34d60
movl %ecx, 0x2cb1c(%rip)     # 0x34d64
movl $0x5, 0x2cb16(%rip)     # 0x34d68
andl $0x0, 0x2cb2b(%rip)     # 0x34d84
movl $0xa, 0x2cb09(%rip)     # 0x34d6c
movb %dl, 0x2cb37(%rip)      # 0x34da0
movb %dl, 0x2cb01(%rip)      # 0x34d70
movb %dl, 0x2cb2d(%rip)      # 0x34da2
movl $0x2, 0x2cb25(%rip)     # 0x34da4
andq $0x0, 0x2cab1(%rip)     # 0x34d38
movl %ecx, 0x2cb1b(%rip)     # 0x34da8
movq 0x2ca9c(%rip), %rax     # 0x34d30
movb %dl, (%rax)
leaq 0xa8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rsi, 0x8(%rsp)
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
movq %rcx, 0x58(%rsp)
andq $0x0, 0x60(%rsp)
movq $0x80, 0x68(%rsp)
andq $0x0, 0x70(%rsp)
leaq 0x88(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movl %edi, %r15d
movb %dl, (%rax)
movl $0x0, 0x14(%rsp)
movb %dl, (%rcx)
leaq 0x38(%rsp), %r12
andl $0x0, (%r12)
leaq 0x1ceb2(%rip), %r13     # 0x251b3
leaq 0x2a0c8(%rip), %rbp     # 0x323d0
leaq 0x1bd45(%rip), %rbx     # 0x24054
leaq 0x1bcee(%rip), %r14     # 0x24004
movl %r15d, %edi
movq 0x8(%rsp), %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %r12, %r8
callq 0x55f0
leal -0x61(%rax), %ecx
cmpl $0x13, %ecx
ja 0x8346
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
jmpq *%rax
movb $0x0, 0x2ca50(%rip)     # 0x34d94
jmp 0x8316
leal -0x100(%rax), %ecx
cmpl $0xa, %ecx
ja 0x837c
movslq (%rbx,%rcx,4), %rax
addq %rbx, %rax
jmpq *%rax
leaq 0x1ccef(%rip), %rdi     # 0x25050
callq 0xaa30
orl $-0x1, 0x2ca0b(%rip)    # 0x34d78
movl %eax, 0x2ca01(%rip)     # 0x34d74
orl $-0x1, 0x2ca02(%rip)    # 0x34d7c
jmp 0x8316
testl %eax, %eax
je 0x852c
cmpl $0x33, %eax
jne 0x8546
movb $0x1, 0x2ca0e(%rip)     # 0x34da2
jmp 0x8316
pushq $0x1
popq %rdi
leaq 0x1cc8a(%rip), %rsi     # 0x2502a
callq 0xa9b1
movl %eax, 0x2c9c1(%rip)     # 0x34d6c
jmp 0x8316
movb $0x1, 0x2c9b9(%rip)     # 0x34d70
jmp 0x8316
xorl %edi, %edi
leaq 0x1cc41(%rip), %rsi     # 0x25006
callq 0xa9b1
movl %eax, 0x2c998(%rip)     # 0x34d68
jmp 0x8316
movb $0x1, 0x2c9ac(%rip)     # 0x34d88
jmp 0x8316
movl $0xfffffffe, 0x2c989(%rip) # imm = 0xFFFFFFFE
jmp 0x8316
pushq $0x1
popq %rdi
leaq 0x1cbe3(%rip), %rsi     # 0x24fdd
callq 0xa9b1
movl %eax, 0x2c95f(%rip)     # 0x34d64
jmp 0x8316
movb $0x0, 0x2c990(%rip)     # 0x34da1
jmp 0x8316
movl $0x1, 0x2c970(%rip)     # 0x34d90
jmp 0x8316
movl $0x7, 0x2c961(%rip)     # 0x34d90
jmp 0x8316
pushq $0x3
popq %rdi
leaq 0x1cb7a(%rip), %rsi     # 0x24fb8
callq 0xa9b1
movl %eax, 0x2c917(%rip)     # 0x34d60
jmp 0x8316
movb $0x0, 0x2c907(%rip)     # 0x34d5c
jmp 0x8316
xorl %edi, %edi
leaq 0x1cc8e(%rip), %rsi     # 0x250f1
callq 0xa9b1
movl %eax, 0x2c93a(%rip)     # 0x34da8
jmp 0x8316
xorl %edi, %edi
leaq 0x1cc57(%rip), %rsi     # 0x250d3
callq 0xa9b1
movl %eax, 0x2c905(%rip)     # 0x34d8c
jmp 0x8316
leaq 0x1cc01(%rip), %rdi     # 0x25094
callq 0xaa30
movl %eax, 0x2c8de(%rip)     # 0x34d7c
orl $-0x1, 0x2c8cf(%rip)    # 0x34d74
orl $-0x1, 0x2c8cc(%rip)    # 0x34d78
movb $0x1, %al
movl %eax, 0x14(%rsp)
jmp 0x8316
leaq 0x1cbb0(%rip), %rdi     # 0x2506e
callq 0xaa30
orl $-0x1, 0x2c8aa(%rip)    # 0x34d74
movl %eax, 0x2c8a8(%rip)     # 0x34d78
orl $-0x1, 0x2c8a5(%rip)    # 0x34d7c
jmp 0x8316
movq 0x29a9d(%rip), %rax     # 0x31f80
movq (%rax), %rsi
leaq 0x2c843(%rip), %rdi     # 0x34d30
callq 0x5710
jmp 0x8316
pushq $0x3
popq %rdi
leaq 0x1cbb5(%rip), %rsi     # 0x250b6
callq 0xa9b1
movl %eax, 0x2c874(%rip)     # 0x34d80
jmp 0x8316
movb $0x1, 0x2c888(%rip)     # 0x34da0
jmp 0x8316
movl $0x1, 0x2c87d(%rip)     # 0x34da4
jmp 0x8316
movslq 0x38(%rsp), %rax
shlq $0x5, %rax
cmpq $0x0, 0x10(%rax,%rbp)
jne 0x8316
jmp 0x8f44
cmpl $-0x1, %eax
jne 0x8f44
cmpl $0x27, 0x2c81e(%rip)    # 0x34d74
ja 0x85be
movq 0x29a91(%rip), %rdi     # 0x31ff0
leaq 0x1cbac(%rip), %rsi     # 0x25112
callq 0x5350
movl 0x2c803(%rip), %esi     # 0x34d74
movq %rax, %rdi
callq 0x51e0
leaq 0x1cbba(%rip), %rsi     # 0x2513a
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1cbb8(%rip), %rsi     # 0x2514f
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1cbf1(%rip), %rsi     # 0x2519f
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
testb $0x1, 0x14(%rsp)
jne 0x85d8
movl 0x2c7b1(%rip), %eax     # 0x34d7c
imull 0x2c7d6(%rip), %eax     # 0x34da8
movl %eax, 0x2c7a4(%rip)     # 0x34d7c
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq %rsi, 0x2c769(%rip)     # 0x34d50
cmpl $0x0, 0x2c76a(%rip)     # 0x34d58
je 0x8798
movq 0x299a5(%rip), %rdi     # 0x31fa0
callq 0x5350
leaq 0x1c2b9(%rip), %rsi     # 0x248c0
movq %rax, %rdi
callq 0x5350
leaq 0x1c2b4(%rip), %rsi     # 0x248ca
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x29973(%rip), %rdi     # 0x31fa0
leaq 0x1c29c(%rip), %rsi     # 0x248d0
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x29958(%rip), %rdi     # 0x31fa0
leaq 0x1c288(%rip), %rsi     # 0x248d7
callq 0x5350
leaq 0x1c286(%rip), %rsi     # 0x248e1
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x2992e(%rip), %rdi     # 0x31fa0
leaq 0x1c275(%rip), %rsi     # 0x248ee
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x29913(%rip), %rdi     # 0x31fa0
leaq 0x1c26e(%rip), %rsi     # 0x24902
callq 0x5350
leaq 0x1c26d(%rip), %rsi     # 0x2490d
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x298e9(%rip), %rdi     # 0x31fa0
leaq 0x1c2ab(%rip), %rsi     # 0x24969
callq 0x5350
leaq 0x1c2a9(%rip), %rsi     # 0x24973
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x298bf(%rip), %rdi     # 0x31fa0
leaq 0x1c2c7(%rip), %rsi     # 0x249af
callq 0x5350
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1c592(%rip), %rsi     # 0x24c91
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1c578(%rip), %rsi     # 0x24c91
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1c55e(%rip), %rsi     # 0x24c91
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1c544(%rip), %rsi     # 0x24c91
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1c52a(%rip), %rsi     # 0x24c91
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1b9e3(%rip), %rsi     # 0x24164
movq %rax, %rdi
callq 0x5350
xorl %ebp, %ebp
movq %rax, %rdi
callq 0x5180
jmp 0x8b2e
movq 0x29811(%rip), %rdx     # 0x31fb0
movslq (%rdx), %rax
cmpl %r15d, %eax
jge 0x88a5
leal 0x1(%rax), %ecx
movl %ecx, (%rdx)
movq 0x8(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0x98(%rsp), %rdi
callq 0x5710
movq 0x297e3(%rip), %rdx     # 0x31fb0
movslq (%rdx), %rax
cmpl %r15d, %eax
jge 0x88b1
leal 0x1(%rax), %ecx
movl %ecx, (%rdx)
movq 0x8(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0x78(%rsp), %rdi
callq 0x5710
leaq 0x1bdde(%rip), %rsi     # 0x245d6
leaq 0x18(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xb4e4
leaq 0x98(%rsp), %rbx
leaq 0x18(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x5290
movq %rax, %r12
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x52e0
movq %rax, %rbp
leaq 0x38(%rsp), %r13
movq %r12, %rax
andq %rbp, %rax
cmpq $-0x1, %rax
je 0x88bd
movq %rbp, %rcx
subq %r12, %rcx
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x5390
leaq 0x58(%rsp), %rdi
movq %r13, %rsi
callq 0xc1f0
movq %r13, %rdi
callq 0x5778
movq %rbx, %rdi
leaq 0x18(%rsp), %r14
movq %r14, %rsi
movq %rbp, %rdx
callq 0x5290
movq %rax, %r12
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x52e0
movq %rax, %rbp
cmpq $-0x2, 0x70(%rsp)
pushq $-0x1
popq %rax
cmoveq %rax, %rbp
jmp 0x883a
leaq 0x1c13a(%rip), %rsi     # 0x249e6
jmp 0x8b0b
leaq 0x1c15c(%rip), %rsi     # 0x24a14
jmp 0x8b0b
leaq 0x18(%rsp), %rdi
callq 0x5778
cmpq $0x0, 0x70(%rsp)
je 0x8b04
cmpb $0x1, 0x2c482(%rip)     # 0x34d5c
jne 0x8e14
movq 0x296b9(%rip), %rdi     # 0x31fa0
leaq 0x1c165(%rip), %rsi     # 0x24a53
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1c15b(%rip), %rsi     # 0x24a5d
movq %rax, %rdi
callq 0x5350
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
callq 0x52d0
movq %rax, %rbx
leaq 0x1c14e(%rip), %rsi     # 0x24a6f
leaq 0x2e518(%rip), %rdx     # 0x36e40
leaq 0x18(%rsp), %rdi
callq 0xcac7
leaq 0x1d3b3(%rip), %rdx     # 0x25cec
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0xcaa8
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0x52d0
movq %rax, %rdi
callq 0x5180
leaq 0x1c10f(%rip), %rsi     # 0x24a73
movq %rax, %rdi
callq 0x5350
movl 0x2c3ee(%rip), %esi     # 0x34d60
movq %rax, %rdi
callq 0x5660
leaq 0x1c100(%rip), %rsi     # 0x24a81
movq %rax, %rdi
callq 0x5350
movb 0x2c3d1(%rip), %cl      # 0x34d60
pushq $0x1
popq %rbx
movl %ebx, %esi
shll %cl, %esi
movq %rax, %rdi
callq 0x5660
leaq 0x1c0e7(%rip), %rsi     # 0x24a8c
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1c0d8(%rip), %rsi     # 0x24a94
movq %rax, %rdi
callq 0x5350
movl 0x2c39a(%rip), %esi     # 0x34d64
movq %rax, %rdi
callq 0x5660
leaq 0x1c0ce(%rip), %rsi     # 0x24aa7
movq %rax, %rdi
callq 0x5350
movb 0x2c379(%rip), %cl      # 0x34d60
movl 0x2c377(%rip), %esi     # 0x34d64
shll %cl, %esi
movq %rax, %rdi
callq 0x5660
leaq 0x1c08e(%rip), %rsi     # 0x24a8c
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1c09d(%rip), %rsi     # 0x24ab2
movq %rax, %rdi
callq 0x5350
movl 0x2c345(%rip), %esi     # 0x34d68
movq %rax, %rdi
callq 0x5660
leaq 0x1c090(%rip), %rsi     # 0x24ac2
movq %rax, %rdi
callq 0x5350
movb 0x2c328(%rip), %cl      # 0x34d68
shll %cl, %ebx
movq %rax, %rdi
movl %ebx, %esi
callq 0x5660
leaq 0x1ba02(%rip), %rsi     # 0x24455
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1c062(%rip), %rsi     # 0x24acc
movq %rax, %rdi
callq 0x5350
movl 0x2c2f4(%rip), %esi     # 0x34d6c
movq %rax, %rdi
callq 0x5660
movq %rax, %rdi
callq 0x5180
leaq 0x1c04e(%rip), %rsi     # 0x24add
movq %rax, %rdi
callq 0x5350
leaq 0x1d898(%rip), %rcx     # 0x26336
leaq 0x1c044(%rip), %rsi     # 0x24ae9
cmpb $0x0, 0x2c2c4(%rip)     # 0x34d70
cmovneq %rcx, %rsi
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x38(%rsp), %rdi
callq 0x5778
leaq 0x18(%rsp), %rdi
callq 0x5778
cmpl $-0x1, 0x2c299(%rip)    # 0x34d74
je 0x8b63
movq 0x294b8(%rip), %rdi     # 0x31fa0
leaq 0x1c01e(%rip), %rsi     # 0x24b0d
callq 0x5350
movl 0x2c27a(%rip), %esi     # 0x34d74
movq %rax, %rdi
callq 0x51e0
jmp 0x8b76
leaq 0x1bf23(%rip), %rsi     # 0x24a2e
movq 0x294de(%rip), %rdi     # 0x31ff0
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x294ca(%rip), %rdi     # 0x31ff0
callq 0x9241
pushq $0x1
popq %rbp
leaq 0x78(%rsp), %rdi
callq 0x5778
leaq 0x58(%rsp), %rdi
callq 0xd182
leaq 0x98(%rsp), %rdi
callq 0x5778
movl %ebp, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x29436(%rip), %rdi     # 0x31fa0
leaq 0x1bf81(%rip), %rsi     # 0x24af2
callq 0x5350
movq %rax, %rdi
callq 0x5180
cmpl $-0x1, 0x2c1f3(%rip)    # 0x34d78
je 0x8baa
movq 0x29412(%rip), %rdi     # 0x31fa0
leaq 0x1bfb8(%rip), %rsi     # 0x24b4d
callq 0x5350
movl 0x2c1d8(%rip), %esi     # 0x34d78
movq %rax, %rdi
callq 0x51e0
jmp 0x8bbd
movq 0x293ef(%rip), %rdi     # 0x31fa0
leaq 0x1bf69(%rip), %rsi     # 0x24b21
callq 0x5350
movq %rax, %rdi
callq 0x5180
cmpl $-0x1, 0x2c1b0(%rip)    # 0x34d7c
je 0x8bf1
movq 0x293cb(%rip), %rdi     # 0x31fa0
leaq 0x1bfbe(%rip), %rsi     # 0x24b9a
callq 0x5350
movl 0x2c195(%rip), %esi     # 0x34d7c
movq %rax, %rdi
callq 0x51e0
jmp 0x8c04
movq 0x293a8(%rip), %rdi     # 0x31fa0
leaq 0x1bf73(%rip), %rsi     # 0x24b72
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x2938d(%rip), %rdi     # 0x31fa0
leaq 0x1bfa1(%rip), %rsi     # 0x24bbb
callq 0x5350
movl 0x2c15b(%rip), %esi     # 0x34d80
movq %rax, %rdi
callq 0x5660
movq %rax, %rdi
callq 0x5180
movq 0x29364(%rip), %rdi     # 0x31fa0
leaq 0x1bf9b(%rip), %rsi     # 0x24bde
callq 0x5350
cmpl $0x0, 0x2c135(%rip)     # 0x34d84
leaq 0x1bf9b(%rip), %rcx     # 0x24bf1
leaq 0x1bf90(%rip), %rsi     # 0x24bed
cmoveq %rcx, %rsi
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1bf80(%rip), %rsi     # 0x24bf8
movq %rax, %rdi
callq 0x5350
leaq 0x1bf6a(%rip), %rsi     # 0x24bf1
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
leaq 0x1bf76(%rip), %rsi     # 0x24c14
movq %rax, %rdi
callq 0x5350
leaq 0x1bf7b(%rip), %rcx     # 0x24c28
leaq 0x1bf8a(%rip), %rsi     # 0x24c3e
cmpb $0x0, 0x2c0cd(%rip)     # 0x34d88
cmovneq %rcx, %rsi
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x292ca(%rip), %rdi     # 0x31fa0
leaq 0x1bf53(%rip), %rsi     # 0x24c30
callq 0x5350
movq %rax, %rdi
callq 0x5180
movq 0x292af(%rip), %rdi     # 0x31fa0
leaq 0x1bf4f(%rip), %rsi     # 0x24c47
callq 0x5350
movl 0x2c089(%rip), %esi     # 0x34d8c
movq %rax, %rdi
callq 0x5660
movq %rax, %rdi
callq 0x5180
movq 0x29286(%rip), %rdi     # 0x31fa0
leaq 0x1bf36(%rip), %rsi     # 0x24c57
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1bf31(%rip), %rsi     # 0x24c69
movq %rax, %rdi
callq 0x5350
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1bf1e(%rip), %rsi     # 0x24c70
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
leaq 0x1bf0c(%rip), %rsi     # 0x24c78
movq %rax, %rdi
callq 0x5350
pushq $0x8
popq %rsi
movq %rax, %rdi
callq 0x51e0
movq %rax, %rdi
callq 0x5180
movq 0x29212(%rip), %rdi     # 0x31fa0
leaq 0x1beed(%rip), %rsi     # 0x24c82
callq 0x5350
movl 0x2bff0(%rip), %ecx     # 0x34d90
shlq $0x5, %rcx
leaq 0x2bde5(%rip), %rsi     # 0x34b90
addq %rcx, %rsi
movq %rax, %rdi
callq 0x52d0
leaq 0x1c158(%rip), %rsi     # 0x24f15
movq %rax, %rdi
callq 0x5350
movq %rax, %rdi
callq 0x5180
xorl %r14d, %r14d
movq 0x291c9(%rip), %rbx     # 0x31fa0
leaq 0x1beb6(%rip), %r12     # 0x24c94
xorl %r13d, %r13d
cmpq 0x70(%rsp), %r13
jae 0x8e14
movq %rbx, %rdi
movq %r12, %rsi
callq 0x5350
movq 0x60(%rsp), %rsi
addq %r14, %rsi
movq %rax, %rdi
callq 0x52d0
movq %rax, %rdi
callq 0x5180
incq %r13
addq $0x20, %r14
jmp 0x8de1
movl 0x2bf72(%rip), %edi     # 0x34d8c
callq 0x5340
movb 0x2bf37(%rip), %bl      # 0x34d5c
xorl %edi, %edi
callq 0x5300
movq %rax, 0x38(%rsp)
movq 0x29168(%rip), %r14     # 0x31fa0
movq %r14, 0x40(%rsp)
leaq 0x1be53(%rip), %rax     # 0x24c97
movq %rax, 0x48(%rsp)
movb %bl, 0x50(%rsp)
cmpb $0x0, 0x2bf1c(%rip)     # 0x34d70
jne 0x8e70
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
xorl %edx, %edx
callq 0x9595
cmpb $0x1, 0x2bf02(%rip)     # 0x34d70
jne 0x8e81
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
xorl %edx, %edx
callq 0x9fa2
leaq 0x38(%rsp), %rbx
movq %rbx, %rdi
callq 0xcb3e
movl 0x2bef8(%rip), %edi     # 0x34d8c
callq 0x5340
movb 0x2bebc(%rip), %bpl     # 0x34d5c
xorl %edi, %edi
callq 0x5300
movq %rax, (%rbx)
movq %r14, 0x8(%rbx)
leaq 0x1be43(%rip), %rax     # 0x24cf8
movq %rax, 0x10(%rbx)
movb %bpl, 0x18(%rbx)
cmpb $0x0, 0x2beac(%rip)     # 0x34d70
jne 0x8f01
leaq 0x1be67(%rip), %rdx     # 0x24d34
leaq 0x18(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xc191
leaq 0x58(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x9595
leaq 0x18(%rsp), %rdi
callq 0x5778
cmpb $0x1, 0x2be71(%rip)     # 0x34d70
jne 0x8f33
leaq 0x1be2c(%rip), %rdx     # 0x24d34
leaq 0x18(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xc191
leaq 0x58(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x9fa2
leaq 0x18(%rsp), %rdi
callq 0x5778
leaq 0x38(%rsp), %rdi
callq 0xcb3e
xorl %ebp, %ebp
jmp 0x8b2e
movq 0x290a5(%rip), %rdi     # 0x31ff0
callq 0x9241
pushq $0x1
popq %rbx
jmp 0x8f63
xorl %ebx, %ebx
movq 0x29042(%rip), %rdi     # 0x31fa0
callq 0x9241
pushq $0x4
popq %rdi
callq 0x5190
movl %ebx, (%rax)
movq 0x28fec(%rip), %rsi     # 0x31f60
movq %rax, %rdi
xorl %edx, %edx
callq 0x5630
movq %rdx, %r13
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x5778
jmp 0x8f96
movq %rdx, %r13
movq %rax, %r12
cmpl $0x3, %r13d
jne 0x90c9
movq %r12, %rdi
callq 0x5150
cmpb $0x1, 0x2bde5(%rip)     # 0x34d94
jne 0x8fdd
movq 0x29038(%rip), %rdi     # 0x31ff0
leaq 0x1bd0c(%rip), %rsi     # 0x24ccb
callq 0x5350
movq %rax, %rdi
callq 0x5180
movb $0x1, 0x2bd9d(%rip)     # 0x34d70
callq 0x55c0
jmp 0x8ef8
pushq $0x8
popq %rdi
callq 0x5190
movq 0x28fac(%rip), %rcx     # 0x31f98
addq $0x10, %rcx
movq %rcx, (%rax)
movq 0x28fae(%rip), %rsi     # 0x31fa8
movq 0x28f87(%rip), %rdx     # 0x31f88
movq %rax, %rdi
callq 0x5630
jmp 0x909c
jmp 0x90c3
movq %rdx, %r13
movq %rax, %r12
callq 0x55c0
jmp 0x90c9
movq %rdx, %r13
movq %rax, %r12
cmpl $0x3, %r13d
jne 0x90c9
movq %r12, %rdi
callq 0x5150
cmpb $0x1, 0x2bd52(%rip)     # 0x34d94
jne 0x9070
movq 0x28fa5(%rip), %rdi     # 0x31ff0
leaq 0x1bc79(%rip), %rsi     # 0x24ccb
callq 0x5350
movq %rax, %rdi
callq 0x5180
movb $0x1, 0x2bd0a(%rip)     # 0x34d70
callq 0x55c0
jmp 0x8e67
pushq $0x8
popq %rdi
callq 0x5190
movq 0x28f19(%rip), %rcx     # 0x31f98
addq $0x10, %rcx
movq %rcx, (%rax)
movq 0x28f1b(%rip), %rsi     # 0x31fa8
movq 0x28ef4(%rip), %rdx     # 0x31f88
movq %rax, %rdi
callq 0x5630
movq %rdx, %r13
movq %rax, %r12
callq 0x55c0
jmp 0x90c9
jmp 0x90c3
jmp 0x90db
jmp 0x9101
movq %rdx, %r13
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x5778
jmp 0x90c9
jmp 0x90c3
movq %rdx, %r13
movq %rax, %r12
leaq 0x38(%rsp), %rdi
callq 0xcb3e
jmp 0x9107
jmp 0x9101
jmp 0x90e3
jmp 0x9101
movq %rdx, %r13
movq %rax, %r12
jmp 0x90f3
movq %rdx, %r13
movq %rax, %r12
leaq 0x38(%rsp), %rdi
callq 0x5778
leaq 0x18(%rsp), %rdi
callq 0x5778
jmp 0x9107
jmp 0x9101
movq %rdx, %r13
movq %rax, %r12
leaq 0x78(%rsp), %rdi
callq 0x5778
leaq 0x58(%rsp), %rdi
callq 0xd182
leaq 0x98(%rsp), %rdi
callq 0x5778
cmpl $0x2, %r13d
jne 0x918e
movq %r12, %rdi
callq 0x5150
movq 0x28eb3(%rip), %rdi     # 0x31ff0
leaq 0x1bbf5(%rip), %rsi     # 0x24d39
callq 0x5350
pushq $0x1
popq %rbp
xorl %r14d, %r14d
testl %r15d, %r15d
cmovlel %r14d, %r15d
movq 0x28e93(%rip), %rbx     # 0x31ff0
leaq 0x1bb31(%rip), %r12     # 0x24c95
cmpq %r14, %r15
je 0x91f7
movq 0x8(%rsp), %rax
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
callq 0x5350
movq %rax, %rdi
movq %r12, %rsi
callq 0x5350
incq %r14
jmp 0x9164
cmpl $0x1, %r13d
jne 0x9231
movq %r12, %rdi
callq 0x5150
movl (%rax), %ebp
testl %ebp, %ebp
je 0x9211
movq 0x28e43(%rip), %rdi     # 0x31ff0
leaq 0x1bb85(%rip), %rsi     # 0x24d39
callq 0x5350
xorl %r14d, %r14d
testl %r15d, %r15d
cmovlel %r14d, %r15d
movq 0x28e26(%rip), %rbx     # 0x31ff0
leaq 0x1bac4(%rip), %r12     # 0x24c95
cmpq %r14, %r15
je 0x9205
movq 0x8(%rsp), %rax
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
callq 0x5350
movq %rax, %rdi
movq %r12, %rsi
callq 0x5350
incq %r14
jmp 0x91d1
movq 0x28df2(%rip), %rdi     # 0x31ff0
callq 0x5180
jmp 0x9211
movq 0x28de4(%rip), %rdi     # 0x31ff0
callq 0x5180
callq 0x55c0
jmp 0x8b4f
jmp 0x921f
jmp 0x9229
movq %rax, %r12
callq 0x55c0
jmp 0x9231
movq %rax, %r12
callq 0x55c0
movq %r12, %rdi
callq 0x5680
movq %rax, %rdi
callq 0xb51f