// File: /workspace/github_c_makefile_star2_O1/lh3[P]minigraph/main.c
// Function: main
int main(int argc, char *argv[])
{
	const char *opt_str = "x:k:w:t:r:m:n:g:K:o:p:N:Pq:d:l:f:U:M:F:j:L:DSc";
	ketopt_t o = KETOPT_INIT;
	mg_mapopt_t opt;
	mg_idxopt_t ipt;
	mg_ggopt_t gpt;
	int i, c, ret, n_threads = 4;
	char *s;
	FILE *fp_help = stderr;
	gfa_t *g;

	mg_verbose = 3;
	liftrlimit();
	mg_realtime0 = realtime();
	mg_opt_set(0, &ipt, &opt, &gpt);

	while ((c = ketopt(&o, argc, argv, 1, opt_str, long_options)) >= 0) { // test command line options and apply option -x/preset first
		if (c == 'x') {
			if (mg_opt_set(o.arg, &ipt, &opt, &gpt) < 0) {
				fprintf(stderr, "[ERROR] unknown preset '%s'\n", o.arg);
				return 1;
			}
		} else if (c == ':') {
			fprintf(stderr, "[ERROR] missing option argument\n");
			return 1;
		} else if (c == '?') {
			fprintf(stderr, "[ERROR] unknown option in \"%s\"\n", argv[o.i - 1]);
			return 1;
		}
	}
	o = KETOPT_INIT;

	while ((c = ketopt(&o, argc, argv, 1, opt_str, long_options)) >= 0) {
		if (c == 'w') ipt.w = atoi(o.arg);
		else if (c == 'k') ipt.k = atoi(o.arg);
		else if (c == 't') n_threads = atoi(o.arg);
		else if (c == 'f') opt.occ_max1_frac = atof(o.arg);
		else if (c == 'g') opt.max_gap = mm_parse_num(o.arg);
		else if (c == 'F') opt.max_frag_len = mm_parse_num(o.arg);
		else if (c == 'K') opt.mini_batch_size = mm_parse_num(o.arg);
		else if (c == 'p') opt.pri_ratio = atof(o.arg);
		else if (c == 'N') opt.best_n = mm_parse_num(o.arg);
		else if (c == 'P') opt.flag |= MG_M_ALL_CHAINS;
		else if (c == 'D') opt.flag |= MG_M_NO_DIAG;
		else if (c == 'M') opt.mask_level = atof(o.arg);
		else if (c == 'j') opt.div = atof(o.arg);
		else if (c == 'l') gpt.min_map_len = mm_parse_num(o.arg);
		else if (c == 'd') gpt.min_depth_len = mm_parse_num(o.arg);
		else if (c == 'q') gpt.min_mapq = atoi(o.arg);
		else if (c == 'L') gpt.min_var_len = atoi(o.arg);
		else if (c == 'S') opt.flag |= MG_M_WRITE_LCHAIN;
		else if (c == 'c') opt.flag |= MG_M_CIGAR;
		else if (c == 301) opt.flag |= MG_M_VERTEX_COOR;      // --vc
		else if (c == 309) gpt.ggs_min_end_cnt = atoi(o.arg);  // --gg-min-end-cnt
		else if (c == 310) gpt.ggs_min_end_frac = atof(o.arg); // --gg-min-end-frac
		else if (c == 312) opt.flag |= MG_M_NO_COMP_PATH;     // --no-comp-path
		else if (c == 313) gpt.match_pen = atoi(o.arg);       // --gg-match-pen
		else if (c == 314) opt.flag |= MG_M_FRAG_MODE | MG_M_FRAG_MERGE;       // --frag
		else if (c == 315) opt.flag |= MG_M_CAL_COV | MG_M_SKIP_GCHECK, gpt.flag |= MG_G_CAL_COV; // --cov
		else if (c == 316) opt.min_cov_blen = mm_parse_num(o.arg);             // --min-cov-blen
		else if (c == 317) opt.min_cov_mapq = atoi(o.arg);                     // --min-cov-mapq
		else if (c == 318) opt.chn_pen_gap = atof(o.arg);     // --gap-pen
		else if (c == 319) opt.ref_bonus = atoi(o.arg);       // --ref-bonus
		else if (c == 320) opt.max_gap_pre = mm_parse_num(o.arg); // --max-gap-pre
		else if (c == 321) opt.max_lc_skip = atoi(o.arg);     // --max-lc-skip
		else if (c == 322) opt.max_gc_skip = atoi(o.arg);     // --max-gc-skip
		else if (c == 323) opt.max_lc_iter = mm_parse_num(o.arg);  // --max-lc-iter
		else if (c == 324) opt.rmq_size_cap = mm_parse_num(o.arg); // --max-rmq-size
		else if (c == 326) opt.flag |= MG_M_WRITE_MZ | MG_M_WRITE_LCHAIN; // --write-mz
		else if (c == 327) gpt.flag |= MG_G_CALL, opt.flag |= MG_M_SKIP_GCHECK; // --call
		else if (c == 328) opt.cap_kalloc = mm_parse_num(o.arg); // --cap-kalloc
		else if (c == 329) opt.gdp_max_ed = mm_parse_num(o.arg); // --gdp-max-ed
		else if (c == 401) mg_dbg_flag |= MG_DBG_NO_KALLOC;   // --no-kalloc
		else if (c == 402) mg_dbg_flag |= MG_DBG_QNAME;       // --dbg-qname
		else if (c == 403) mg_dbg_flag |= MG_DBG_LCHAIN;      // --dbg-lchain
		else if (c == 404) mg_dbg_flag |= MG_DBG_INSERT;      // --dbg-insert
		else if (c == 405) mg_dbg_flag |= MG_DBG_SHORTK;      // --dbg-shortk
		else if (c == 406) mg_dbg_flag |= MG_DBG_GC1;         // --dbg-gc1
		else if (c == 407) mg_dbg_flag |= MG_DBG_LC_PROF;     // --dbg-lc-prof
		else if (c == 408) mg_dbg_flag |= MG_DBG_MINIWFA;     // --dbg-mwf-long
		else if (c == 409) mg_dbg_flag |= MG_DBG_MWF_SEQ;     // --dbg-mwf-seq
		else if (c == 'U') {
			opt.occ_max1 = (int)mm_parse_num2(o.arg, &s);
			if (*s == ',') opt.occ_max1_cap = (int)mm_parse_num2(s + 1, &s);
		} else if (c == 'r') {
			opt.bw = (int)mm_parse_num2(o.arg, &s);
			if (*s == ',') opt.bw_long = (int)mm_parse_num2(s + 1, &s);
		} else if (c == 'n') {
			opt.min_gc_cnt = (int)mm_parse_num2(o.arg, &s);
			if (*s == ',') opt.min_lc_cnt = (int)mm_parse_num2(s + 1, &s);
		} else if (c == 'm') {
			opt.min_gc_score = (int)mm_parse_num2(o.arg, &s);
			if (*s == ',') opt.min_lc_score = (int)mm_parse_num2(s + 1, &s);
		} else if (c == 'o') {
			if (strcmp(o.arg, "-") != 0) {
				if (freopen(o.arg, "wb", stdout) == NULL) {
					fprintf(stderr, "[ERROR]\033[1;31m failed to write the output to file '%s'\033[0m\n", o.arg);
					exit(1);
				}
			}
		} else if (c == 306) { // --ggen
			if (o.arg) {
				if (strcmp(o.arg, "none") == 0) gpt.algo = MG_G_NONE;
				else if (strcmp(o.arg, "simple") == 0) gpt.algo = MG_G_GGSIMPLE;
				else {
					fprintf(stderr, "ERROR: unknown graph generation algorithm \"%s\"\n", o.arg);
					return 1;
				}
			} else gpt.algo = MG_G_GGSIMPLE;
		} else if (c == 302) { // --secondary
			yes_or_no(&opt.flag, MG_M_PRINT_2ND, o.longidx, o.arg, 1);
		} else if (c == 303) { // --ins-qovlp
			yes_or_no(&gpt.flag, MG_G_NO_QOVLP, o.longidx, o.arg, 1);
		} else if (c == 304) { // --heap-sort
			yes_or_no(&opt.flag, MG_M_HEAP_SORT, o.longidx, o.arg, 1);
		} else if (c == 305) { // --show-unmap
			yes_or_no(&opt.flag, MG_M_SHOW_UNMAP, o.longidx, o.arg, 1);
		} else if (c == 307) { // --rmq
			yes_or_no(&opt.flag, MG_M_RMQ, o.longidx, o.arg, 1);
		} else if (c == 325) { // --inv
			yes_or_no(&gpt.flag, MG_G_NO_INV, o.longidx, o.arg, 0);
		} else if (c == 300) { // --version
			puts(MG_VERSION);
			return 0;
		}
	}
	if (mg_opt_check(&ipt, &opt, &gpt) < 0)
		return 1;
	if (gpt.algo == MG_G_GGSIMPLE && !(opt.flag&MG_M_CIGAR))
		fprintf(stderr, "[WARNING]\033[1;31m it is recommended to add -c for graph generation\033[0m\n");

	if (argc == o.ind || fp_help == stdout) {
		fprintf(fp_help, "Usage: minigraph [options] <target.gfa> <query.fa> [...]\n");
		fprintf(fp_help, "Options:\n");
		fprintf(fp_help, "  Indexing:\n");
		fprintf(fp_help, "    -k INT       k-mer size (no larger than 28) [%d]\n", ipt.k);
		fprintf(fp_help, "    -w INT       minizer window size [%d]\n", ipt.w);
		fprintf(fp_help, "  Mapping:\n");
		fprintf(fp_help, "    -c           perform base alignment; RECOMMENDED\n");
		fprintf(fp_help, "    -f FLOAT     ignore top FLOAT fraction of repetitive minimizers [%g]\n", opt.occ_max1_frac);
		fprintf(fp_help, "    -U INT[,INT] choose the minimizer occurrence threshold within this interval [%d,%d]\n", opt.occ_max1, opt.occ_max1_cap);
		fprintf(fp_help, "    -j FLOAT     expected sequence divergence [%g]\n", opt.div);
		fprintf(fp_help, "    -g NUM       stop chain enlongation if there are no minimizers in INT-bp [%d]\n", opt.max_gap);
		fprintf(fp_help, "    -F NUM       max fragment length (effective with -xsr or in the fragment mode) [%d]\n", opt.max_frag_len);
		fprintf(fp_help, "    -r NUM[,NUM] bandwidth for the two rounds of chaining [%d,%d]\n", opt.bw, opt.bw_long);
		fprintf(fp_help, "    -n INT[,INT] minimal number of minimizers on a graph/linear chain [%d,%d]\n", opt.min_gc_cnt, opt.min_lc_cnt);
		fprintf(fp_help, "    -m INT[,INT] minimal graph/linear chaining score [%d,%d]\n", opt.min_gc_score, opt.min_lc_score);
		fprintf(fp_help, "    -p FLOAT     min secondary-to-primary score ratio [%g]\n", opt.pri_ratio);
		fprintf(fp_help, "    -N INT       retain at most INT secondary mappings [%d]\n", opt.best_n);
		fprintf(fp_help, "    -D           skip self diagonal matches\n");
		fprintf(fp_help, "  Graph generation:\n");
		fprintf(fp_help, "    --ggen       perform incremental graph generation\n");
		fprintf(fp_help, "    -q INT       min mapping quality [%d]\n", gpt.min_mapq);
		fprintf(fp_help, "    -l NUM       min alignment length [%d]\n", gpt.min_map_len);
		fprintf(fp_help, "    -d NUM       min alignment length for depth calculation [%d]\n", gpt.min_depth_len);
		fprintf(fp_help, "    -L INT       min variant length [%d]\n", gpt.min_var_len);
		fprintf(fp_help, "    --call       call the graph path in each bubble and output BED\n");
		fprintf(fp_help, "  Input/output:\n");
		fprintf(fp_help, "    -t INT       number of threads [%d]\n", n_threads);
		fprintf(fp_help, "    -o FILE      output mappings to FILE [stdout]\n");
		fprintf(fp_help, "    -K NUM       minibatch size for mapping [500M]\n");
		fprintf(fp_help, "    -S           output linear chains in * sName sLen nMz div sStart sEnd qStart qEnd\n");
		fprintf(fp_help, "    --vc         output in the vertex coordinate\n");
		fprintf(fp_help, "  Preset:\n");
		fprintf(fp_help, "    -x STR       preset []\n");
		fprintf(fp_help, "                 - lr: noisy long read mapping (the default)\n");
		fprintf(fp_help, "                 - asm: asm-to-ref mapping\n");
		fprintf(fp_help, "                 - sr: short reads\n");
		fprintf(fp_help, "                 - ggs: incremental graph generation\n");
		return fp_help == stdout? 0 : 1;
	}

	g = gfa_read(argv[o.ind]);
	if (g == 0) {
		fprintf(stderr, "[ERROR] failed to load the graph from file '%s'\n", argv[o.ind]);
		return 1;
	} else if (mg_verbose >= 3) {
		fprintf(stderr, "[M::%s::%.3f*%.2f] loaded the graph from \"%s\"\n", __func__, realtime() - mg_realtime0, cputime() / (realtime() - mg_realtime0), argv[o.ind]);
	}

	if (gpt.algo == MG_G_NONE && !(gpt.flag & MG_G_CALL)) {
		ret = mg_map_files(g, argc - (o.ind + 1), (const char**)&argv[o.ind + 1], &ipt, &opt, n_threads);
	} else {
		if (gpt.flag & MG_G_CALL) gfa_sort_ref_arc(g);
		ret = mg_ggen(g, argc - (o.ind + 1), (const char**)&argv[o.ind + 1], &ipt, &opt, &gpt, n_threads);
	}

	if ((gpt.algo != MG_G_NONE || (opt.flag & MG_M_CAL_COV)) && !(gpt.flag & MG_G_CALL))
		gfa_print(g, stdout, 0);
	gfa_destroy(g);

	if (fflush(stdout) == EOF) {
		fprintf(stderr, "[ERROR] failed to write the results\n");
		exit(EXIT_FAILURE);
	}

	if (mg_verbose >= 3) {
		fprintf(stderr, "[M::%s] Version: %s\n", __func__, MG_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; Peak RSS: %.3f GB\n", __func__, realtime() - mg_realtime0, cputime(), peakrss() / 1024.0 / 1024.0 / 1024.0);
	}
	return !!ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rsi, %r14
movl %edi, %r15d
movups 0x59ab(%rip), %xmm0     # 0x2b590
leaq 0x10(%rsp), %r12
movaps %xmm0, 0x10(%r12)
movups 0x5989(%rip), %xmm0     # 0x2b580
movaps %xmm0, (%r12)
movq 0xc3f5(%rip), %rax      # 0x31ff8
movq (%rax), %rax
movq %rax, 0x120(%rsp)
leaq 0xc7eb(%rip), %rax      # 0x32400
movl $0x3, (%rax)
leaq 0x78(%rsp), %rbx
movl $0x9, %edi
movq %rbx, %rsi
callq 0x2350
movq 0x8(%rbx), %rax
movq %rax, (%rbx)
movl $0x9, %edi
movq %rbx, %rsi
callq 0x22a0
callq 0x43bd
leaq 0xca33(%rip), %rax      # 0x32680
movsd %xmm0, (%rax)
leaq 0x34(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x40(%rsp), %rcx
xorl %edi, %edi
callq 0xfe05
movq %r12, %rdi
movl %r15d, %esi
movq %r14, %rdx
callq 0x27647
testl %eax, %eax
js 0x25cd2
leaq 0x34(%rsp), %r12
leaq 0x78(%rsp), %r13
leaq 0x40(%rsp), %rbp
leaq 0x10(%rsp), %rbx
cmpl $0x78, %eax
je 0x25ca5
cmpl $0x3a, %eax
je 0x275ec
cmpl $0x3f, %eax
jne 0x25cc0
jmp 0x275c8
movq 0x18(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq 0xfe05
testl %eax, %eax
js 0x275f3
movq %rbx, %rdi
movl %r15d, %esi
movq %r14, %rdx
callq 0x27647
testl %eax, %eax
jns 0x25c8d
leaq 0x10(%rsp), %rdi
movups 0x58b2(%rip), %xmm0     # 0x2b590
movaps %xmm0, 0x10(%rdi)
movupd 0x5896(%rip), %xmm0     # 0x2b580
movapd %xmm0, (%rdi)
movl %r15d, %esi
movq %r14, %rdx
callq 0x27647
testl %eax, %eax
js 0x27068
movl $0x4, 0x30(%rsp)
leaq 0x4bd8(%rip), %r13      # 0x2a8e8
leaq 0x10(%rsp), %r12
leaq 0x4c9c(%rip), %rbp      # 0x2a9b8
leal -0x12c(%rax), %ecx
cmpl $0x1d, %ecx
jbe 0x25d43
leal -0x44(%rax), %ecx
cmpl $0x33, %ecx
ja 0x25d57
movslq (%r13,%rcx,4), %rax
addq %r13, %rax
jmpq *%rax
orb $0x40, 0x7a(%rsp)
jmp 0x26a24
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
orb $0x8, 0x79(%rsp)
jmp 0x26a24
addl $0xfffffe6f, %eax       # imm = 0xFFFFFE6F
cmpl $0x8, %eax
ja 0x26a24
leaq 0x4cc4(%rip), %rcx      # 0x2aa30
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xc8fc(%rip), %rax      # 0x32678
orb $0x1, (%rax)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0xd8(%rsp)
jmp 0x26a24
orb $0x8, 0x40(%rsp)
orb $0x2, 0x7b(%rsp)
jmp 0x26a24
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x40(%rsp), %rbp
leaq 0x5774(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269d7
leaq 0x3517(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269d7
leaq 0x574a(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x25e10
leaq 0x32e9(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x2701a
orq $0x4, %rbp
jmp 0x269f3
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26a59
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26a49
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26a3f
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26a59
mulsd 0x4a4f(%rip), %xmm0     # 0x2a8d0
jmp 0x26a51
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x118(%rsp)
jmp 0x26a24
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x78(%rsp), %rbp
leaq 0x5681(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269dd
leaq 0x3424(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269dd
leaq 0x5657(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x25f03
leaq 0x31f6(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x27027
andq $-0x8001, %rbp          # imm = 0xFFFF7FFF
jmp 0x26a11
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x68(%rsp)
jmp 0x26a24
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x78(%rsp), %rbp
leaq 0x55f5(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269e6
leaq 0x3398(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269e6
leaq 0x55cb(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x25f8f
leaq 0x316a(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x27034
andq $-0x100001, %rbp        # imm = 0xFFEFFFFF
jmp 0x26a11
orb $-0x40, 0x78(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26a89
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26a79
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26a6f
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26a89
mulsd 0x48c3(%rip), %xmm0     # 0x2a8d0
jmp 0x26a81
orb $0x20, 0x7a(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x5c(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rbx
testq %rbx, %rbx
je 0x26067
leaq 0x4ae0(%rip), %rsi      # 0x2ab20
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26f41
leaq 0x424a(%rip), %rsi      # 0x2a2a1
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x27622
movl $0x1, 0x48(%rsp)
jmp 0x26a24
orq $0x1800000, 0x78(%rsp)  # imm = 0x1800000
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x64(%rsp)
jmp 0x26a24
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x40(%rsp), %rbp
leaq 0x5488(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269ef
leaq 0x322b(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x269ef
leaq 0x545e(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x260fc
leaq 0x2ffd(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x27041
andq $-0x2, %rbp
jmp 0x269f3
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x78(%rsp), %rbp
leaq 0x5418(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26a01
leaq 0x31bb(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26a01
leaq 0x53ee(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x2616c
leaq 0x2f8d(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x2704e
andq $-0x2001, %rbp          # imm = 0xDFFF
jmp 0x26a11
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26ac3
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26ab3
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26a9f
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26ac3
mulsd 0x46f0(%rip), %xmm0     # 0x2a8d0
jmp 0x26abb
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x108(%rsp)
jmp 0x26a24
movl 0x20(%rsp), %r13d
movq 0x18(%rsp), %rbx
movq 0x78(%rsp), %rbp
leaq 0x5322(%rip), %rsi      # 0x2b533
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26a0a
leaq 0x30c5(%rip), %rsi      # 0x292ed
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26a0a
leaq 0x52f8(%rip), %rsi      # 0x2b537
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26262
leaq 0x2e97(%rip), %rsi      # 0x290e9
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
jne 0x2705b
andq $-0x401, %rbp           # imm = 0xFBFF
jmp 0x26a11
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26aec
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26adc
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26aa9
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26aec
mulsd 0x45fa(%rip), %xmm0     # 0x2a8d0
jmp 0x26ae4
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc8(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26b29
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26b19
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26b05
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26b29
mulsd 0x4571(%rip), %xmm0     # 0x2a8d0
jmp 0x26b21
orq $0x2004000, 0x78(%rsp)  # imm = 0x2004000
orb $0x2, 0x40(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26b53
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26b43
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26b0f
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26b53
mulsd 0x44f1(%rip), %xmm0     # 0x2a8d0
jmp 0x26b4b
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0xd0(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x104(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26b90
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26b80
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26b6c
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26b90
mulsd 0x4452(%rip), %xmm0     # 0x2a8d0
jmp 0x26b88
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26bb9
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26ba9
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26b76
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26bb9
mulsd 0x43e5(%rip), %xmm0     # 0x2a8d0
jmp 0x26bb1
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x58(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26c74
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26c64
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26c46
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26c74
mulsd 0x4365(%rip), %xmm0     # 0x2a8d0
jmp 0x26c6c
orb $-0x80, 0x7a(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x9c(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26ca7
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26c97
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26c50
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26ca7
mulsd 0x42d2(%rip), %xmm0     # 0x2a8d0
jmp 0x26c9f
orb $0x10, 0x79(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26cd0
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26cc0
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26c5a
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26cd0
mulsd 0x425b(%rip), %xmm0     # 0x2a8d0
jmp 0x26cc8
movq 0x18(%rsp), %rbx
leaq 0x1cea(%rip), %rsi      # 0x28370
movq %rbx, %rdi
callq 0x21f0
testl %eax, %eax
je 0x26a24
movq 0xb93b(%rip), %rax      # 0x31fd8
movq (%rax), %rdx
leaq 0x443a(%rip), %rsi      # 0x2aae1
movq %rbx, %rdi
callq 0x2190
testq %rax, %rax
jne 0x26a24
jmp 0x2763d
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26d21
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26d11
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26c8a
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26d21
mulsd 0x41ab(%rip), %xmm0     # 0x2a8d0
jmp 0x26d19
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xf8(%rsp)
jmp 0x26a24
orb $0x4, 0x7b(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26dbe
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26dae
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26cea
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26dbe
mulsd 0x4118(%rip), %xmm0     # 0x2a8d0
jmp 0x26db6
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26de7
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26dd7
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26cf7
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26de7
mulsd 0x40ab(%rip), %xmm0     # 0x2a8d0
jmp 0x26ddf
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26e84
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26e74
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26d04
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26e84
mulsd 0x403e(%rip), %xmm0     # 0x2a8d0
jmp 0x26e7c
movq 0x18(%rsp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc4(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x4c(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x38(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x30(%rsp)
jmp 0x26a24
movq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26eb4
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26ea4
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26e9a
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26eb4
mulsd 0x3f7c(%rip), %xmm0     # 0x2a8d0
jmp 0x26eac
movq 0x18(%rsp), %rdi
callq 0x2310
movl %eax, 0x34(%rsp)
jmp 0x26a24
leaq 0xbd05(%rip), %rax      # 0x32678
orb $0x20, (%rax)
jmp 0x26a24
leaq 0xbcf6(%rip), %rax      # 0x32678
orb $0x8, (%rax)
jmp 0x26a24
leaq 0xbce7(%rip), %rax      # 0x32678
orb $0x10, (%rax)
jmp 0x26a24
leaq 0xbcd8(%rip), %rax      # 0x32678
orb $0x1, 0x1(%rax)
jmp 0x26a24
leaq 0xbccb(%rip), %rax      # 0x32678
orb $0x2, (%rax)
jmp 0x26a24
leaq 0xbcbf(%rip), %rax      # 0x32678
orb $0x40, (%rax)
jmp 0x26a24
leaq 0xbcb3(%rip), %rax      # 0x32678
orb $-0x80, (%rax)
jmp 0x26a24
leaq 0xbca7(%rip), %rax      # 0x32678
orb $0x2, 0x1(%rax)
jmp 0x26a24
andq $-0x5, %rbp
jmp 0x269f3
orq $0x8000, %rbp           # imm = 0x8000
jmp 0x26a11
orq $0x100000, %rbp         # imm = 0x100000
jmp 0x26a11
orq $0x1, %rbp
leaq 0x3eee(%rip), %r13      # 0x2a8e8
movq %rbp, 0x40(%rsp)
jmp 0x26a1d
orq $0x2000, %rbp           # imm = 0x2000
jmp 0x26a11
orq $0x400, %rbp            # imm = 0x400
leaq 0x3ed0(%rip), %r13      # 0x2a8e8
movq %rbp, 0x78(%rsp)
leaq 0x3f94(%rip), %rbp      # 0x2a9b8
movq %r12, %rdi
movl %r15d, %esi
movq %r14, %rdx
callq 0x27647
testl %eax, %eax
jns 0x25d1c
jmp 0x27070
mulsd 0x3e81(%rip), %xmm0     # 0x2a8c8
jmp 0x26a51
mulsd 0x3e87(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x29df(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xa8(%rsp)
jmp 0x26a24
mulsd 0x3e51(%rip), %xmm0     # 0x2a8c8
jmp 0x26a81
mulsd 0x3e57(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x29af(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xb4(%rsp)
jmp 0x26a24
mulsd 0x3e21(%rip), %xmm0     # 0x2a8c8
jmp 0x26abb
mulsd 0x3e17(%rip), %xmm0     # 0x2a8c8
jmp 0x26ae4
mulsd 0x3e1d(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2975(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xec(%rsp)
jmp 0x26a24
mulsd 0x3df4(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x294c(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0x11c(%rsp)
jmp 0x26a24
mulsd 0x3dbb(%rip), %xmm0     # 0x2a8c8
jmp 0x26b21
mulsd 0x3db1(%rip), %xmm0     # 0x2a8c8
jmp 0x26b4b
mulsd 0x3db7(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x290f(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq %rax, 0x110(%rsp)
jmp 0x26a24
mulsd 0x3d8d(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x28e5(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xd4(%rsp)
jmp 0x26a24
mulsd 0x3d54(%rip), %xmm0     # 0x2a8c8
jmp 0x26b88
mulsd 0x3d4a(%rip), %xmm0     # 0x2a8c8
jmp 0x26bb1
mulsd 0x3d50(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x28a8(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xb8(%rsp)
jmp 0x26a24
mulsd 0x3d27(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x287f(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq 0x8(%rsp), %rdi
movl %eax, 0xe8(%rsp)
cmpb $0x2c, (%rdi)
jne 0x26a24
incq %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26f68
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26f58
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26f4e
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26f68
mulsd 0x3c8f(%rip), %xmm0     # 0x2a8d0
jmp 0x26f60
mulsd 0x3c7a(%rip), %xmm0     # 0x2a8c8
jmp 0x26c6c
mulsd 0x3c70(%rip), %xmm0     # 0x2a8c8
jmp 0x26c9f
mulsd 0x3c66(%rip), %xmm0     # 0x2a8c8
jmp 0x26cc8
mulsd 0x3c6c(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x27c4(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0x50(%rsp)
jmp 0x26a24
mulsd 0x3c36(%rip), %xmm0     # 0x2a8c8
jmp 0x26d19
mulsd 0x3c39(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2791(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xc0(%rsp)
jmp 0x26a24
mulsd 0x3c10(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2768(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq %rax, 0x80(%rsp)
jmp 0x26a24
mulsd 0x3bd6(%rip), %xmm0     # 0x2a8c8
jmp 0x26db6
mulsd 0x3bc9(%rip), %xmm0     # 0x2a8c8
jmp 0x26ddf
mulsd 0x3bbc(%rip), %xmm0     # 0x2a8c8
jmp 0x26e7c
mulsd 0x3bbf(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2717(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq 0x8(%rsp), %rdi
movl %eax, 0xe4(%rsp)
cmpb $0x2c, (%rdi)
jne 0x26a24
incq %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26fa5
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26f95
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26f81
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26fa5
mulsd 0x3b27(%rip), %xmm0     # 0x2a8d0
jmp 0x26f9d
mulsd 0x3b22(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x267a(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0x100(%rsp)
jmp 0x26a24
mulsd 0x3af9(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2651(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq 0x8(%rsp), %rdi
movl %eax, 0x94(%rsp)
cmpb $0x2c, (%rdi)
jne 0x26a24
incq %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x26fce
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26fbe
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26f8b
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x26fce
mulsd 0x3a61(%rip), %xmm0     # 0x2a8d0
jmp 0x26fc6
mulsd 0x3a5c(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x25b4(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0x54(%rsp)
jmp 0x26a24
mulsd 0x3a26(%rip), %xmm0     # 0x2a8c8
jmp 0x26eac
mulsd 0x3a2c(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2584(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movq 0x8(%rsp), %rdi
movl %eax, 0xa0(%rsp)
cmpb $0x2c, (%rdi)
jne 0x26a24
incq %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x20c0
movq (%rbx), %rax
movzbl (%rax), %ecx
addl $-0x47, %ecx
cmpl $0x26, %ecx
ja 0x27001
movabsq $0x100000001, %rdx      # imm = 0x100000001
btq %rcx, %rdx
jb 0x26ff1
movabsq $0x1000000010, %rdx     # imm = 0x1000000010
btq %rcx, %rdx
jb 0x26fe7
movabsq $0x4000000040, %rdx     # imm = 0x4000000040
btq %rcx, %rdx
jae 0x27001
mulsd 0x3994(%rip), %xmm0     # 0x2a8d0
jmp 0x26ff9
movl $0x0, 0x48(%rsp)
jmp 0x26a24
mulsd 0x3972(%rip), %xmm0     # 0x2a8c8
jmp 0x26f60
mulsd 0x3978(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x24d0(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xe0(%rsp)
jmp 0x26a24
mulsd 0x393f(%rip), %xmm0     # 0x2a8c8
jmp 0x26f9d
mulsd 0x3935(%rip), %xmm0     # 0x2a8c8
jmp 0x26fc6
mulsd 0x393b(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2493(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xdc(%rsp)
jmp 0x26a24
mulsd 0x3912(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x246a(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0x98(%rsp)
jmp 0x26a24
mulsd 0x38d9(%rip), %xmm0     # 0x2a8c8
jmp 0x26ff9
mulsd 0x38df(%rip), %xmm0     # 0x2a8d8
incq %rax
movq %rax, 0x8(%rsp)
addsd 0x2437(%rip), %xmm0     # 0x29440
cvttsd2si %xmm0, %rax
movl %eax, 0xa4(%rsp)
jmp 0x26a24
movl %r13d, %edi
callq 0x2c05
jmp 0x269f3
movl %r13d, %edi
callq 0x2c38
jmp 0x26a11
movl %r13d, %edi
callq 0x2c6b
jmp 0x26a11
movl %r13d, %edi
callq 0x2cd1
jmp 0x269f3
movl %r13d, %edi
callq 0x2d04
jmp 0x26a11
movl %r13d, %edi
callq 0x2c9e
jmp 0x26a11
movl $0x4, 0x30(%rsp)
leaq 0x34(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0x10076
movb $0x1, %bpl
testl %eax, %eax
js 0x271bf
cmpl $0x1, 0x48(%rsp)
jne 0x270a1
testb $0x4, 0x7b(%rsp)
je 0x27605
movslq 0x10(%rsp), %rax
movq 0xaf2b(%rip), %r12      # 0x31fd8
cmpl %r15d, %eax
movq 0x120(%rsp), %rbx
leaq 0xb341(%rip), %r13      # 0x32400
je 0x271d5
cmpq (%r12), %rbx
je 0x271d5
movq (%r14,%rax,8), %rdi
callq 0x83ea
testq %rax, %rax
je 0x27580
movq %rax, %rbx
cmpl $0x3, (%r13)
jge 0x275a6
cmpl $0x0, 0x48(%rsp)
jne 0x2712c
testb $0x8, 0x40(%rsp)
jne 0x2712c
movslq 0x10(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %r15d, %esi
subl %ecx, %esi
leaq (%r14,%rax,8), %rdx
addq $0x8, %rdx
leaq 0x34(%rsp), %rcx
leaq 0x78(%rsp), %r8
movq %rbx, %rdi
movl 0x30(%rsp), %r9d
callq 0x21536
jmp 0x2716f
testb $0x8, 0x40(%rsp)
je 0x2713b
movq %rbx, %rdi
callq 0xa19d
movslq 0x10(%rsp), %rax
leaq 0x1(%rax), %rcx
movl %r15d, %esi
subl %ecx, %esi
leaq (%r14,%rax,8), %rdx
addq $0x8, %rdx
movl 0x30(%rsp), %eax
movl %eax, (%rsp)
leaq 0x34(%rsp), %rcx
leaq 0x78(%rsp), %r8
leaq 0x40(%rsp), %r9
movq %rbx, %rdi
callq 0x24de8
movl %eax, %ebp
cmpl $0x0, 0x48(%rsp)
jne 0x2717f
testb $0x40, 0x79(%rsp)
je 0x27194
testb $0x8, 0x40(%rsp)
jne 0x27194
movq (%r12), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x8915
movq %rbx, %rdi
callq 0x49ba
movq (%r12), %rdi
callq 0x2290
cmpl $-0x1, %eax
je 0x27638
cmpl $0x3, (%r13)
jge 0x275b8
testl %ebp, %ebp
setne %bpl
movzbl %bpl, %eax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x39ca(%rip), %rdi      # 0x2aba6
movl $0x39, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x39eb(%rip), %rdi      # 0x2abe0
movl $0x9, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x39dc(%rip), %rdi      # 0x2abea
movl $0xc, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
movl 0x38(%rsp), %edx
leaq 0x39cc(%rip), %rsi      # 0x2abf7
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0x34(%rsp), %edx
leaq 0x39ed(%rip), %rsi      # 0x2ac2d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
leaq 0x3a07(%rip), %rdi      # 0x2ac58
movl $0xb, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x39fa(%rip), %rdi      # 0x2ac64
movl $0x35, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
xorps %xmm0, %xmm0
cvtss2sd 0x9c(%rsp), %xmm0
leaq 0x3a0b(%rip), %rsi      # 0x2ac9a
movq %rbx, %rdi
movb $0x1, %al
callq 0x2210
movl 0x94(%rsp), %edx
movl 0x98(%rsp), %ecx
leaq 0x3a36(%rip), %rsi      # 0x2ace4
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
xorps %xmm0, %xmm0
cvtss2sd 0xc4(%rsp), %xmm0
leaq 0x3a72(%rip), %rsi      # 0x2ad3d
movq %rbx, %rdi
movb $0x1, %al
callq 0x2210
movl 0xb8(%rsp), %edx
leaq 0x3a8e(%rip), %rsi      # 0x2ad71
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0xc0(%rsp), %edx
leaq 0x3ac9(%rip), %rsi      # 0x2adc4
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0xa0(%rsp), %edx
movl 0xa4(%rsp), %ecx
leaq 0x3b03(%rip), %rsi      # 0x2ae1d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0xdc(%rsp), %ecx
movl 0xe4(%rsp), %edx
leaq 0x3b27(%rip), %rsi      # 0x2ae60
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0xe0(%rsp), %ecx
movl 0xe8(%rsp), %edx
leaq 0x3b57(%rip), %rsi      # 0x2aeaf
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
xorps %xmm0, %xmm0
cvtss2sd 0x104(%rsp), %xmm0
leaq 0x3b78(%rip), %rsi      # 0x2aeed
movq %rbx, %rdi
movb $0x1, %al
callq 0x2210
movl 0x100(%rsp), %edx
leaq 0x3b9c(%rip), %rsi      # 0x2af29
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
leaq 0x3bc8(%rip), %rdi      # 0x2af66
movl $0x2c, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3bdc(%rip), %rdi      # 0x2af93
movl $0x14, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3bd8(%rip), %rdi      # 0x2afa8
movl $0x36, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
movl 0x4c(%rsp), %edx
leaq 0x3bf2(%rip), %rsi      # 0x2afdf
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0x50(%rsp), %edx
leaq 0x3c08(%rip), %rsi      # 0x2b00a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0x54(%rsp), %edx
leaq 0x3c1f(%rip), %rsi      # 0x2b036
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
movl 0x58(%rsp), %edx
leaq 0x3c4c(%rip), %rsi      # 0x2b078
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2210
leaq 0x3c65(%rip), %rdi      # 0x2b0a2
movl $0x43, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3c90(%rip), %rdi      # 0x2b0e6
movl $0x10, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3c88(%rip), %rsi      # 0x2b0f7
movq %rbx, %rdi
movl 0x30(%rsp), %edx
xorl %eax, %eax
callq 0x2210
leaq 0x3c9c(%rip), %rdi      # 0x2b120
movl $0x32, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3cb6(%rip), %rdi      # 0x2b153
movl $0x33, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3cd1(%rip), %rdi      # 0x2b187
movl $0x56, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d0f(%rip), %rdi      # 0x2b1de
movl $0x31, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d28(%rip), %rdi      # 0x2b210
movl $0xa, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d1a(%rip), %rdi      # 0x2b21b
movl $0x1b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d1d(%rip), %rdi      # 0x2b237
movl $0x3d, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d42(%rip), %rdi      # 0x2b275
movl $0x2b, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d55(%rip), %rdi      # 0x2b2a1
movl $0x23, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
leaq 0x3d60(%rip), %rdi      # 0x2b2c5
movl $0x35, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x2340
cmpq (%r12), %rbx
jmp 0x271bb
movq 0xaa71(%rip), %rax      # 0x31ff8
movq (%rax), %rdi
movslq 0x10(%rsp), %rax
movq (%r14,%rax,8), %rdx
leaq 0x3d61(%rip), %rsi      # 0x2b2fb
xorl %eax, %eax
callq 0x2210
jmp 0x271bf
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x2d81
jmp 0x270ef
movl %r15d, %edi
movq %r14, %rsi
callq 0x2e05
jmp 0x271b9
movq 0xaa29(%rip), %rax      # 0x31ff8
movq (%rax), %rdi
movslq 0x24(%rsp), %rax
movq -0x8(%r14,%rax,8), %rdx
leaq 0x34de(%rip), %rsi      # 0x2aac1
xorl %eax, %eax
callq 0x2210
jmp 0x275fd
callq 0x2bbe
jmp 0x275fd
leaq 0x10(%rsp), %rdi
callq 0x2be0
movb $0x1, %bpl
jmp 0x271bf
callq 0x2d5f
jmp 0x270a1
leaq 0x353f(%rip), %rdi      # 0x2ab55
callq 0x2090
xorl %ebp, %ebp
jmp 0x271bf
movq 0xa9cf(%rip), %rax      # 0x31ff8
movq (%rax), %rdi
leaq 0x34f2(%rip), %rsi      # 0x2ab25
movq %rbx, %rdx
jmp 0x275e3
callq 0x2ef4
leaq 0x10(%rsp), %rdi
callq 0x2d37