// File: /workspace/github_c_makefile_star2_O2/lh3[P]miniprot/main.c
// Function: main
int main(int argc, char *argv[])
{
	int32_t c, i, set_I = 0, set_G = 0, keep_io = 0, n_threads = 4;
	ketopt_t o = KETOPT_INIT;
	mp_mapopt_t mo;
	mp_idxopt_t io;
	mp_idx_t *mi;
	char *fn_idx = 0, *fn_spsc = 0;

	mp_start();
	mp_mapopt_init(&mo);
	mp_idxopt_init(&io);
	while ((c = ketopt(&o, argc, argv, 1, "k:M:L:s:l:b:T:t:d:c:n:m:K:p:N:SAO:E:J:C:F:G:e:uB:P:w:j:g:I", long_options)) >= 0) {
		if (c == 'k') io.kmer = atoi(o.arg);
		else if (c == 'M') io.mod_bit = atoi(o.arg);
		else if (c == 'L') io.min_aa_len = atoi(o.arg);
		else if (c == 'b') io.bbit = atoi(o.arg);
		else if (c == 'T') io.trans_code = atoi(o.arg);
		else if (c == 'd') fn_idx = o.arg;
		else if (c == 't') n_threads = atoi(o.arg);
		else if (c == 'l') mo.kmer2 = atoi(o.arg);
		else if (c == 'c') mo.max_occ = mp_parse_num(o.arg);
		else if (c == 'G') mo.bw = mo.max_intron = mp_parse_num(o.arg), set_G = 1;
		else if (c == 'I') set_I = 1;
		else if (c == 'n') mo.min_chn_cnt = mp_parse_num(o.arg);
		else if (c == 'm') mo.min_chn_sc = mp_parse_num(o.arg);
		else if (c == 'K') mo.mini_batch_size = mp_parse_num(o.arg);
		else if (c == 'p') mo.pri_ratio = atof(o.arg);
		else if (c == 'N') mo.best_n = mp_parse_num(o.arg);
		else if (c == 'S') mo.flag |= MP_F_NO_SPLICE, mo.bw = mo.max_intron = mo.max_ext = 1000, mo.io = mo.io_end = 10000, set_G = 1;
		else if (c == 'A') mo.flag |= MP_F_NO_ALIGN;
		else if (c == 'O') mo.go = atoi(o.arg);
		else if (c == 'E') mo.ge = atoi(o.arg);
		else if (c == 'J') mo.io = atoi(o.arg), keep_io = 1;
		else if (c == 'C') mo.sp_scale = atof(o.arg);
		else if (c == 'F') mp_mapopt_set_fs(&mo, atoi(o.arg));
		else if (c == 'B') mo.end_bonus = atoi(o.arg);
		else if (c == 'e') mo.max_ext = mp_parse_num(o.arg);
		else if (c == 'P') mo.gff_prefix = o.arg;
		else if (c == 'u') mo.flag |= MP_F_SHOW_UNMAP;
		else if (c == 'w') mo.chn_coef_log = atof(o.arg);
		else if (c == 'j') mo.sp_model = atoi(o.arg);
		else if (c == 'g') mo.max_gap = mp_parse_num(o.arg);
		else if (c == 301) mo.flag |= MP_F_GFF; // --gff
		else if (c == 302) mo.xdrop = atoi(o.arg); // --xdrop
		else if (c == 303) mo.out_n = mp_parse_num(o.arg); // --outn
		else if (c == 308) mo.out_sim = atof(o.arg); // --outs
		else if (c == 304) mo.flag |= MP_F_GFF | MP_F_NO_PAF; // --gff-only
		else if (c == 305) mo.gff_delim = o.arg[0]; // --gff-delim
		else if (c == 306) mo.io_end = atoi(o.arg), keep_io = 1; // --J2
		else if (c == 307) mo.flag |= MP_F_GTF; // --gtf
		else if (c == 309) mo.max_chn_max_skip = mp_parse_num(o.arg); // --max-skip
		else if (c == 310) mo.flag |= MP_F_NO_PRE_CHAIN; // --no-pre-chain
		else if (c == 311) mo.flag |= MP_F_SHOW_RESIDUE; // --aln
		else if (c == 312) mo.max_intron_flank = (mp_parse_num(o.arg) + 1) / 2; // --max-intron-out
		else if (c == 313) mo.out_cov = atof(o.arg); // --outc
		else if (c == 314) mo.ie_coef = atof(o.arg); // --ie-coef
		else if (c == 315) mo.flag |= MP_F_SHOW_TRANS; // --trans
		else if (c == 316) mo.flag |= MP_F_NO_CS; // --no-cs
		else if (c == 317) fn_spsc = o.arg; // --spsc
		else if (c == 319) mo.sp_max_bonus = atoi(o.arg); // --spsc-max
		else if (c == 501) mp_dbg_flag |= MP_DBG_NO_KALLOC; // --no-kalloc
		else if (c == 502) mp_dbg_flag |= MP_DBG_QNAME; // --dbg-qname
		else if (c == 503) mp_dbg_flag |= MP_DBG_NO_REFINE; // --dbg-no-refine
		else if (c == 504) mp_dbg_flag |= MP_DBG_MORE_DP; // --dbg-aflt
		else if (c == 505) mp_dbg_flag |= MP_DBG_ANCHOR; // --dbg-anchor
		else if (c == 506) mp_dbg_flag |= MP_DBG_CHAIN; // --dbg-chain
		else if (c == 318) { // --spsc0
			int32_t s;
			s = atoi(o.arg);
			mo.sp_null_bonus = s < 0? s : -s;
		} else if (c == 's') {
			fprintf(stderr, "Option '-s' is deprecated.\n");
		} else if (c == 401) {
			printf("%s\n", MP_VERSION);
			return 0;
		} else {
			fprintf(stderr, "[WARNING]\033[1;31m unrecognized option: %s\033[0m\n", argv[o.i-1]);
		}
	}
	if (mp_mapopt_check(&mo) < 0) return 1;
	if (argc - o.ind == 0 || (argc - o.ind == 1 && fn_idx == 0)) {
		print_usage(stderr, &io, &mo, n_threads);
		return 1;
	}

	if (ns_make_tables(io.trans_code) < 0) {
		if (mp_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m failed to find translation table %d\033[0m\n", io.trans_code);
		return 1;
	}
	mi = mp_idx_load(argv[o.ind], &io, n_threads);
	if (mi == 0) {
		if (mp_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m failed to open/build the index\033[0m\n");
		return 1;
	}
	if (set_I && !set_G) mp_mapopt_set_max_intron(&mo, mi->nt->l_seq);
	if (mp_verbose >= 3) mp_idx_print_stat(mi, mo.max_occ);
	if (fn_idx != 0) mp_idx_dump(fn_idx, mi);
	if (fn_spsc != 0) mp_set_spsc(fn_spsc, mi, &mo, keep_io);
	for (i = o.ind + 1; i < argc; ++i) {
		int32_t res = mp_map_file(mi, argv[i], &mo, n_threads);
		if (res != 0) {
			fprintf(stderr, "[M::%s] ERROR during mapping %s (check files exists and are amino acid fastas)\n", __func__, argv[i]);
			return 1;
		}
	}
	mp_idx_destroy(mi);

	if (mp_verbose >= 3) {
		fprintf(stderr, "[M::%s] Version: %s\n", __func__, MP_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__, mp_realtime(), mp_cputime(), mp_peakrss() / 1024.0 / 1024.0 / 1024.0);
	}
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x328, %rsp            # imm = 0x328
movq %rsi, %rbx
movl %edi, %r15d
callq 0x3cc9
leaq 0x98(%rsp), %rdi
callq 0x3ddb
leaq 0x44(%rsp), %rdi
callq 0x3d08
movslq %r15d, %r12
leal -0x1(%r12), %eax
movl %eax, 0x38(%rsp)
pushq $0x4
popq %rax
movl %eax, 0x14(%rsp)
pushq $0x1
popq %rax
movq $0x0, 0x20(%rsp)
xorl %ebp, %ebp
movl %eax, %r13d
movl $0x0, 0x1c(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x0, 0x3c(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
movq %rbx, 0x8(%rsp)
movq %r13, 0x28(%rsp)
movslq %r13d, %rax
movq %rax, %r13
shlq $0x20, %r13
leaq (%rbx,%rax,8), %rdx
xorl %r14d, %r14d
movq %rax, %rcx
movabsq $0x100000000, %rdi      # imm = 0x100000000
leaq (%rax,%r14), %rsi
cmpq %r12, %rsi
jge 0x2d28
movq (%rdx,%r14,8), %rsi
cmpb $0x2d, (%rsi)
jne 0x2534
cmpb $0x0, 0x1(%rsi)
jne 0x253f
incq %rcx
incq %r14
addq %rdi, %r13
jmp 0x2518
sarq $0x1d, %r13
movq 0x8(%rsp), %rax
movq (%rax,%r13), %rbx
cmpb $0x2d, (%rbx)
jne 0x338b
movq %r12, 0x58(%rsp)
movl 0x28(%rsp), %r12d
addq %r14, %r12
movl 0x20(%rsp), %eax
addq %r14, %rax
movq %rax, 0x30(%rsp)
movzbl 0x1(%rbx), %eax
cmpl $0x2d, %eax
movq %r15, 0x60(%rsp)
je 0x25dd
testl %eax, %eax
je 0x3410
cmpl $0x1, %ebp
adcl $0x0, %ebp
movslq %ebp, %rax
movsbl (%rbx,%rax), %r15d
incq %rax
movq %rax, 0x68(%rsp)
leaq 0xebcf(%rip), %rdi      # 0x11170
movl %r15d, %esi
pushq $0x3b
popq %rdx
callq 0x2180
pushq $0x3f
popq %rcx
testq %rax, %rax
je 0x2743
cmpb $0x3a, 0x1(%rax)
jne 0x2740
movq 0x68(%rsp), %rax
cmpb $0x0, (%rbx,%rax)
je 0x2798
addq %rax, %rbx
movq %rbx, (%rsp)
jmp 0x2753
movb 0x2(%rbx), %r13b
testb %r13b, %r13b
je 0x341a
movq %rbx, %rcx
leaq 0x2(%rbx), %rax
movq %rax, 0x68(%rsp)
addq $0x3, %rcx
xorl %ebx, %ebx
testb %r13b, %r13b
je 0x261f
movzbl %r13b, %eax
cmpl $0x3d, %eax
je 0x261f
movb (%rcx), %r13b
incq %rcx
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rbx
jmp 0x25fc
movq %rcx, (%rsp)
sarq $0x20, %rbx
movq $0x0, 0x78(%rsp)
leaq 0x154b9(%rip), %r15     # 0x17af0
movl $0x0, 0x40(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x90(%rsp)
movq (%r15), %rbp
testq %rbp, %rbp
je 0x26a2
movq 0x68(%rsp), %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x2070
testl %eax, %eax
jne 0x269c
cmpb $0x0, (%rbp,%rbx)
je 0x2688
incl 0x40(%rsp)
movq %r15, 0x90(%rsp)
jmp 0x269c
movq 0x78(%rsp), %rax
incl %eax
movq %rax, 0x78(%rsp)
movq %r15, 0x88(%rsp)
addq $0x10, %r15
jmp 0x2657
movq 0x78(%rsp), %rdx
cmpl $0x1, %edx
movl 0x40(%rsp), %esi
jg 0x2875
testl %edx, %edx
sete %al
cmpl $0x2, %esi
setge %cl
testb %cl, %al
jne 0x2875
cmpl $0x1, %esi
movl $0x0, %eax
movq 0x90(%rsp), %rcx
cmovneq %rax, %rcx
cmpl $0x1, %edx
cmoveq 0x88(%rsp), %rcx
testq %rcx, %rcx
je 0x2732
movl 0xc(%rcx), %r15d
cmpb $0x3d, %r13b
movq 0x8(%rsp), %rbp
je 0x27b4
testb %r13b, %r13b
jne 0x2781
cmpl $0x1, 0x8(%rcx)
jne 0x2781
cmpl %r12d, 0x38(%rsp)
jle 0x27a8
movq 0x28(%rsp), %rax
leal (%rax,%r14), %r13d
incl %r13d
movslq %r13d, %rax
movq (%rbp,%rax,8), %rax
movq %rax, (%rsp)
jmp 0x27b7
movq $0x0, (%rsp)
pushq $0x3f
popq %r15
jmp 0x2753
movl %r15d, %ecx
cmpl $-0x2, %ebp
jg 0x275d
movq $0x0, (%rsp)
movl %ecx, %r15d
movl %r12d, %r13d
movq 0x8(%rsp), %rbp
jmp 0x27b7
movq 0x8(%rsp), %rbp
movq (%rbp,%r13), %rax
movq 0x68(%rsp), %rbx
movl %ebx, %edx
cmpb $0x0, (%rax,%rdx)
je 0x278b
movl %r12d, %r13d
movq $0x0, (%rsp)
jmp 0x27e4
movq $0x0, (%rsp)
jmp 0x27b4
movq $0x0, (%rsp)
movl %ecx, %r15d
jmp 0x27b4
cmpl %r12d, 0x38(%rsp)
movq 0x8(%rsp), %rbp
jg 0x2715
movq $0x0, (%rsp)
pushq $0x3a
popq %r15
movl %r12d, %r13d
leal 0x1(%r13), %ebx
cmpl $0x0, 0x30(%rsp)
jle 0x27dc
cmpl %r13d, %r12d
jg 0x27dc
movq %rbp, %rdi
movl %r12d, %esi
movq 0x30(%rsp), %rdx
callq 0x34d3
incl %r12d
jmp 0x27c2
movl %r15d, %ecx
movq %rbx, %r13
xorl %ebx, %ebx
testl %ecx, %ecx
movl 0x14(%rsp), %ebp
movq 0x60(%rsp), %r15
movq 0x58(%rsp), %r12
js 0x2d32
leal -0x41(%rcx), %eax
cmpl $0x36, %eax
ja 0x281f
leaq 0xe827(%rip), %rcx      # 0x11030
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
orb $0x2, 0x98(%rsp)
jmp 0x2cdf
leal -0x12d(%rcx), %eax
cmpl $0x12, %eax
ja 0x2847
leaq 0xe8db(%rip), %rcx      # 0x1110c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
orb $0x8, 0x98(%rsp)
jmp 0x2cdf
leal -0x1f5(%rcx), %eax
cmpl $0x5, %eax
ja 0x2cf9
leaq 0xe8fb(%rip), %rcx      # 0x11158
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x15f23(%rip), %rax     # 0x18790
orb $0x1, (%rax)
jmp 0x2cdf
movq 0x28(%rsp), %r13
addl %r14d, %r13d
incl %r13d
pushq $-0x1
popq %rax
movl %eax, %ebx
movl 0x14(%rsp), %ebp
movq 0x60(%rsp), %r15
movq 0x58(%rsp), %r12
movq 0x15756(%rip), %rax     # 0x17ff0
movq (%rax), %rdi
movslq %r13d, %rax
movq 0x8(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rdx
leaq 0xe920(%rip), %rsi      # 0x111d1
xorl %eax, %eax
callq 0x21e0
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0xf8(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xd4(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x54(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xa8(%rsp)
jmp 0x2cdf
movq (%rsp), %rax
movq %rax, 0x138(%rsp)
jmp 0x2cdf
orb $0x1, 0x98(%rsp)
movl $0x3e8, 0xb0(%rsp) # imm = 0x3E8
movabsq $0x3e8000003e8, %rax    # imm = 0x3E8000003E8
movq %rax, 0xbc(%rsp)
movl $0x2710, %eax           # imm = 0x2710
movl %eax, 0x10c(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x299b
pushq $0x1
popq %rax
movl %eax, 0x3c(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x48(%rsp)
jmp 0x2cdf
orb $0x4, 0x98(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xb0(%rsp)
movl %eax, 0xbc(%rsp)
pushq $0x1
popq %rax
movl %eax, 0x1c(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x128(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x104(%rsp)
jmp 0x2c88
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x50(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x44(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x120(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x100(%rsp)
jmp 0x2cdf
movq (%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xe4(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xf0(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
leaq 0x98(%rsp), %rdi
movl %eax, %esi
callq 0x3d1a
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x4c(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0xfc(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movq %rax, 0xa0(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xac(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xc0(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd8(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x114(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xc8(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, %ebp
jmp 0x2cdf
movq (%rsp), %rax
movq %rax, 0x80(%rsp)
jmp 0x2cdf
orb $0x1, 0x99(%rsp)
jmp 0x2cdf
leaq 0x15c2f(%rip), %rax     # 0x18790
orb $0x10, (%rax)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
incq %rax
cqto
pushq $0x2
popq %rcx
idivq %rcx
movl %eax, 0x134(%rsp)
jmp 0x2cdf
leaq 0x15c00(%rip), %rax     # 0x18790
orb $0x4, (%rax)
jmp 0x2cdf
movq (%rsp), %rax
movsbl (%rax), %eax
movl %eax, 0x130(%rsp)
jmp 0x2cdf
leaq 0x15bde(%rip), %rax     # 0x18790
orb $0x8, (%rax)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xec(%rsp)
jmp 0x2cdf
leaq 0x15bb4(%rip), %rax     # 0x18790
orb $0x2, (%rax)
jmp 0x2cdf
orb $0x40, 0x98(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xf4(%rsp)
jmp 0x2cdf
leaq 0x15b83(%rip), %rax     # 0x18790
orb $0x20, (%rax)
jmp 0x2cdf
orb $0x2, 0x99(%rsp)
jmp 0x2cdf
orb $0x18, 0x98(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xe8(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x124(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, %ecx
negl %ecx
cmovnsl %eax, %ecx
movl %ecx, 0x118(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x10c(%rsp)
pushq $0x1
popq %rax
movl %eax, 0x18(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x20c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x110(%rsp)
jmp 0x2cdf
orb $0x20, 0x98(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x22e0
movl %eax, 0x11c(%rsp)
jmp 0x2cdf
orb $-0x80, 0x98(%rsp)
jmp 0x2cdf
movq (%rsp), %rdi
callq 0x3454
movl %eax, 0xcc(%rsp)
movl %ebp, 0x14(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x20(%rsp)
movl %ebx, %ebp
movq 0x8(%rsp), %rbx
jmp 0x24f5
cmpl $0x191, %ecx            # imm = 0x191
jne 0x2893
jmp 0x3446
movq 0x152df(%rip), %rax     # 0x17ff0
movq (%rax), %rcx
leaq 0xe490(%rip), %rdi      # 0x111ab
pushq $0x1b
popq %rsi
pushq $0x1
popq %rdx
callq 0x2300
jmp 0x2cdf
cmpq %r12, %rax
cmovleq %r12, %rax
movl %eax, %r13d
leaq 0x98(%rsp), %rdi
callq 0x3edc
pushq $0x1
popq %rbp
testl %eax, %eax
js 0x3377
movl %r13d, %ebx
movq 0x20(%rsp), %rax
addl %r15d, %eax
movl %eax, %ecx
negl %ecx
addq %rbx, %rcx
cmpl %r14d, %ecx
je 0x2f90
movl %r13d, %ecx
subl %eax, %ecx
incl %ecx
cmpl %r14d, %ecx
jne 0x2d7d
cmpq $0x0, 0x70(%rsp)
je 0x2f90
movl 0x54(%rsp), %edi
callq 0x350c
testl %eax, %eax
js 0x2ead
movq %r13, %rbp
movq 0x20(%rsp), %rax
negl %eax
addq %rax, %rbx
subq %r14, %rbx
movslq %ebx, %rax
movq 0x8(%rsp), %rcx
movq (%rcx,%rax,8), %rdi
leaq 0x44(%rsp), %rsi
movl 0x14(%rsp), %r13d
movl %r13d, %edx
callq 0x47f9
testq %rax, %rax
je 0x2f78
movq %rax, %rbx
cmpl $0x0, 0x3c(%rsp)
sete %al
cmpl $0x0, 0x1c(%rsp)
setne %cl
orb %al, %cl
jne 0x2df1
movq 0x18(%rbx), %rax
movq 0x10(%rax), %rsi
leaq 0x98(%rsp), %rdi
callq 0x3d5e
leaq 0x155f8(%rip), %rax     # 0x183f0
cmpl $0x3, (%rax)
jl 0x2e0c
movl 0xa8(%rsp), %esi
movq %rbx, %rdi
callq 0x44a0
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x2e1e
movq %rbx, %rsi
callq 0x4578
movq %r15, 0x60(%rsp)
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x2e44
leaq 0x98(%rsp), %rdx
movq %rbx, %rsi
movl 0x18(%rsp), %ecx
callq 0x48db
subl 0x20(%rsp), %ebp
subl %r14d, %ebp
movslq %ebp, %r14
incq %r14
leaq 0x98(%rsp), %r15
pushq $0x1
popq %rbp
cmpq %r12, %r14
jge 0x2ede
movq 0x8(%rsp), %rax
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movl %r13d, %ecx
callq 0x5763
incq %r14
testl %eax, %eax
je 0x2e5c
movq 0x1516a(%rip), %rax     # 0x17ff0
movq (%rax), %rdi
movq 0x8(%rsp), %rax
movq -0x8(%rax,%r14,8), %rcx
leaq 0xe3d0(%rip), %rsi      # 0x1126a
leaq 0xe419(%rip), %rdx      # 0x112ba
xorl %eax, %eax
callq 0x21e0
jmp 0x3377
leaq 0x1553c(%rip), %rax     # 0x183f0
cmpl $0x0, (%rax)
jle 0x3377
movq 0x1512c(%rip), %rax     # 0x17ff0
movq (%rax), %rdi
movl 0x54(%rsp), %edx
leaq 0xe32d(%rip), %rsi      # 0x111ff
xorl %eax, %eax
callq 0x21e0
jmp 0x3377
movq %rbx, %rdi
callq 0x4541
xorl %ebp, %ebp
leaq 0x15501(%rip), %rax     # 0x183f0
cmpl $0x3, (%rax)
jl 0x3377
movq 0x150f1(%rip), %rbp     # 0x17ff0
movq (%rbp), %rdi
leaq 0xe3b5(%rip), %rsi      # 0x112bf
leaq 0xe3a9(%rip), %rbx      # 0x112ba
leaq 0xe2af(%rip), %rcx      # 0x111c7
xorl %r14d, %r14d
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21e0
movq (%rbp), %rdi
leaq 0xe3a4(%rip), %rsi      # 0x112d4
movq %rbx, %rdx
xorl %eax, %eax
callq 0x21e0
movq 0x60(%rsp), %r13
testl %r13d, %r13d
cmovlel %r14d, %r13d
leaq 0xe394(%rip), %r15      # 0x112e1
xorl %r14d, %r14d
movq 0x8(%rsp), %r12
movq (%rbp), %rbx
cmpq %r14, %r13
je 0x3393
movq (%r12,%r14,8), %rdx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x21e0
incq %r14
jmp 0x2f55
leaq 0x15471(%rip), %rax     # 0x183f0
cmpl $0x0, (%rax)
jg 0x33ef
pushq $0x1
popq %rbp
jmp 0x3377
movq 0x15059(%rip), %rax     # 0x17ff0
movq (%rax), %r14
leaq 0xe44b(%rip), %rdi      # 0x113ec
pushq $0x35
popq %r13
pushq $0x1
popq %r15
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe464(%rip), %rdi      # 0x11422
pushq $0x9
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe459(%rip), %rdi      # 0x1142c
pushq $0xc
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl 0x4c(%rsp), %edx
leaq 0xe44d(%rip), %rsi      # 0x11439
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x50(%rsp), %edx
leaq 0xe45a(%rip), %rsi      # 0x1145b
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x48(%rsp), %edx
leaq 0xe482(%rip), %rsi      # 0x11498
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x54(%rsp), %edx
leaq 0xe49c(%rip), %rsi      # 0x114c7
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x44(%rsp), %edx
leaq 0xe4c4(%rip), %rsi      # 0x11504
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe4d9(%rip), %rdi      # 0x1152a
pushq $0x27
popq %r12
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe4e8(%rip), %rdi      # 0x11552
pushq $0xb
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe4df(%rip), %rdi      # 0x1155e
pushq $0x37
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl 0xa8(%rsp), %edx
leaq 0xe4fb(%rip), %rsi      # 0x11596
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe516(%rip), %rdi      # 0x115c2
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe537(%rip), %rdi      # 0x115f8
pushq $0x39
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
cvtss2sd 0xd8(%rsp), %xmm0
leaq 0xe553(%rip), %rsi      # 0x11632
movq %r14, %rdi
movb $0x1, %al
callq 0x21e0
movl 0xc8(%rsp), %edx
leaq 0xe56c(%rip), %rsi      # 0x11663
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0xd4(%rsp), %edx
leaq 0xe591(%rip), %rsi      # 0x116a0
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0xf8(%rsp), %edx
leaq 0xe5a3(%rip), %rsi      # 0x116ca
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0xc0(%rsp), %edx
leaq 0xe5ce(%rip), %rsi      # 0x1170d
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
cvtss2sd 0xe4(%rsp), %xmm0
leaq 0xe601(%rip), %rsi      # 0x1175a
movq %r14, %rdi
movb $0x1, %al
callq 0x21e0
movl 0xf0(%rsp), %edx
leaq 0xe625(%rip), %rsi      # 0x11796
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe655(%rip), %rdi      # 0x117d7
pushq $0xd
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl 0xfc(%rsp), %edx
leaq 0xe647(%rip), %rsi      # 0x117e5
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x100(%rsp), %edx
leaq 0xe657(%rip), %rsi      # 0x1180d
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x104(%rsp), %edx
leaq 0xe67f(%rip), %rsi      # 0x1184d
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x108(%rsp), %edx
leaq 0xe692(%rip), %rsi      # 0x11878
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
cvtss2sd 0x120(%rsp), %xmm0
leaq 0xe6bf(%rip), %rsi      # 0x118bf
movq %r14, %rdi
movb $0x1, %al
callq 0x21e0
movl 0x128(%rsp), %edx
leaq 0xe6f3(%rip), %rsi      # 0x1190b
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
movl 0x114(%rsp), %edx
leaq 0xe720(%rip), %rsi      # 0x11950
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe768(%rip), %rdi      # 0x119a9
pushq $0x4b
popq %rbx
movq %rbx, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl 0x118(%rsp), %edx
leaq 0xe795(%rip), %rsi      # 0x119f5
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe7c0(%rip), %rdi      # 0x11a31
pushq $0x10
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe7bc(%rip), %rsi      # 0x11a42
movq %r14, %rdi
movl 0x14(%rsp), %edx
xorl %eax, %eax
callq 0x21e0
leaq 0xe7d0(%rip), %rdi      # 0x11a6b
pushq $0x2b
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe7e7(%rip), %rdi      # 0x11a97
pushq $0x3d
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe810(%rip), %rdi      # 0x11ad5
pushq $0x2a
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
leaq 0xe826(%rip), %rdi      # 0x11b00
movq %rbx, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movq 0x138(%rsp), %rdx
leaq 0xe855(%rip), %rsi      # 0x11b4c
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
leaq 0xe872(%rip), %rdi      # 0x11b7a
pushq $0x36
popq %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl 0xf4(%rsp), %edx
leaq 0xe88d(%rip), %rsi      # 0x11bb1
movq %r14, %rdi
xorl %eax, %eax
callq 0x21e0
cvtss2sd 0xe8(%rsp), %xmm0
leaq 0xe8b8(%rip), %rsi      # 0x11bf6
movq %r14, %rdi
movb $0x1, %al
callq 0x21e0
cvtss2sd 0xec(%rsp), %xmm0
leaq 0xe8de(%rip), %rsi      # 0x11c36
movq %r14, %rdi
movb $0x1, %al
callq 0x21e0
leaq 0xe91a(%rip), %rdi      # 0x11c83
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2300
movl %ebp, %eax
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %ecx, %r13d
jmp 0x2d32
callq 0x3801
movsd %xmm0, 0x8(%rsp)
callq 0x3798
movsd %xmm0, 0x30(%rsp)
callq 0x37db
cvtsi2sd %rax, %xmm2
movsd 0xdc4d(%rip), %xmm0     # 0x11008
mulsd %xmm0, %xmm2
mulsd %xmm0, %xmm2
mulsd %xmm0, %xmm2
leaq 0xdf17(%rip), %rsi      # 0x112e5
leaq 0xdee5(%rip), %rdx      # 0x112ba
movq %rbx, %rdi
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movb $0x3, %al
callq 0x21e0
xorl %ebp, %ebp
jmp 0x3377
movq 0x14bfa(%rip), %rax     # 0x17ff0
movq (%rax), %rcx
leaq 0xde37(%rip), %rdi      # 0x11237
pushq $0x32
popq %rsi
pushq $0x1
popq %rdx
callq 0x2300
jmp 0x2f88
movq 0x28(%rsp), %r13
addl %r14d, %r13d
jmp 0x343c
movq 0x20(%rsp), %rax
leal (%rax,%r14), %edx
movq 0x28(%rsp), %r13
leal (%r14,%r13), %esi
movq 0x8(%rsp), %rdi
callq 0x34d3
addl %r14d, %r13d
incl %r13d
movq 0x58(%rsp), %r12
jmp 0x2d32
leaq 0xdd7a(%rip), %rdi      # 0x111c7
callq 0x2090
jmp 0x33eb