// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x4c08(%rip), %rax      # 0x3e828
movq %rax, -0x18(%rbp)
movq 0xb7d5(%rip), %rax      # 0x45400
movq %rax, -0x38(%rbp)
movq 0xb7d2(%rip), %rax      # 0x45408
movq %rax, -0x30(%rbp)
movq 0xb7cf(%rip), %rax      # 0x45410
movq %rax, -0x28(%rbp)
movq 0xb7cc(%rip), %rax      # 0x45418
movq %rax, -0x20(%rbp)
movl $0x4, -0x138(%rbp)
movq 0xb397(%rip), %rax      # 0x44ff8
movq (%rax), %rax
movq %rax, -0x148(%rbp)
leaq 0xb77e(%rip), %rax      # 0x453f0
movl $0x3, (%rax)
callq 0x39bc0
callq 0x48e0
leaq 0xba07(%rip), %rax      # 0x45690
movsd %xmm0, (%rax)
xorl %eax, %eax
movl %eax, %edi
leaq -0xec(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
leaq -0x128(%rbp), %rcx
callq 0x17bb0
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq -0x38(%rbp), %rdi
movl $0x1, %ecx
leaq 0xb75a(%rip), %r9       # 0x45420
callq 0x3b010
movl %eax, -0x130(%rbp)
cmpl $0x0, %eax
jl 0x39da4
cmpl $0x78, -0x130(%rbp)
jne 0x39d30
movq -0x30(%rbp), %rdi
leaq -0xec(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
leaq -0x128(%rbp), %rcx
callq 0x17bb0
cmpl $0x0, %eax
jge 0x39d2e
movq 0xb2eb(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4b3c(%rip), %rsi      # 0x3e857
movb $0x0, %al
callq 0x2210
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
jmp 0x39d9f
cmpl $0x3a, -0x130(%rbp)
jne 0x39d5d
movq 0xb2b8(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
leaq 0x4b2a(%rip), %rsi      # 0x3e874
movb $0x0, %al
callq 0x2210
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
cmpl $0x3f, -0x130(%rbp)
jne 0x39d9b
movq 0xb28b(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl -0x24(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x4b0d(%rip), %rsi      # 0x3e895
movb $0x0, %al
callq 0x2210
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
jmp 0x39d9d
jmp 0x39d9f
jmp 0x39cab
movq 0xb655(%rip), %rax      # 0x45400
movq %rax, -0x38(%rbp)
movq 0xb652(%rip), %rax      # 0x45408
movq %rax, -0x30(%rbp)
movq 0xb64f(%rip), %rax      # 0x45410
movq %rax, -0x28(%rbp)
movq 0xb64c(%rip), %rax      # 0x45418
movq %rax, -0x20(%rbp)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq -0x38(%rbp), %rdi
movl $0x1, %ecx
leaq 0xb635(%rip), %r9       # 0x45420
callq 0x3b010
movl %eax, -0x130(%rbp)
cmpl $0x0, %eax
jl 0x3a848
cmpl $0x77, -0x130(%rbp)
jne 0x39e1c
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0xec(%rbp)
jmp 0x3a843
cmpl $0x6b, -0x130(%rbp)
jne 0x39e39
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0xe8(%rbp)
jmp 0x3a841
cmpl $0x74, -0x130(%rbp)
jne 0x39e56
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x138(%rbp)
jmp 0x3a83f
cmpl $0x66, -0x130(%rbp)
jne 0x39e79
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xbc(%rbp)
jmp 0x3a83d
cmpl $0x67, -0x130(%rbp)
jne 0x39e96
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0xa0(%rbp)
jmp 0x3a83b
cmpl $0x46, -0x130(%rbp)
jne 0x39eb3
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x98(%rbp)
jmp 0x3a839
cmpl $0x4b, -0x130(%rbp)
jne 0x39ed1
movq -0x30(%rbp), %rdi
callq 0x3b570
movq %rax, -0xd8(%rbp)
jmp 0x3a837
cmpl $0x70, -0x130(%rbp)
jne 0x39ef1
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x54(%rbp)
jmp 0x3a835
cmpl $0x4e, -0x130(%rbp)
jne 0x39f0b
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x58(%rbp)
jmp 0x3a833
cmpl $0x50, -0x130(%rbp)
jne 0x39f2d
movq -0xe0(%rbp), %rax
orq $0x1000, %rax           # imm = 0x1000
movq %rax, -0xe0(%rbp)
jmp 0x3a831
cmpl $0x44, -0x130(%rbp)
jne 0x39f4f
movq -0xe0(%rbp), %rax
orq $0x400000, %rax         # imm = 0x400000
movq %rax, -0xe0(%rbp)
jmp 0x3a82f
cmpl $0x4d, -0x130(%rbp)
jne 0x39f6f
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x60(%rbp)
jmp 0x3a82d
cmpl $0x6a, -0x130(%rbp)
jne 0x39f92
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x94(%rbp)
jmp 0x3a82b
cmpl $0x6c, -0x130(%rbp)
jne 0x39faf
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x118(%rbp)
jmp 0x3a829
cmpl $0x64, -0x130(%rbp)
jne 0x39fcc
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x114(%rbp)
jmp 0x3a827
cmpl $0x71, -0x130(%rbp)
jne 0x39fe9
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x11c(%rbp)
jmp 0x3a825
cmpl $0x4c, -0x130(%rbp)
jne 0x3a006
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x110(%rbp)
jmp 0x3a823
cmpl $0x53, -0x130(%rbp)
jne 0x3a028
movq -0xe0(%rbp), %rax
orq $0x800000, %rax         # imm = 0x800000
movq %rax, -0xe0(%rbp)
jmp 0x3a821
cmpl $0x63, -0x130(%rbp)
jne 0x3a04a
movq -0xe0(%rbp), %rax
orq $0x4000000, %rax        # imm = 0x4000000
movq %rax, -0xe0(%rbp)
jmp 0x3a81f
cmpl $0x12d, -0x130(%rbp)    # imm = 0x12D
jne 0x3a06f
movq -0xe0(%rbp), %rax
orq $0x800, %rax            # imm = 0x800
movq %rax, -0xe0(%rbp)
jmp 0x3a81d
cmpl $0x135, -0x130(%rbp)    # imm = 0x135
jne 0x3a08f
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x104(%rbp)
jmp 0x3a81b
cmpl $0x136, -0x130(%rbp)    # imm = 0x136
jne 0x3a0b5
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x100(%rbp)
jmp 0x3a819
cmpl $0x138, -0x130(%rbp)    # imm = 0x138
jne 0x3a0da
movq -0xe0(%rbp), %rax
orq $0x200000, %rax         # imm = 0x200000
movq %rax, -0xe0(%rbp)
jmp 0x3a817
cmpl $0x139, -0x130(%rbp)    # imm = 0x139
jne 0x3a0fa
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x10c(%rbp)
jmp 0x3a815
cmpl $0x13a, -0x130(%rbp)    # imm = 0x13A
jne 0x3a11f
movq -0xe0(%rbp), %rax
orq $0xc0, %rax
movq %rax, -0xe0(%rbp)
jmp 0x3a813
cmpl $0x13b, -0x130(%rbp)    # imm = 0x13B
jne 0x3a156
movq -0xe0(%rbp), %rax
orq $0x2004000, %rax        # imm = 0x2004000
movq %rax, -0xe0(%rbp)
movq -0x128(%rbp), %rax
orq $0x2, %rax
movq %rax, -0x128(%rbp)
jmp 0x3a811
cmpl $0x13c, -0x130(%rbp)    # imm = 0x13C
jne 0x3a173
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x3c(%rbp)
jmp 0x3a80f
cmpl $0x13d, -0x130(%rbp)    # imm = 0x13D
jne 0x3a190
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x40(%rbp)
jmp 0x3a80d
cmpl $0x13e, -0x130(%rbp)    # imm = 0x13E
jne 0x3a1b6
movq -0x30(%rbp), %rdi
callq 0x20e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x90(%rbp)
jmp 0x3a80b
cmpl $0x13f, -0x130(%rbp)    # imm = 0x13F
jne 0x3a1d3
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x50(%rbp)
jmp 0x3a809
cmpl $0x140, -0x130(%rbp)    # imm = 0x140
jne 0x3a1f3
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0xa4(%rbp)
jmp 0x3a807
cmpl $0x141, -0x130(%rbp)    # imm = 0x141
jne 0x3a213
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x88(%rbp)
jmp 0x3a805
cmpl $0x142, -0x130(%rbp)    # imm = 0x142
jne 0x3a230
movq -0x30(%rbp), %rdi
callq 0x2310
movl %eax, -0x80(%rbp)
jmp 0x3a803
cmpl $0x143, -0x130(%rbp)    # imm = 0x143
jne 0x3a250
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x84(%rbp)
jmp 0x3a801
cmpl $0x144, -0x130(%rbp)    # imm = 0x144
jne 0x3a270
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0xb0(%rbp)
jmp 0x3a7ff
cmpl $0x146, -0x130(%rbp)    # imm = 0x146
jne 0x3a295
movq -0xe0(%rbp), %rax
orq $0x1800000, %rax        # imm = 0x1800000
movq %rax, -0xe0(%rbp)
jmp 0x3a7fd
cmpl $0x147, -0x130(%rbp)    # imm = 0x147
jne 0x3a2cc
movq -0x128(%rbp), %rax
orq $0x8, %rax
movq %rax, -0x128(%rbp)
movq -0xe0(%rbp), %rax
orq $0x2000000, %rax        # imm = 0x2000000
movq %rax, -0xe0(%rbp)
jmp 0x3a7fb
cmpl $0x148, -0x130(%rbp)    # imm = 0x148
jne 0x3a2ea
movq -0x30(%rbp), %rdi
callq 0x3b570
movq %rax, -0x48(%rbp)
jmp 0x3a7f9
cmpl $0x149, -0x130(%rbp)    # imm = 0x149
jne 0x3a307
movq -0x30(%rbp), %rdi
callq 0x3b570
movl %eax, -0x6c(%rbp)
jmp 0x3a7f7
cmpl $0x191, -0x130(%rbp)    # imm = 0x191
jne 0x3a32d
leaq 0xb36e(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x1, %ecx
leaq 0xb362(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7f5
cmpl $0x192, -0x130(%rbp)    # imm = 0x192
jne 0x3a353
leaq 0xb348(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x2, %ecx
leaq 0xb33c(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7f3
cmpl $0x193, -0x130(%rbp)    # imm = 0x193
jne 0x3a379
leaq 0xb322(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x8, %ecx
leaq 0xb316(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7f1
cmpl $0x194, -0x130(%rbp)    # imm = 0x194
jne 0x3a39f
leaq 0xb2fc(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x10, %ecx
leaq 0xb2f0(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7ef
cmpl $0x195, -0x130(%rbp)    # imm = 0x195
jne 0x3a3c5
leaq 0xb2d6(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x20, %ecx
leaq 0xb2ca(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7ed
cmpl $0x196, -0x130(%rbp)    # imm = 0x196
jne 0x3a3eb
leaq 0xb2b0(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x40, %ecx
leaq 0xb2a4(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7eb
cmpl $0x197, -0x130(%rbp)    # imm = 0x197
jne 0x3a414
leaq 0xb28a(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x80, %ecx
leaq 0xb27b(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7e9
cmpl $0x198, -0x130(%rbp)    # imm = 0x198
jne 0x3a43d
leaq 0xb261(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
leaq 0xb252(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7e7
cmpl $0x199, -0x130(%rbp)    # imm = 0x199
jne 0x3a466
leaq 0xb238(%rip), %rax      # 0x45688
movl (%rax), %ecx
orl $0x200, %ecx            # imm = 0x200
leaq 0xb229(%rip), %rax      # 0x45688
movl %ecx, (%rax)
jmp 0x3a7e5
cmpl $0x55, -0x130(%rbp)
jne 0x3a4b6
movq -0x30(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0xc4(%rbp)
movq -0x140(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x3a4b1
movq -0x140(%rbp), %rdi
addq $0x1, %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0xc0(%rbp)
jmp 0x3a7e3
cmpl $0x72, -0x130(%rbp)
jne 0x3a506
movq -0x30(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0xb8(%rbp)
movq -0x140(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x3a501
movq -0x140(%rbp), %rdi
addq $0x1, %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0xb4(%rbp)
jmp 0x3a7e1
cmpl $0x6e, -0x130(%rbp)
jne 0x3a550
movq -0x30(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0x74(%rbp)
movq -0x140(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x3a54b
movq -0x140(%rbp), %rdi
addq $0x1, %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0x7c(%rbp)
jmp 0x3a7df
cmpl $0x6d, -0x130(%rbp)
jne 0x3a59a
movq -0x30(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0x70(%rbp)
movq -0x140(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x3a595
movq -0x140(%rbp), %rdi
addq $0x1, %rdi
leaq -0x140(%rbp), %rsi
callq 0x3b590
movl %eax, -0x78(%rbp)
jmp 0x3a7dd
cmpl $0x6f, -0x130(%rbp)
jne 0x3a605
movq -0x30(%rbp), %rdi
leaq 0x1db2(%rip), %rsi      # 0x3c360
callq 0x21f0
cmpl $0x0, %eax
je 0x3a600
movq -0x30(%rbp), %rdi
movq 0xaa15(%rip), %rax      # 0x44fd8
movq (%rax), %rdx
leaq 0x42e8(%rip), %rsi      # 0x3e8b5
callq 0x21a0
cmpq $0x0, %rax
jne 0x3a5fe
movq 0xaa19(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x30(%rbp), %rdx
leaq 0x42cb(%rip), %rsi      # 0x3e8b8
movb $0x0, %al
callq 0x2210
movl $0x1, %edi
callq 0x2330
jmp 0x3a600
jmp 0x3a7db
cmpl $0x132, -0x130(%rbp)    # imm = 0x132
jne 0x3a699
cmpq $0x0, -0x30(%rbp)
je 0x3a68a
movq -0x30(%rbp), %rdi
leaq 0x42cd(%rip), %rsi      # 0x3e8f4
callq 0x21f0
cmpl $0x0, %eax
jne 0x3a63d
movl $0x0, -0x120(%rbp)
jmp 0x3a688
movq -0x30(%rbp), %rdi
leaq 0x3b99(%rip), %rsi      # 0x3e1e1
callq 0x21f0
cmpl $0x0, %eax
jne 0x3a65e
movl $0x1, -0x120(%rbp)
jmp 0x3a686
movq 0xa993(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4286(%rip), %rsi      # 0x3e8f9
movb $0x0, %al
callq 0x2210
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
jmp 0x3a688
jmp 0x3a694
movl $0x1, -0x120(%rbp)
jmp 0x3a7d9
cmpl $0x12e, -0x130(%rbp)    # imm = 0x12E
jne 0x3a6c8
leaq -0xe0(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x2000, %esi           # imm = 0x2000
movl $0x1, %r8d
callq 0x3b690
jmp 0x3a7d7
cmpl $0x12f, -0x130(%rbp)    # imm = 0x12F
jne 0x3a6f7
leaq -0x128(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x1, %esi
movl $0x1, %r8d
callq 0x3b690
jmp 0x3a7d5
cmpl $0x130, -0x130(%rbp)    # imm = 0x130
jne 0x3a726
leaq -0xe0(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x400, %esi            # imm = 0x400
movl $0x1, %r8d
callq 0x3b690
jmp 0x3a7d3
cmpl $0x131, -0x130(%rbp)    # imm = 0x131
jne 0x3a752
leaq -0xe0(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x100000, %esi         # imm = 0x100000
movl $0x1, %r8d
callq 0x3b690
jmp 0x3a7d1
cmpl $0x133, -0x130(%rbp)    # imm = 0x133
jne 0x3a77e
leaq -0xe0(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x8000, %esi           # imm = 0x8000
movl $0x1, %r8d
callq 0x3b690
jmp 0x3a7cf
cmpl $0x145, -0x130(%rbp)    # imm = 0x145
jne 0x3a7a7
leaq -0x128(%rbp), %rdi
movl -0x28(%rbp), %edx
movq -0x30(%rbp), %rcx
movl $0x4, %esi
xorl %r8d, %r8d
callq 0x3b690
jmp 0x3a7cd
cmpl $0x12c, -0x130(%rbp)    # imm = 0x12C
jne 0x3a7cb
leaq 0x416f(%rip), %rdi      # 0x3e929
callq 0x2090
movl $0x0, -0x4(%rbp)
jmp 0x3aff7
jmp 0x3a7cd
jmp 0x3a7cf
jmp 0x3a7d1
jmp 0x3a7d3
jmp 0x3a7d5
jmp 0x3a7d7
jmp 0x3a7d9
jmp 0x3a7db
jmp 0x3a7dd
jmp 0x3a7df
jmp 0x3a7e1
jmp 0x3a7e3
jmp 0x3a7e5
jmp 0x3a7e7
jmp 0x3a7e9
jmp 0x3a7eb
jmp 0x3a7ed
jmp 0x3a7ef
jmp 0x3a7f1
jmp 0x3a7f3
jmp 0x3a7f5
jmp 0x3a7f7
jmp 0x3a7f9
jmp 0x3a7fb
jmp 0x3a7fd
jmp 0x3a7ff
jmp 0x3a801
jmp 0x3a803
jmp 0x3a805
jmp 0x3a807
jmp 0x3a809
jmp 0x3a80b
jmp 0x3a80d
jmp 0x3a80f
jmp 0x3a811
jmp 0x3a813
jmp 0x3a815
jmp 0x3a817
jmp 0x3a819
jmp 0x3a81b
jmp 0x3a81d
jmp 0x3a81f
jmp 0x3a821
jmp 0x3a823
jmp 0x3a825
jmp 0x3a827
jmp 0x3a829
jmp 0x3a82b
jmp 0x3a82d
jmp 0x3a82f
jmp 0x3a831
jmp 0x3a833
jmp 0x3a835
jmp 0x3a837
jmp 0x3a839
jmp 0x3a83b
jmp 0x3a83d
jmp 0x3a83f
jmp 0x3a841
jmp 0x3a843
jmp 0x39dd0
leaq -0xec(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x17eb0
cmpl $0x0, %eax
jge 0x3a873
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
cmpl $0x1, -0x120(%rbp)
jne 0x3a8a7
movq -0xe0(%rbp), %rax
andq $0x4000000, %rax        # imm = 0x4000000
cmpq $0x0, %rax
jne 0x3a8a7
movq 0xa762(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
leaq 0x4093(%rip), %rsi      # 0x3e933
movb $0x0, %al
callq 0x2210
movl -0x8(%rbp), %eax
cmpl -0x38(%rbp), %eax
je 0x3a8c6
movq -0x148(%rbp), %rax
movq 0xa71b(%rip), %rcx      # 0x44fd8
cmpq (%rcx), %rax
jne 0x3ac73
movq -0x148(%rbp), %rdi
leaq 0x40a6(%rip), %rsi      # 0x3e97a
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x40cb(%rip), %rsi      # 0x3e9b4
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x40c0(%rip), %rsi      # 0x3e9be
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0xe8(%rbp), %edx
leaq 0x40b2(%rip), %rsi      # 0x3e9cb
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0xec(%rbp), %edx
leaq 0x40cd(%rip), %rsi      # 0x3ea01
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x40e3(%rip), %rsi      # 0x3ea2c
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x40da(%rip), %rsi      # 0x3ea38
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movss -0xbc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x40ef(%rip), %rsi      # 0x3ea6e
movb $0x1, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0xc4(%rbp), %edx
movl -0xc0(%rbp), %ecx
leaq 0x4118(%rip), %rsi      # 0x3eab8
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movss -0x94(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4150(%rip), %rsi      # 0x3eb11
movb $0x1, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0xa0(%rbp), %edx
leaq 0x4169(%rip), %rsi      # 0x3eb45
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x98(%rbp), %edx
leaq 0x41a1(%rip), %rsi      # 0x3eb98
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0xb8(%rbp), %edx
movl -0xb4(%rbp), %ecx
leaq 0x41d9(%rip), %rsi      # 0x3ebf1
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x74(%rbp), %edx
movl -0x7c(%rbp), %ecx
leaq 0x4201(%rip), %rsi      # 0x3ec34
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x70(%rbp), %edx
movl -0x78(%rbp), %ecx
leaq 0x4235(%rip), %rsi      # 0x3ec83
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movss -0x54(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4255(%rip), %rsi      # 0x3ecc1
movb $0x1, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x58(%rbp), %edx
leaq 0x4279(%rip), %rsi      # 0x3ecfd
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x42a1(%rip), %rsi      # 0x3ed3a
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x42b9(%rip), %rsi      # 0x3ed67
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x42b9(%rip), %rsi      # 0x3ed7c
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x11c(%rbp), %edx
leaq 0x42d5(%rip), %rsi      # 0x3edb3
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x118(%rbp), %edx
leaq 0x42e5(%rip), %rsi      # 0x3edde
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x114(%rbp), %edx
leaq 0x42f6(%rip), %rsi      # 0x3ee0a
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x110(%rbp), %edx
leaq 0x431d(%rip), %rsi      # 0x3ee4c
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4332(%rip), %rsi      # 0x3ee76
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4361(%rip), %rsi      # 0x3eeba
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
movl -0x138(%rbp), %edx
leaq 0x4357(%rip), %rsi      # 0x3eecb
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x436b(%rip), %rsi      # 0x3eef4
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4389(%rip), %rsi      # 0x3ef27
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x43a8(%rip), %rsi      # 0x3ef5b
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x43ea(%rip), %rsi      # 0x3efb2
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4407(%rip), %rsi      # 0x3efe4
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x43fd(%rip), %rsi      # 0x3efef
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4404(%rip), %rsi      # 0x3f00b
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x442d(%rip), %rsi      # 0x3f049
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4444(%rip), %rsi      # 0x3f075
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdi
leaq 0x4453(%rip), %rsi      # 0x3f099
movb $0x0, %al
callq 0x2210
movq -0x148(%rbp), %rdx
movq 0xa37d(%rip), %rax      # 0x44fd8
movq (%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x3aff7
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xa610
movq %rax, -0x150(%rbp)
cmpq $0x0, -0x150(%rbp)
jne 0x3acc5
movq 0xa35c(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x441d(%rip), %rsi      # 0x3f0cf
movb $0x0, %al
callq 0x2210
movl $0x1, -0x4(%rbp)
jmp 0x3aff7
leaq 0xa724(%rip), %rax      # 0x453f0
cmpl $0x3, (%rax)
jl 0x3ad5a
movq 0xa31c(%rip), %rax      # 0x44ff8
movq (%rax), %rax
movq %rax, -0x160(%rbp)
callq 0x48e0
leaq 0xa99e(%rip), %rax      # 0x45690
subsd (%rax), %xmm0
movsd %xmm0, -0x158(%rbp)
callq 0x4850
movsd %xmm0, -0x168(%rbp)
callq 0x48e0
movsd -0x168(%rbp), %xmm1
movq -0x160(%rbp), %rdi
movaps %xmm0, %xmm2
movsd -0x158(%rbp), %xmm0
leaq 0xa95f(%rip), %rax      # 0x45690
subsd (%rax), %xmm2
divsd %xmm2, %xmm1
movq -0x10(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x43b4(%rip), %rsi      # 0x3f100
leaq 0x43dc(%rip), %rdx      # 0x3f12f
movb $0x2, %al
callq 0x2210
jmp 0x3ad5c
cmpl $0x0, -0x120(%rbp)
jne 0x3adbd
movq -0x128(%rbp), %rax
andq $0x8, %rax
cmpq $0x0, %rax
jne 0x3adbd
movq -0x150(%rbp), %rdi
movl -0x8(%rbp), %esi
movl -0x38(%rbp), %eax
addl $0x1, %eax
subl %eax, %esi
movq -0x10(%rbp), %rdx
movl -0x38(%rbp), %eax
addl $0x1, %eax
cltq
shlq $0x3, %rax
addq %rax, %rdx
movl -0x138(%rbp), %r9d
leaq -0xec(%rbp), %rcx
leaq -0xe0(%rbp), %r8
callq 0x33180
movl %eax, -0x134(%rbp)
jmp 0x3ae28
movq -0x128(%rbp), %rax
andq $0x8, %rax
cmpq $0x0, %rax
je 0x3adda
movq -0x150(%rbp), %rdi
callq 0xd780
movq -0x150(%rbp), %rdi
movl -0x8(%rbp), %esi
movl -0x38(%rbp), %eax
addl $0x1, %eax
subl %eax, %esi
movq -0x10(%rbp), %rdx
movl -0x38(%rbp), %eax
addl $0x1, %eax
cltq
shlq $0x3, %rax
addq %rax, %rdx
movl -0x138(%rbp), %eax
leaq -0xec(%rbp), %rcx
leaq -0xe0(%rbp), %r8
leaq -0x128(%rbp), %r9
movl %eax, (%rsp)
callq 0x38580
movl %eax, -0x134(%rbp)
cmpl $0x0, -0x120(%rbp)
jne 0x3ae44
movq -0xe0(%rbp), %rax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0x3ae6d
movq -0x128(%rbp), %rax
andq $0x8, %rax
cmpq $0x0, %rax
jne 0x3ae6d
movq -0x150(%rbp), %rdi
movq 0xa175(%rip), %rax      # 0x44fd8
movq (%rax), %rsi
xorl %edx, %edx
callq 0xaad0
movq -0x150(%rbp), %rdi
callq 0x5500
movq 0xa158(%rip), %rax      # 0x44fd8
movq (%rax), %rdi
callq 0x2290
cmpl $-0x1, %eax
jne 0x3aeaf
movq 0xa164(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
leaq 0x12e2(%rip), %rsi      # 0x3c180
movb $0x0, %al
callq 0x2210
movl $0x1, %edi
callq 0x2330
leaq 0xa53a(%rip), %rax      # 0x453f0
cmpl $0x3, (%rax)
jl 0x3afe1
movq 0xa132(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
leaq 0x4264(%rip), %rsi      # 0x3f134
leaq 0x4258(%rip), %rdx      # 0x3f12f
leaq 0x3a4b(%rip), %rcx      # 0x3e929
movb $0x0, %al
callq 0x2210
movq 0xa10c(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
leaq 0x4253(%rip), %rsi      # 0x3f149
leaq 0x4232(%rip), %rdx      # 0x3f12f
movb $0x0, %al
callq 0x2210
movl $0x0, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x3af51
movq 0xa0d8(%rip), %rax      # 0x44ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x12c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x421d(%rip), %rsi      # 0x3f156
movb $0x0, %al
callq 0x2210
movl -0x12c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x12c(%rbp)
jmp 0x3af0e
movq 0xa0a0(%rip), %rax      # 0x44ff8
movq (%rax), %rax
movq %rax, -0x180(%rbp)
callq 0x48e0
leaq 0xa722(%rip), %rax      # 0x45690
subsd (%rax), %xmm0
movsd %xmm0, -0x178(%rbp)
callq 0x4850
movsd %xmm0, -0x170(%rbp)
callq 0x48b0
movq -0x180(%rbp), %rdi
movsd -0x178(%rbp), %xmm0
movsd -0x170(%rbp), %xmm1
cvtsi2sd %rax, %xmm2
movsd 0x3858(%rip), %xmm3     # 0x3e808
divsd %xmm3, %xmm2
movsd 0x384c(%rip), %xmm3     # 0x3e808
divsd %xmm3, %xmm2
movsd 0x3840(%rip), %xmm3     # 0x3e808
divsd %xmm3, %xmm2
leaq 0x4187(%rip), %rsi      # 0x3f15a
leaq 0x4155(%rip), %rdx      # 0x3f12f
movb $0x3, %al
callq 0x2210
cmpl $0x0, -0x134(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
nopw %cs:(%rax,%rax)