// File: /workspace/github_c_makefile_star2_O0/lh3[P]minimap/main.c
// Function: main
int main(int argc, char *argv[])
{
	mm_mapopt_t opt;
	int i, c, k = 15, w = -1, b = MM_IDX_DEF_B, n_threads = 3, keep_name = 1, is_idx = 0;
	int tbatch_size = 100000000;
	uint64_t ibatch_size = 4000000000ULL;
	float f = 0.001;
	bseq_file_t *fp = 0;
	char *fnw = 0;
	FILE *fpr = 0, *fpw = 0;

	liftrlimit();
	mm_realtime0 = realtime();
	mm_mapopt_init(&opt);

	while ((c = getopt(argc, argv, "w:k:B:b:t:r:c:f:Vv:NOg:I:d:lRPST:m:L:Dx:")) >= 0) {
		if (c == 'w') w = atoi(optarg);
		else if (c == 'k') k = atoi(optarg);
		else if (c == 'b') b = atoi(optarg);
		else if (c == 'r') opt.radius = atoi(optarg);
		else if (c == 'c') opt.min_cnt = atoi(optarg);
		else if (c == 'm') opt.merge_frac = atof(optarg);
		else if (c == 'f') f = atof(optarg);
		else if (c == 't') n_threads = atoi(optarg);
		else if (c == 'v') mm_verbose = atoi(optarg);
		else if (c == 'g') opt.max_gap = atoi(optarg);
		else if (c == 'N') keep_name = 0;
		else if (c == 'd') fnw = optarg;
		else if (c == 'l') is_idx = 1;
		else if (c == 'R') opt.flag |= MM_F_WITH_REP;
		else if (c == 'P') opt.flag &= ~MM_F_WITH_REP;
		else if (c == 'D') opt.flag |= MM_F_NO_SELF;
		else if (c == 'O') opt.flag |= MM_F_NO_ISO;
		else if (c == 'S') opt.flag |= MM_F_AVA | MM_F_NO_SELF;
		else if (c == 'T') opt.sdust_thres = atoi(optarg);
		else if (c == 'L') opt.min_match = atoi(optarg);
		else if (c == 'V') {
			puts(MM_VERSION);
			return 0;
		} else if (c == 'B' || c == 'I') {
			double x;
			char *p;
			x = strtod(optarg, &p);
			if (*p == 'G' || *p == 'g') x *= 1e9;
			else if (*p == 'M' || *p == 'm') x *= 1e6;
			else if (*p == 'K' || *p == 'k') x *= 1e3;
			if (c == 'B') tbatch_size = (uint64_t)(x + .499);
			else ibatch_size = (uint64_t)(x + .499);
		} else if (c == 'x') {
			if (strcmp(optarg, "ava10k") == 0) {
				opt.flag |= MM_F_AVA | MM_F_NO_SELF;
				opt.min_match = 100;
				opt.merge_frac = 0.0;
				w = 5;
			}
		}
	}
	if (w < 0) w = (int)(.6666667 * k + .499);

	if (argc == optind) {
		fprintf(stderr, "Usage: minimap [options] <target.fa> [query.fa] [...]\n");
		fprintf(stderr, "Options:\n");
		fprintf(stderr, "  Indexing:\n");
		fprintf(stderr, "    -k INT     k-mer size [%d]\n", k);
		fprintf(stderr, "    -w INT     minizer window size [{-k}*2/3]\n");
		fprintf(stderr, "    -I NUM     split index for every ~NUM input bases [4G]\n");
		fprintf(stderr, "    -d FILE    dump index to FILE []\n");
		fprintf(stderr, "    -l         the 1st argument is a index file (overriding -k, -w and -I)\n");
//		fprintf(stderr, "    -b INT     bucket bits [%d]\n", b); // most users would care about this
		fprintf(stderr, "  Mapping:\n");
		fprintf(stderr, "    -f FLOAT   filter out top FLOAT fraction of repetitive minimizers [%.3f]\n", f);
		fprintf(stderr, "    -r INT     bandwidth [%d]\n", opt.radius);
		fprintf(stderr, "    -m FLOAT   merge two chains if FLOAT fraction of minimizers are shared [%.2f]\n", opt.merge_frac);
		fprintf(stderr, "    -c INT     retain a mapping if it consists of >=INT minimizers [%d]\n", opt.min_cnt);
		fprintf(stderr, "    -L INT     min matching length [%d]\n", opt.min_match);
		fprintf(stderr, "    -g INT     split a mapping if there is a gap longer than INT [%d]\n", opt.max_gap);
		fprintf(stderr, "    -T INT     SDUST threshold; 0 to disable SDUST [%d]\n", opt.sdust_thres);
//		fprintf(stderr, "    -D         skip self mappings but keep dual mappings\n"); // too confusing to expose to end users
		fprintf(stderr, "    -S         skip self and dual mappings\n");
		fprintf(stderr, "    -O         drop isolated hits before chaining (EXPERIMENTAL)\n");
		fprintf(stderr, "    -P         filtering potential repeats after mapping (EXPERIMENTAL)\n");
//		fprintf(stderr, "    -R         skip post-mapping repeat filtering\n"); // deprecated option for backward compatibility
		fprintf(stderr, "    -x STR     preset (recommended to be applied before other options) []\n");
		fprintf(stderr, "               ava10k: -Sw5 -L100 -m0 (PacBio/ONT all-vs-all read mapping)\n");
		fprintf(stderr, "  Input/Output:\n");
		fprintf(stderr, "    -t INT     number of threads [%d]\n", n_threads);
//		fprintf(stderr, "    -B NUM     process ~NUM bp in each batch [100M]\n");
//		fprintf(stderr, "    -v INT     verbose level [%d]\n", mm_verbose);
//		fprintf(stderr, "    -N         use integer as target names\n");
		fprintf(stderr, "    -V         show version number\n");
		fprintf(stderr, "\nSee minimap.1 for detailed description of the command-line options.\n");
		return 1;
	}

	if (is_idx) fpr = fopen(argv[optind], "rb");
	else fp = bseq_open(argv[optind]);
	if (fnw) fpw = fopen(fnw, "wb");
	for (;;) {
		mm_idx_t *mi = 0;
		if (fpr) mi = mm_idx_load(fpr);
		else if (!bseq_eof(fp))
			mi = mm_idx_gen(fp, w, k, b, tbatch_size, n_threads, ibatch_size, keep_name);
		if (mi == 0) break;
		if (mm_verbose >= 3)
			fprintf(stderr, "[M::%s::%.3f*%.2f] loaded/built the index for %d target sequence(s)\n",
					__func__, realtime() - mm_realtime0, cputime() / (realtime() - mm_realtime0), mi->n);
		mm_idx_set_max_occ(mi, f);
		if (mm_verbose >= 3)
			fprintf(stderr, "[M::%s] max occurrences of a minimizer to consider: %d\n", __func__, mi->max_occ);
		if (fpw) mm_idx_dump(fpw, mi);
		for (i = optind + 1; i < argc; ++i)
			mm_map_file(mi, argv[i], &opt, n_threads, tbatch_size);
		mm_idx_destroy(mi);
	}
	if (fpw) fclose(fpw);
	if (fpr) fclose(fpr);
	if (fp)  bseq_close(fp);

	fprintf(stderr, "[M::%s] Version: %s\n", __func__, MM_VERSION);
	fprintf(stderr, "[M::%s] CMD:", __func__);
	for (i = 0; i < argc; ++i)
		fprintf(stderr, " %s", argv[i]);
	fprintf(stderr, "\n[M::%s] Real time: %.3f sec; CPU: %.3f sec\n", __func__, realtime() - mm_realtime0, cputime());
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xf, -0x38(%rbp)
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movl $0xe, -0x40(%rbp)
movl $0x3, -0x44(%rbp)
movl $0x1, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
movl $0x5f5e100, -0x50(%rbp) # imm = 0x5F5E100
movl $0xee6b2800, %eax       # imm = 0xEE6B2800
movq %rax, -0x58(%rbp)
movss 0x9b69(%rip), %xmm0     # 0xc004
movss %xmm0, -0x5c(%rbp)
movq $0x0, -0x68(%rbp)
movq $0x0, -0x70(%rbp)
movq $0x0, -0x78(%rbp)
movq $0x0, -0x80(%rbp)
callq 0x2400
callq 0x2f60
leaq 0xcdd7(%rip), %rax      # 0xf2a8
movsd %xmm0, (%rax)
leaq -0x2c(%rbp), %rdi
callq 0x6640
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x9b4c(%rip), %rdx      # 0xc038
callq 0x2270
movl %eax, -0x34(%rbp)
cmpl $0x0, %eax
jl 0x28fc
cmpl $0x77, -0x34(%rbp)
jne 0x251a
movq 0xcace(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x3c(%rbp)
jmp 0x28f7
cmpl $0x6b, -0x34(%rbp)
jne 0x2537
movq 0xcab1(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x38(%rbp)
jmp 0x28f5
cmpl $0x62, -0x34(%rbp)
jne 0x2554
movq 0xca94(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x40(%rbp)
jmp 0x28f3
cmpl $0x72, -0x34(%rbp)
jne 0x2571
movq 0xca77(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x2c(%rbp)
jmp 0x28f1
cmpl $0x63, -0x34(%rbp)
jne 0x258e
movq 0xca5a(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x24(%rbp)
jmp 0x28ef
cmpl $0x6d, -0x34(%rbp)
jne 0x25b1
movq 0xca3d(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x20a0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
jmp 0x28ed
cmpl $0x66, -0x34(%rbp)
jne 0x25d4
movq 0xca1a(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x20a0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x5c(%rbp)
jmp 0x28eb
cmpl $0x74, -0x34(%rbp)
jne 0x25f1
movq 0xc9f7(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x44(%rbp)
jmp 0x28e9
cmpl $0x76, -0x34(%rbp)
jne 0x2616
movq 0xc9da(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, %ecx
leaq 0xcb81(%rip), %rax      # 0xf190
movl %ecx, (%rax)
jmp 0x28e7
cmpl $0x67, -0x34(%rbp)
jne 0x2633
movq 0xc9b5(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x28(%rbp)
jmp 0x28e5
cmpl $0x4e, -0x34(%rbp)
jne 0x2645
movl $0x0, -0x48(%rbp)
jmp 0x28e3
cmpl $0x64, -0x34(%rbp)
jne 0x265e
movq 0xc986(%rip), %rax      # 0xefd8
movq (%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x28e1
cmpl $0x6c, -0x34(%rbp)
jne 0x2670
movl $0x1, -0x4c(%rbp)
jmp 0x28df
cmpl $0x52, -0x34(%rbp)
jne 0x2684
movl -0x18(%rbp), %eax
orl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x28dd
cmpl $0x50, -0x34(%rbp)
jne 0x2698
movl -0x18(%rbp), %eax
andl $-0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x28db
cmpl $0x44, -0x34(%rbp)
jne 0x26ac
movl -0x18(%rbp), %eax
orl $0x2, %eax
movl %eax, -0x18(%rbp)
jmp 0x28d9
cmpl $0x4f, -0x34(%rbp)
jne 0x26c0
movl -0x18(%rbp), %eax
orl $0x4, %eax
movl %eax, -0x18(%rbp)
jmp 0x28d7
cmpl $0x53, -0x34(%rbp)
jne 0x26d4
movl -0x18(%rbp), %eax
orl $0xa, %eax
movl %eax, -0x18(%rbp)
jmp 0x28d5
cmpl $0x54, -0x34(%rbp)
jne 0x26f1
movq 0xc8f7(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x1c(%rbp)
jmp 0x28d3
cmpl $0x4c, -0x34(%rbp)
jne 0x270e
movq 0xc8da(%rip), %rax      # 0xefd8
movq (%rax), %rdi
callq 0x2280
movl %eax, -0x20(%rbp)
jmp 0x28d1
cmpl $0x56, -0x34(%rbp)
jne 0x272c
leaq 0x9946(%rip), %rdi      # 0xc061
callq 0x2070
movl $0x0, -0x4(%rbp)
jmp 0x2eed
cmpl $0x42, -0x34(%rbp)
je 0x273c
cmpl $0x49, -0x34(%rbp)
jne 0x2889
movq 0xc895(%rip), %rax      # 0xefd8
movq (%rax), %rdi
leaq -0x90(%rbp), %rsi
callq 0x2090
movsd %xmm0, -0x88(%rbp)
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x47, %eax
je 0x2778
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x67, %eax
jne 0x2792
movsd 0x98a8(%rip), %xmm0     # 0xc028
mulsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
jmp 0x2804
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4d, %eax
je 0x27b0
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x6d, %eax
jne 0x27ca
movsd 0x9868(%rip), %xmm0     # 0xc020
mulsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
jmp 0x2802
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4b, %eax
je 0x27e8
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x6b, %eax
jne 0x2800
movsd 0x9828(%rip), %xmm0     # 0xc018
mulsd -0x88(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
jmp 0x2802
jmp 0x2804
cmpl $0x42, -0x34(%rbp)
jne 0x2849
movsd -0x88(%rbp), %xmm0
movsd 0x97f6(%rip), %xmm1     # 0xc010
addsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x97fb(%rip), %xmm1     # 0xc030
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movl %eax, -0x50(%rbp)
jmp 0x2887
movsd -0x88(%rbp), %xmm0
movsd 0x97b7(%rip), %xmm1     # 0xc010
addsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x97bc(%rip), %xmm1     # 0xc030
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x58(%rbp)
jmp 0x28cd
cmpl $0x78, -0x34(%rbp)
jne 0x28cb
movq 0xc742(%rip), %rax      # 0xefd8
movq (%rax), %rdi
leaq 0x97d0(%rip), %rsi      # 0xc070
callq 0x2160
cmpl $0x0, %eax
jne 0x28c9
movl -0x18(%rbp), %eax
orl $0xa, %eax
movl %eax, -0x18(%rbp)
movl $0x64, -0x20(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
movl $0x5, -0x3c(%rbp)
jmp 0x28cb
jmp 0x28cd
jmp 0x28cf
jmp 0x28d1
jmp 0x28d3
jmp 0x28d5
jmp 0x28d7
jmp 0x28d9
jmp 0x28db
jmp 0x28dd
jmp 0x28df
jmp 0x28e1
jmp 0x28e3
jmp 0x28e5
jmp 0x28e7
jmp 0x28e9
jmp 0x28eb
jmp 0x28ed
jmp 0x28ef
jmp 0x28f1
jmp 0x28f3
jmp 0x28f5
jmp 0x28f7
jmp 0x24de
cmpl $0x0, -0x3c(%rbp)
jge 0x2926
cvtsi2sdl -0x38(%rbp), %xmm0
movsd 0x96f9(%rip), %xmm1     # 0xc008
mulsd %xmm1, %xmm0
movsd 0x96f5(%rip), %xmm1     # 0xc010
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x3c(%rbp)
movl -0x8(%rbp), %eax
movq 0xc6a0(%rip), %rcx      # 0xefd0
cmpl (%rcx), %eax
jne 0x2bc3
movq 0xc6b9(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x972e(%rip), %rsi      # 0xc077
movb $0x0, %al
callq 0x2180
movq 0xc6a1(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x974d(%rip), %rsi      # 0xc0ae
movb $0x0, %al
callq 0x2180
movq 0xc689(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x973f(%rip), %rsi      # 0xc0b8
movb $0x0, %al
callq 0x2180
movq 0xc671(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x38(%rbp), %edx
leaq 0x9731(%rip), %rsi      # 0xc0c5
movb $0x0, %al
callq 0x2180
movq 0xc656(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9739(%rip), %rsi      # 0xc0e5
movb $0x0, %al
callq 0x2180
movq 0xc63e(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9750(%rip), %rsi      # 0xc114
movb $0x0, %al
callq 0x2180
movq 0xc626(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9774(%rip), %rsi      # 0xc150
movb $0x0, %al
callq 0x2180
movq 0xc60e(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9782(%rip), %rsi      # 0xc176
movb $0x0, %al
callq 0x2180
movq 0xc5f6(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x97b6(%rip), %rsi      # 0xc1c2
movb $0x0, %al
callq 0x2180
movq 0xc5de(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movss -0x5c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x97a1(%rip), %rsi      # 0xc1ce
movb $0x1, %al
callq 0x2180
movq 0xc5bd(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x2c(%rbp), %edx
leaq 0x97d4(%rip), %rsi      # 0xc21c
movb $0x0, %al
callq 0x2180
movq 0xc5a2(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x97d2(%rip), %rsi      # 0xc23b
movb $0x1, %al
callq 0x2180
movq 0xc581(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x24(%rbp), %edx
leaq 0x980a(%rip), %rsi      # 0xc28e
movb $0x0, %al
callq 0x2180
movq 0xc566(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x20(%rbp), %edx
leaq 0x9838(%rip), %rsi      # 0xc2d7
movb $0x0, %al
callq 0x2180
movq 0xc54b(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x28(%rbp), %edx
leaq 0x9846(%rip), %rsi      # 0xc300
movb $0x0, %al
callq 0x2180
movq 0xc530(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x1c(%rbp), %edx
leaq 0x9872(%rip), %rsi      # 0xc347
movb $0x0, %al
callq 0x2180
movq 0xc515(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9893(%rip), %rsi      # 0xc380
movb $0x0, %al
callq 0x2180
movq 0xc4fd(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x98a7(%rip), %rsi      # 0xc3ac
movb $0x0, %al
callq 0x2180
movq 0xc4e5(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x98d1(%rip), %rsi      # 0xc3ee
movb $0x0, %al
callq 0x2180
movq 0xc4cd(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9902(%rip), %rsi      # 0xc437
movb $0x0, %al
callq 0x2180
movq 0xc4b5(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9935(%rip), %rsi      # 0xc482
movb $0x0, %al
callq 0x2180
movq 0xc49d(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x9969(%rip), %rsi      # 0xc4ce
movb $0x0, %al
callq 0x2180
movq 0xc485(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x44(%rbp), %edx
leaq 0x995f(%rip), %rsi      # 0xc4df
movb $0x0, %al
callq 0x2180
movq 0xc46a(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x996e(%rip), %rsi      # 0xc506
movb $0x0, %al
callq 0x2180
movq 0xc452(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x997a(%rip), %rsi      # 0xc52a
movb $0x0, %al
callq 0x2180
movl $0x1, -0x4(%rbp)
jmp 0x2eed
cmpl $0x0, -0x4c(%rbp)
je 0x2bed
movq -0x10(%rbp), %rax
movq 0xc3fc(%rip), %rcx      # 0xefd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x998e(%rip), %rsi      # 0xc570
callq 0x2250
movq %rax, -0x78(%rbp)
jmp 0x2c08
movq -0x10(%rbp), %rax
movq 0xc3d8(%rip), %rcx      # 0xefd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x38c0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x2c23
movq -0x70(%rbp), %rdi
leaq 0x9959(%rip), %rsi      # 0xc573
callq 0x2250
movq %rax, -0x80(%rbp)
jmp 0x2c25
movq $0x0, -0x98(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0x2c49
movq -0x78(%rbp), %rdi
callq 0x5630
movq %rax, -0x98(%rbp)
jmp 0x2c89
movq -0x68(%rbp), %rdi
callq 0x3f90
cmpl $0x0, %eax
jne 0x2c87
movq -0x68(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x38(%rbp), %edx
movl -0x40(%rbp), %ecx
movl -0x50(%rbp), %r8d
movl -0x44(%rbp), %r9d
movq -0x58(%rbp), %r10
movl -0x48(%rbp), %eax
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x4ca0
movq %rax, -0x98(%rbp)
jmp 0x2c89
cmpq $0x0, -0x98(%rbp)
jne 0x2c98
jmp 0x2dde
leaq 0xc4f1(%rip), %rax      # 0xf190
cmpl $0x3, (%rax)
jl 0x2d2b
movq 0xc349(%rip), %rax      # 0xeff8
movq (%rax), %rax
movq %rax, -0xa8(%rbp)
callq 0x2f60
leaq 0xc5e3(%rip), %rax      # 0xf2a8
subsd (%rax), %xmm0
movsd %xmm0, -0xa0(%rbp)
callq 0x2f00
movsd %xmm0, -0xb0(%rbp)
callq 0x2f60
movsd -0xb0(%rbp), %xmm1
movq -0xa8(%rbp), %rdi
movaps %xmm0, %xmm2
movsd -0xa0(%rbp), %xmm0
leaq 0xc5a4(%rip), %rax      # 0xf2a8
subsd (%rax), %xmm2
divsd %xmm2, %xmm1
movq -0x98(%rbp), %rax
movl 0xc(%rax), %ecx
leaq 0x9859(%rip), %rsi      # 0xc576
leaq 0x9897(%rip), %rdx      # 0xc5bb
movb $0x2, %al
callq 0x2180
movq -0x98(%rbp), %rdi
movss -0x5c(%rbp), %xmm0
callq 0x4c60
leaq 0xc44d(%rip), %rax      # 0xf190
cmpl $0x3, (%rax)
jl 0x2d71
movq 0xc2a9(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movq -0x98(%rbp), %rax
movl 0x18(%rax), %ecx
leaq 0x985d(%rip), %rsi      # 0xc5c0
leaq 0x9851(%rip), %rdx      # 0xc5bb
movb $0x0, %al
callq 0x2180
cmpq $0x0, -0x80(%rbp)
je 0x2d88
movq -0x80(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x5390
movq 0xc241(%rip), %rax      # 0xefd0
movl (%rax), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x2dcd
movq -0x98(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movl -0x44(%rbp), %ecx
movl -0x50(%rbp), %r8d
leaq -0x2c(%rbp), %rdx
callq 0x7fb0
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x2d97
movq -0x98(%rbp), %rdi
callq 0x4660
jmp 0x2c25
cmpq $0x0, -0x80(%rbp)
je 0x2dee
movq -0x80(%rbp), %rdi
callq 0x20d0
cmpq $0x0, -0x78(%rbp)
je 0x2dfe
movq -0x78(%rbp), %rdi
callq 0x20d0
cmpq $0x0, -0x68(%rbp)
je 0x2e0e
movq -0x68(%rbp), %rdi
callq 0x39d0
movq 0xc1e3(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x97d9(%rip), %rsi      # 0xc5f8
leaq 0x9795(%rip), %rdx      # 0xc5bb
leaq 0x9234(%rip), %rcx      # 0xc061
movb $0x0, %al
callq 0x2180
movq 0xc1bd(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x97c8(%rip), %rsi      # 0xc60d
leaq 0x976f(%rip), %rdx      # 0xc5bb
movb $0x0, %al
callq 0x2180
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x2e91
movq 0xc18f(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x979b(%rip), %rsi      # 0xc61a
movb $0x0, %al
callq 0x2180
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x2e5a
movq 0xc160(%rip), %rax      # 0xeff8
movq (%rax), %rax
movq %rax, -0xc0(%rbp)
callq 0x2f60
leaq 0xc3fa(%rip), %rax      # 0xf2a8
subsd (%rax), %xmm0
movsd %xmm0, -0xb8(%rbp)
callq 0x2f00
movq -0xc0(%rbp), %rdi
movaps %xmm0, %xmm1
movsd -0xb8(%rbp), %xmm0
leaq 0x9746(%rip), %rsi      # 0xc61e
leaq 0x96dc(%rip), %rdx      # 0xc5bb
movb $0x2, %al
callq 0x2180
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xd0, %rsp
popq %rbp
retq
nopl (%rax)