// File: /workspace/github_c_makefile_star2_O3/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 $0x358, %rsp            # imm = 0x358
movq %rsi, %r13
movl %edi, %r14d
callq 0x4cca
leaq 0xc8(%rsp), %rdi
callq 0x4ddd
leaq 0xac(%rsp), %rdi
callq 0x4d08
cmpl $0x2, %r14d
jl 0x416d
movabsq $0x100000000, %r9       # imm = 0x100000000
leal -0x1(%r14), %eax
movl %eax, 0x6c(%rsp)
movl %r14d, %edx
negl %edx
movl $0x1, %ebx
movl $0x4, 0x4c(%rsp)
movq $0x0, 0xa0(%rsp)
xorl %ebp, %ebp
movl $0x0, 0x54(%rsp)
movl $0x0, 0x50(%rsp)
movq $0x0, 0x78(%rsp)
xorl %r15d, %r15d
xorl %r12d, %r12d
movq %r13, 0x38(%rsp)
movq %rdx, 0x10(%rsp)
movq %rbp, 0x58(%rsp)
movl %r15d, %r11d
movq %rbx, 0x60(%rsp)
movslq %ebx, %rbp
leal (%r11,%r14), %ecx
subl %ebp, %ecx
movl %ebp, %eax
leaq (%rdx,%rax), %rsi
movq %rbp, %rbx
shlq $0x20, %rbx
leaq (,%rbp,8), %rdi
addq %r13, %rdi
movq %rdi, %r15
xorl %r10d, %r10d
movl %r11d, %r13d
movq %rbp, %rdx
movq (%rdi,%r10,8), %r8
cmpb $0x2d, (%r8)
jne 0x2ee2
cmpb $0x0, 0x1(%r8)
jne 0x2eff
incq %rdx
incl %r13d
incq %r10
addq %r9, %rbx
addq $0x8, %r15
movl %esi, %r8d
addl %r10d, %r8d
jne 0x2ed1
jmp 0x41a5
sarq $0x1d, %rbx
movq 0x38(%rsp), %rcx
movq (%rcx,%rbx), %rsi
cmpb $0x2d, (%rsi)
jne 0x4372
leaq (%rax,%r10), %rcx
movq %rcx, 0x90(%rsp)
movl %r11d, %ecx
leaq (%rcx,%r10), %rdx
movq %rdx, 0x28(%rsp)
movzbl 0x1(%rsi), %edx
cmpl $0x2d, %edx
movq %r10, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r14, 0x8(%rsp)
je 0x2fd9
testl %edx, %edx
je 0x4386
cmpl $0x1, %r12d
adcl $0x0, %r12d
movslq %r12d, %rax
movq %rsi, 0x88(%rsp)
movsbl (%rsi,%rax), %r14d
incq %rax
movq %rax, 0x80(%rsp)
movl $0x3b, %edx
leaq 0x101f0(%rip), %rdi     # 0x13170
movl %r14d, %esi
callq 0x2180
testq %rax, %rax
je 0x313c
cmpb $0x3a, 0x1(%rax)
movq 0x90(%rsp), %rdx
jne 0x3160
movq 0x80(%rsp), %rax
movq 0x88(%rsp), %rdi
cmpb $0x0, (%rdi,%rax)
movq 0x18(%rsp), %r10
movabsq $0x100000000, %r9       # imm = 0x100000000
movq 0x20(%rsp), %r11
je 0x31bf
addq %rax, %rdi
jmp 0x3243
movb 0x2(%rsi), %dl
testb %dl, %dl
je 0x43a3
leaq 0x2(%rsi), %rax
movq %rax, 0x80(%rsp)
addq $0x3, %rsi
xorl %r12d, %r12d
testb %dl, %dl
je 0x300d
movzbl %dl, %eax
cmpl $0x3d, %eax
je 0x300d
movb (%rsi), %dl
incq %rsi
addq %r9, %r12
jmp 0x2ff7
movb %dl, 0x37(%rsp)
movq %rsi, 0x88(%rsp)
sarq $0x20, %r12
movq $0x0, 0xc0(%rsp)
leaq 0x15ac0(%rip), %rbx     # 0x18af0
leaq 0x102ee(%rip), %r14     # 0x13325
movq $0x0, 0x98(%rsp)
movl $0x0, 0x74(%rsp)
movl $0x0, 0x70(%rsp)
movq 0x80(%rsp), %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x2070
testl %eax, %eax
jne 0x308b
cmpb $0x0, (%r14,%r12)
je 0x307f
incl 0x74(%rsp)
movq %rbx, 0xc0(%rsp)
jmp 0x308b
incl 0x70(%rsp)
movq %rbx, 0x98(%rsp)
movq 0x18(%rsp), %r10
movabsq $0x100000000, %r9       # imm = 0x100000000
movq 0x10(%rbx), %r14
addq $0x10, %rbx
testq %r14, %r14
jne 0x3053
movl 0x70(%rsp), %esi
cmpl $0x1, %esi
movq 0x90(%rsp), %rdx
movl 0x74(%rsp), %edi
jg 0x31de
testl %esi, %esi
sete %al
cmpl $0x2, %edi
setge %cl
testb %cl, %al
jne 0x31de
cmpl $0x1, %edi
movq 0x60(%rsp), %rax
jne 0x30fc
cmpl $0x1, %esi
movq 0x98(%rsp), %rsi
cmovneq 0xc0(%rsp), %rsi
movq 0x20(%rsp), %r11
movb 0x37(%rsp), %cl
jmp 0x3112
cmpl $0x1, %esi
movq 0x20(%rsp), %r11
movb 0x37(%rsp), %cl
movq 0x98(%rsp), %rsi
jne 0x3131
testq %rsi, %rsi
je 0x3131
movl 0xc(%rsi), %r14d
cmpb $0x3d, %cl
jne 0x31a5
movq 0x88(%rsp), %rdi
jmp 0x3243
movl $0x3f, %r14d
jmp 0x3241
movl $0x3f, %r14d
movq 0x18(%rsp), %r10
movabsq $0x100000000, %r9       # imm = 0x100000000
movq 0x20(%rsp), %r11
movq 0x90(%rsp), %rdx
jmp 0x3174
movq 0x18(%rsp), %r10
movabsq $0x100000000, %r9       # imm = 0x100000000
movq 0x20(%rsp), %r11
cmpl $-0x2, %r12d
jle 0x3241
movq 0x38(%rsp), %rax
movq (%rax,%rbx), %rax
movq 0x80(%rsp), %r12
movl %r12d, %ecx
cmpb $0x0, (%rax,%rcx)
je 0x3241
movl %edx, %ebx
xorl %edi, %edi
jmp 0x32a3
testb %cl, %cl
jne 0x3241
cmpl $0x1, 0x8(%rsi)
jne 0x3241
cmpl %edx, 0x6c(%rsp)
jg 0x31ca
jmp 0x323b
cmpl %edx, 0x6c(%rsp)
jle 0x323b
movq 0x60(%rsp), %rax
leal (%rax,%r10), %edx
incl %edx
movslq %edx, %rax
movq 0x38(%rsp), %rcx
movq (%rcx,%rax,8), %rdi
jmp 0x3243
movq 0x60(%rsp), %rbx
addl %r10d, %ebx
incl %ebx
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movq 0x38(%rsp), %r13
movq 0x8(%rsp), %r14
movq 0x58(%rsp), %rbp
movq 0x28(%rsp), %r15
movq 0x15de7(%rip), %rax     # 0x18ff0
movq (%rax), %rdi
movslq %ebx, %rax
movq -0x8(%r13,%rax,8), %rdx
leaq 0xffb6(%rip), %rsi      # 0x131d1
xorl %eax, %eax
callq 0x21d0
movq 0x18(%rsp), %r10
movabsq $0x100000000, %r9       # imm = 0x100000000
movq 0x20(%rsp), %r11
jmp 0x3cbd
movl $0x3a, %r14d
xorl %edi, %edi
leal 0x1(%rdx), %ebx
xorl %r12d, %r12d
movq 0x28(%rsp), %rax
testl %eax, %eax
jle 0x32a3
movq %rdi, %r12
addq %r10, %rbp
movl %eax, %eax
movslq %edx, %rcx
movl %r13d, %edx
negq %rdx
movq 0x38(%rsp), %r13
movq (%r13,%rbp,8), %rsi
xorl %edi, %edi
movq -0x8(%r15,%rdi,8), %r8
movq %r8, (%r15,%rdi,8)
decq %rdi
cmpq %rdi, %rdx
jne 0x326f
movq %rbp, %rdi
subq %rax, %rdi
movq %rsi, (%r13,%rdi,8)
leaq 0x1(%rbp), %rsi
addq $0x8, %r15
cmpq %rcx, %rbp
movq %rsi, %rbp
jl 0x3268
movq %r12, %rdi
xorl %r12d, %r12d
jmp 0x32a8
movq 0x38(%rsp), %r13
testl %r14d, %r14d
movq 0x58(%rsp), %rbp
movq 0x28(%rsp), %r15
js 0x4376
cmpl $0x12c, %r14d           # imm = 0x12C
jg 0x32ef
addl $-0x41, %r14d
cmpl $0x36, %r14d
ja 0x4154
leaq 0xfd57(%rip), %rcx      # 0x13030
movslq (%rcx,%r14,4), %rax
addq %rcx, %rax
jmpq *%rax
orb $0x2, 0xc8(%rsp)
jmp 0x3cb8
leal -0x12d(%r14), %eax
cmpl $0x12, %eax
ja 0x3318
leaq 0xfe0a(%rip), %rcx      # 0x1310c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
orb $0x8, 0xc8(%rsp)
jmp 0x3cb8
leal -0x1f5(%r14), %eax
cmpl $0x5, %eax
ja 0x4147
leaq 0xfe29(%rip), %rcx      # 0x13158
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq 0x8(%rsp), %r14
jmpq *%rax
leaq 0x1643c(%rip), %rax     # 0x19780
orb $0x1, (%rax)
jmp 0x3cbd
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0xac(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x128(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x108(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x4022
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3d88
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3d74
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3da4
mulsd 0xfbd9(%rip), %xmm0     # 0x13010
jmp 0x3da4
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x114(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x403e
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3dc8
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3d7e
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3de4
mulsd 0xfb2b(%rip), %xmm0     # 0x13010
jmp 0x3de4
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x405a
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3e0e
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3dbe
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3e2a
mulsd 0xfaa4(%rip), %xmm0     # 0x13010
jmp 0x3e2a
orb $0x1, 0xc8(%rsp)
movl $0x3e8, 0xe0(%rsp) # imm = 0x3E8
movabsq $0x3e8000003e8, %rax    # imm = 0x3E8000003E8
movq %rax, 0xec(%rsp)
movl $0x2710, %eax           # imm = 0x2710
movl %eax, 0x13c(%rsp)
movl %eax, 0x134(%rsp)
movl $0x1, %eax
movq %rax, 0x78(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x130(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0xb8(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0xb0(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x158(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x150(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x12c(%rsp)
jmp 0x3cb8
movq %rdi, 0x168(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
leaq 0xc8(%rsp), %rdi
movl %eax, %esi
callq 0x4d1a
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
jmp 0x3cb8
orb $0x4, 0xc8(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x4076
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3e57
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3e43
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3e73
mulsd 0xf8c7(%rip), %xmm0     # 0x13010
jmp 0x3e73
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x134(%rsp)
jmp 0x3c4e
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x4092
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3e8c
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3e4d
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3ea8
mulsd 0xf81f(%rip), %xmm0     # 0x13010
jmp 0x3ea8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0xbc(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x144(%rsp)
jmp 0x3cb8
movl $0x1, 0x54(%rsp)
jmp 0x3cb8
movq %rdi, %rbp
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x40ae
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3ee2
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3ec1
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3efe
mulsd 0xf741(%rip), %xmm0     # 0x13010
jmp 0x3efe
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x40ca
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3f17
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3ecb
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3f33
mulsd 0xf6ba(%rip), %xmm0     # 0x13010
jmp 0x3f33
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x4c(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0xb4(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %r14
movq %r14, %rsi
callq 0x20b0
movq (%r14), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
ja 0x40e6
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq %r15, %r9
movq 0x10(%rsp), %rdx
jb 0x3f4c
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
jb 0x3ed5
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3f68
mulsd 0xf5f4(%rip), %xmm0     # 0x13010
jmp 0x3f68
movq %rdi, 0xa0(%rsp)
jmp 0x3cb8
orb $0x1, 0xc9(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %rsi
callq 0x20b0
movq 0x40(%rsp), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
movq 0x8(%rsp), %r14
ja 0x4102
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jb 0x3f8b
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x28(%rsp), %r15
jb 0x3f81
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3f98
mulsd 0xf554(%rip), %xmm0     # 0x13010
jmp 0x3f98
movsbl (%rdi), %eax
movl %eax, 0x160(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x11c(%rsp)
jmp 0x3cb8
orb $0x40, 0xc8(%rsp)
jmp 0x3cb8
movq %r9, %r15
leaq 0x40(%rsp), %rsi
callq 0x20b0
movq 0x40(%rsp), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
movq 0x8(%rsp), %r14
ja 0x4119
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jb 0x3fcc
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x28(%rsp), %r15
jb 0x3fc2
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x3fd9
mulsd 0xf48b(%rip), %xmm0     # 0x13010
jmp 0x3fd9
orb $0x2, 0xc9(%rsp)
jmp 0x3cb8
leaq 0x15be2(%rip), %rax     # 0x19780
orb $0x10, (%rax)
jmp 0x3cbd
orb $0x18, 0xc8(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x118(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x154(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, %ecx
negl %ecx
cmovnsl %eax, %ecx
movl %ecx, 0x148(%rsp)
jmp 0x3cb8
leaq 0x15b56(%rip), %rax     # 0x19780
orb $0x4, (%rax)
jmp 0x3cbd
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x13c(%rsp)
movl $0x1, 0x50(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x20c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x140(%rsp)
jmp 0x3cb8
leaq 0x15afd(%rip), %rax     # 0x19780
orb $0x8, (%rax)
jmp 0x3cbd
orb $0x20, 0xc8(%rsp)
jmp 0x3cb8
movq %r9, %r14
callq 0x22c0
movq 0x20(%rsp), %r11
movq %r14, %r9
movq 0x18(%rsp), %r10
movl %eax, 0x14c(%rsp)
jmp 0x3cb8
orb $-0x80, 0xc8(%rsp)
movq 0x8(%rsp), %r14
movq 0x10(%rsp), %rdx
cmpl %r14d, %ebx
jl 0x2e97
jmp 0x4398
movq %r9, %r15
leaq 0x40(%rsp), %rsi
callq 0x20b0
movq 0x40(%rsp), %rax
movzbl (%rax), %eax
addl $-0x47, %eax
cmpl $0x26, %eax
movq 0x8(%rsp), %r14
ja 0x4130
movabsq $0x100000001, %rcx      # imm = 0x100000001
btq %rax, %rcx
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jb 0x3ffc
movabsq $0x1000000010, %rcx     # imm = 0x1000000010
btq %rax, %rcx
movq 0x28(%rsp), %r15
jb 0x3ff2
movabsq $0x4000000040, %rcx     # imm = 0x4000000040
btq %rax, %rcx
jae 0x4009
mulsd 0xf2bf(%rip), %xmm0     # 0x13010
jmp 0x4009
leaq 0x15a23(%rip), %rax     # 0x19780
orb $0x2, (%rax)
jmp 0x3cbd
leaq 0x15a14(%rip), %rax     # 0x19780
orb $0x20, (%rax)
jmp 0x3cbd
mulsd 0xf28c(%rip), %xmm0     # 0x13008
jmp 0x3da4
mulsd 0xf282(%rip), %xmm0     # 0x13008
jmp 0x3de4
mulsd 0xf288(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf274(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movq %rax, 0xd0(%rsp)
jmp 0x3cc2
mulsd 0xf242(%rip), %xmm0     # 0x13008
jmp 0x3e2a
mulsd 0xf248(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf234(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xe0(%rsp)
movl %eax, 0xec(%rsp)
movl $0x1, %eax
movq %rax, 0x78(%rsp)
jmp 0x3cc2
mulsd 0xf202(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf1ee(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xf0(%rsp)
jmp 0x3cc2
mulsd 0xf1bd(%rip), %xmm0     # 0x13008
jmp 0x3e73
mulsd 0xf1b3(%rip), %xmm0     # 0x13008
jmp 0x3ea8
mulsd 0xf1b9(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf1a5(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0x120(%rsp)
jmp 0x3cc2
mulsd 0xf184(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf170(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xd8(%rsp)
jmp 0x3cc2
mulsd 0xf13f(%rip), %xmm0     # 0x13008
jmp 0x3efe
mulsd 0xf135(%rip), %xmm0     # 0x13008
jmp 0x3f33
mulsd 0xf12b(%rip), %xmm0     # 0x13008
jmp 0x3f68
mulsd 0xf12e(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf11a(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0x104(%rsp)
jmp 0x3cc2
mulsd 0xf0f9(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf0e5(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xdc(%rsp)
jmp 0x3cc2
mulsd 0xf0c4(%rip), %xmm0     # 0x13018
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r15
addsd 0xf0b0(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xf8(%rsp)
jmp 0x3cc2
mulsd 0xf07f(%rip), %xmm0     # 0x13008
jmp 0x3f98
mulsd 0xf085(%rip), %xmm0     # 0x13018
movq 0x28(%rsp), %r15
addsd 0xf080(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
leaq 0x1(%rax), %rcx
shrq $0x3f, %rcx
addq %rcx, %rax
incq %rax
shrq %rax
movl %eax, 0x164(%rsp)
jmp 0x3cc2
mulsd 0xf03e(%rip), %xmm0     # 0x13008
jmp 0x3fd9
mulsd 0xf044(%rip), %xmm0     # 0x13018
movq 0x28(%rsp), %r15
addsd 0xf03f(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0x124(%rsp)
jmp 0x3cc2
mulsd 0xf00e(%rip), %xmm0     # 0x13008
jmp 0x4009
mulsd 0xf014(%rip), %xmm0     # 0x13018
movq 0x28(%rsp), %r15
addsd 0xf00f(%rip), %xmm0     # 0x13020
cvttsd2si %xmm0, %rax
movl %eax, 0xfc(%rsp)
jmp 0x3cc2
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3d9f
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3ddf
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3e25
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3e6e
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3ea3
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3ef9
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3f2e
movq 0x8(%rsp), %r14
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3f63
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3f93
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x3fd4
movq 0x18(%rsp), %r10
movq %r15, %r9
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdx
jmp 0x4004
cmpl $0x191, %r14d           # imm = 0x191
je 0x4405
movl %ebx, %ebx
movq 0x8(%rsp), %r14
jmp 0x3202
movq %r9, %r14
callq 0x2360
jmp 0x36a8
movl $0x1, %ebx
movl $0x4, 0x4c(%rsp)
movq $0x0, 0x78(%rsp)
movl $0x0, 0x50(%rsp)
movl $0x0, 0x54(%rsp)
xorl %ebp, %ebp
movq $0x0, 0xa0(%rsp)
xorl %ecx, %ecx
jmp 0x41b2
movl %r14d, %ebx
movq 0x38(%rsp), %r13
movq 0x58(%rsp), %rbp
subl %ecx, %ebx
leaq 0xc8(%rsp), %rdi
callq 0x4ee2
movl $0x1, %r15d
testl %eax, %eax
js 0x435d
movl %r14d, %eax
subl %ebx, %eax
je 0x4344
cmpl $0x1, %eax
jne 0x41e8
testq %rbp, %rbp
je 0x4344
movl 0xbc(%rsp), %edi
callq 0x441c
testl %eax, %eax
js 0x42f0
movslq %ebx, %rbx
movq (%r13,%rbx,8), %rdi
leaq 0xac(%rsp), %rsi
movl 0x4c(%rsp), %edx
callq 0x56c1
testq %rax, %rax
je 0x4331
movq %rax, %r12
cmpl $0x0, 0x54(%rsp)
sete %al
cmpl $0x0, 0x78(%rsp)
setne %cl
orb %al, %cl
jne 0x424b
movq 0x18(%r12), %rax
movq 0x10(%rax), %rsi
leaq 0xc8(%rsp), %rdi
callq 0x4d60
leaq 0x1518e(%rip), %rax     # 0x193e0
cmpl $0x3, (%rax)
jl 0x4266
movl 0xd8(%rsp), %esi
movq %r12, %rdi
callq 0x28a2
testq %rbp, %rbp
je 0x4276
movq %rbp, %rdi
movq %r12, %rsi
callq 0x5469
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x4297
leaq 0xc8(%rsp), %rdx
movq %r12, %rsi
movl 0x50(%rsp), %ecx
callq 0x57a7
movq %r14, 0x8(%rsp)
movslq %r14d, %rbp
incq %rbx
leaq 0xc8(%rsp), %r14
cmpq %rbp, %rbx
jge 0x430b
movq (%r13,%rbx,8), %rsi
movq %r12, %rdi
movq %r14, %rdx
movl 0x4c(%rsp), %ecx
callq 0x666a
incq %rbx
testl %eax, %eax
je 0x42aa
movq 0x14d1f(%rip), %rax     # 0x18ff0
movq (%rax), %rdi
movq -0x8(%r13,%rbx,8), %rcx
leaq 0xef8a(%rip), %rsi      # 0x1326a
leaq 0xefd3(%rip), %rdx      # 0x132ba
xorl %eax, %eax
callq 0x21d0
jmp 0x435d
leaq 0x150e9(%rip), %rax     # 0x193e0
cmpl $0x0, (%rax)
jle 0x435d
leaq 0xbc(%rsp), %rdi
callq 0x2488
jmp 0x435d
movq %r12, %rdi
callq 0x5432
xorl %r15d, %r15d
leaq 0x150c3(%rip), %rax     # 0x193e0
cmpl $0x3, (%rax)
jl 0x435d
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x2382
jmp 0x435d
leaq 0x150a8(%rip), %rax     # 0x193e0
cmpl $0x0, (%rax)
jle 0x435d
callq 0x2466
jmp 0x435d
leaq 0xac(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movl 0x4c(%rsp), %edx
callq 0x24ab
movl %r15d, %eax
addq $0x358, %rsp            # imm = 0x358
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %edx, %ebx
jmp 0x438e
subl %r11d, %ebx
subl %r10d, %ebx
movq 0x8(%rsp), %r14
jmp 0x41b4
movq 0x60(%rsp), %rbx
addl %r10d, %ebx
movq 0x38(%rsp), %r13
movq 0x58(%rsp), %rbp
addl %r10d, %r11d
movl %r11d, %ecx
jmp 0x41b2
movq %rsi, %r11
addq %r10, %rcx
addq %r10, %rax
testl %ecx, %ecx
movq 0x60(%rsp), %r9
jle 0x43d9
movl %ecx, %edx
negq %rdx
movslq %eax, %rsi
movq 0x38(%rsp), %rdi
leaq (%rdi,%rsi,8), %rsi
xorl %edi, %edi
movq -0x8(%rsi,%rdi,8), %r8
movq %r8, (%rsi,%rdi,8)
decq %rdi
cmpq %rdi, %rdx
jne 0x43c8
xorl %edx, %edx
testl %r13d, %r13d
cmovgl %r13d, %edx
subl %edx, %r9d
addl %r9d, %r10d
movslq %r10d, %rdx
movq 0x38(%rsp), %r13
movq %r11, (%r13,%rdx,8)
subl %ecx, %eax
incl %eax
movl %eax, %ebx
movq 0x58(%rsp), %rbp
jmp 0x41b4
leaq 0xedbb(%rip), %rdi      # 0x131c7
callq 0x2090
xorl %r15d, %r15d
jmp 0x435d
nopl (%rax)