// File: /workspace/github_c_makefile_star2_O0/lh3[P]pre-pe/pre-lianti.c
// Function: lt_process
void lt_process(const lt_global_t *g, bseq1_t s[2])
{
	int i, k, n_hits[2], mlen;
	lt_sc_hit_t hits[2][MAX_BINDING_HITS];
	char *rseq, *rqual, *xseq, *xqual, *bc;

	mlen = s[0].l_seq > s[1].l_seq? s[0].l_seq : s[1].l_seq;
	rseq = (char*)alloca(mlen + 1);
	rqual = (char*)alloca(mlen + 1);
	xseq = (char*)alloca(s[0].l_seq + s[1].l_seq + 1);
	xqual = (char*)alloca(s[0].l_seq + s[1].l_seq + 1);
	bc = (char*)alloca(mlen + 1);

	// trim heading and trailing N
	for (k = 0; k < 2; ++k) {
		bseq1_t *sk = &s[k];
		for (i = sk->l_seq - 1; i >= 0; --i) // trim trailing "N"
			if (sk->seq[i] != 'N') break;
		sk->l_seq = i + 1;
		sk->seq[sk->l_seq] = sk->qual[sk->l_seq] = 0;
		for (i = 0; i < sk->l_seq; ++i) // trim heading "N"
			if (sk->seq[i] != 'N') break;
		if (i) trim_bseq_5(sk, i);
	}
	// trim Illumina PE adapters
	trim_adap(&s[0], lt_adapter1, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
	trim_adap(&s[1], lt_adapter2, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
	// find binding motifs
	for (k = 0; k < 2; ++k)
		n_hits[k] = lt_sc_test(g->sc_bind, s[k].seq, MAX_BINDING_HITS, hits[k]);
	if (s[0].l_seq < g->opt.min_seq_len || s[1].l_seq < g->opt.min_seq_len) {
		s[0].type = s[1].type = LT_SHORT_SEQ;
	} else if (n_hits[0] + n_hits[1] == 0) {
		s[0].type = s[1].type = LT_NO_BINDING;
	} else if (n_hits[0] == MAX_BINDING_HITS || n_hits[1] == MAX_BINDING_HITS) {
		s[0].type = s[1].type = LT_TOO_MANY_BINDING;
	} else if (n_hits[0] > 0 && n_hits[1] > 0) { // both ends contain the binding motif
		int bpos[2], l_prom[2];
		s[0].dbl_bind = s[1].dbl_bind = 1;
		for (i = 0; i < 2; ++i) {
			bpos[i] = hits[i][n_hits[i] - 1].pos;
			l_prom[i] = lt_ue_rev1(bpos[i], s[i].seq, s[i].qual, g->sc_prom->l, lt_promoter, 0, g->opt.min_bc_len, g->opt.max_bc_pen);
			if (l_prom[i] != bpos[i] && l_prom[i] != g->sc_prom->l)
				l_prom[i] = 0;
			if (l_prom[i] < g->opt.min_bc_len) l_prom[i] = 0;
		}
		if (l_prom[0] == 0 && l_prom[1] == 0) {
			s[0].type = s[1].type = LT_CHIMERA;
		} else {
			int w = l_prom[0] < l_prom[1]? 1 : 0;
			trim_bseq_5(&s[w], bpos[w] + g->sc_bind->l);
			n_hits[w] = 0;
		}
	}
	// find end overlaps
	if ((n_hits[0] == 0 || n_hits[1] == 0) && s[0].type == LT_UNKNOWN) {
		int f, r, fpos, bpos, l_bc_prom;
		lt_sc_hit_t hits_prom;
		f = n_hits[0]? 0 : 1;
		r = f^1;
		bpos = hits[f][n_hits[f] - 1].pos;
		fpos = bpos + g->sc_bind->l;
		// barcode
		l_bc_prom = lt_ue_rev1(bpos, s[f].seq, s[f].qual, g->sc_prom->l, lt_promoter, 0, g->opt.min_bc_len, g->opt.max_bc_pen); // test if "barcode" is actually teh T7 promotor
		if (l_bc_prom >= g->opt.min_bc_len) {
			bc[0] = '*', bc[1] = 0;
		} else if (bpos < g->opt.bc_len) {
			strncpy(bc, s[f].seq, bpos);
			bc[bpos] = 0;
		} else {
			strncpy(bc, s[f].seq + (bpos - g->opt.bc_len), g->opt.bc_len);
			bc[g->opt.bc_len] = 0;
		}
		s[0].bc = strdup(bc);
		s[1].bc = strdup(bc);
		// test merge and promoter sequences
		if (lt_sc_test(g->sc_prom, &s[f].seq[fpos], 1, &hits_prom) > 0) {
			s[0].type = s[1].type = LT_POST_PROMOTER;
		} else {
			int n_fh, n_rh, n_ch;
			uint64_t fh[2], rh[2], ch[2];
			// reverse the other read
			lt_seq_revcomp(s[r].l_seq, s[r].seq, rseq);
			lt_seq_rev(s[r].l_seq, s[r].qual, rqual);
			// find overlaps
			n_fh = lt_ue_for(s[f].l_seq - bpos, &s[f].seq[bpos], &s[f].qual[bpos], s[r].l_seq, rseq, rqual, g->opt.max_ovlp_pen, g->opt.min_ovlp_len, 2, fh);
			n_rh = lt_ue_rev(s[f].l_seq - bpos, &s[f].seq[bpos], &s[f].qual[bpos], s[r].l_seq, rseq, rqual, g->opt.max_ovlp_pen, g->opt.min_ovlp_len, 2, rh);
			n_ch = lt_ue_contained(s[f].l_seq - bpos, &s[f].seq[bpos], &s[f].qual[bpos], s[r].l_seq, rseq, rqual, g->opt.max_ovlp_pen, 2, ch);
			if (n_fh + n_rh + n_ch > 1) {
				s[0].type = s[1].type = LT_AMBI_MERGE;
			} else if (n_fh + n_rh + n_ch == 0) {
				s[0].type = s[1].type = LT_NO_MERGE;
			} else {
				int x = 0;
				s[0].type = s[1].type = LT_MERGED;
				if (n_fh == 1) {
					/*  GGG19bp------------------->
					                     <--------------- */
					int l = (uint32_t)fh[0], st = fh[0]>>32;
					for (i = fpos; i < bpos + st; ++i)
						xseq[x] = s[f].seq[i], xqual[x++] = s[f].qual[i];
					for (i = fpos < bpos + st? 0 : fpos - (bpos + st); i < l; ++i) {
						int j = bpos + st + i, y;
						y = merge_base(g->opt.max_qual, s[f].seq[j], s[f].qual[j], rseq[i], rqual[i]);
						xseq[x] = (uint8_t)y, xqual[x++] = y>>8;
					}
					if (l < s[r].l_seq) {
						for (i = l; i < s[r].l_seq; ++i)
							xseq[x] = rseq[i], xqual[x++] = rqual[i];
					} else { // FIXME: please check pre-meta.c; this block is probably buggy!!!
						for (i = bpos + l; i < s[f].l_seq; ++i)
							xseq[x] = s[f].seq[i], xqual[x++] = s[f].qual[i];
					}
				} else if (n_rh == 1) {
					/*      GGG19bp--------------------->
					   <--------------------------           */
					int l = (uint32_t)rh[0], st = rh[0]>>32, l2;
					for (i = fpos; i < s[f].l_seq - st - l; ++i)
						xseq[x] = s[f].seq[i], xqual[x++] = s[f].qual[i];
					l2 = fpos < s[f].l_seq - st - l? l : s[f].l_seq - st - fpos;
					for (i = s[r].l_seq - l2; i < s[r].l_seq; ++i) {
						int j = i - s[r].l_seq + (s[f].l_seq - st), y;
						y = merge_base(g->opt.max_qual, s[f].seq[j], s[f].qual[j], rseq[i], rqual[i]);
						xseq[x] = (uint8_t)y, xqual[x++] = y>>8;
					}
				} else if (n_ch == 1) {
					/*    GGG19bp---------------->
					   <-----------------------------    */
					int j, st = ch[0]>>32;
					for (j = fpos; j < s[f].l_seq; ++j) {
						int i = j + st - bpos, y;
						y = merge_base(g->opt.max_qual, s[f].seq[j], s[f].qual[j], rseq[i], rqual[i]);
						xseq[x] = (uint8_t)y, xqual[x++] = y>>8;
					}
				}
				xseq[x] = xqual[x] = 0;
				for (i = 0; i < x; ++i)
					if (xseq[i] == 'N' || xseq[i] == 'n') break;
				if (i != x) s[0].type = s[1].type = LT_AMBI_BASE;
				else if (x < g->opt.min_seq_len) s[0].type = s[1].type = LT_SHORT_MERGE;
				free(s[0].seq); free(s[0].qual);
				s[0].seq = strdup(xseq);
				s[0].qual = strdup(xqual);
				s[0].l_seq = x;
				s[1].l_seq = 0;
			}
		}
		if (s[0].type == LT_AMBI_MERGE || s[0].type == LT_NO_MERGE) {
			int n_ambi = 0;
			trim_bseq_5(&s[f], fpos);
			for (k = 0; k < 2; ++k) {
				for (i = 0; i < s[k].l_seq; ++i)
					if (s[k].seq[i] == 'N') ++n_ambi;
			}
			if (n_ambi) s[0].type = s[1].type = LT_AMBI_BASE;
			else if (s[f].l_seq < g->opt.min_seq_len || s[r].l_seq < g->opt.min_seq_len)
				s[0].type = s[1].type = LT_SHORT_PE;
			if (f == 1) {
				char *tmp;
				tmp = s[f].seq, s[f].seq = s[r].seq, s[r].seq = tmp;
				tmp = s[f].qual, s[f].qual = s[r].qual, s[r].qual = tmp;
				i = s[f].l_seq, s[f].l_seq = s[r].l_seq, s[r].l_seq = i;
				f = 0, r = 1;
			}
		}
	}
	if (s[0].type == LT_MERGED || s[0].type == LT_NO_MERGE || s[0].type == LT_AMBI_MERGE || s[0].type == LT_NO_BINDING) {
		if (s->type == LT_NO_BINDING) {
			for (i = 0; i < 2; ++i) {
				trim_adap(&s[i], lt_oligo_for, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 0);
				trim_adap(&s[i], lt_bind_rev, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
				trim_adap(&s[i], lt_oligo_rev, 1, g->opt.min_adap_len, g->opt.max_adap_pen, 0);
				trim_adap(&s[i], lt_bind, 1, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
			}
		} else {
			trim_adap(&s[0], lt_oligo_for, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 0);
			trim_adap(&s[0], lt_bind_rev, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
			if (s->type != LT_MERGED) {
				trim_adap(&s[1], lt_bind_rev, 0, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
				trim_adap(&s[1], lt_oligo_rev, 1, g->opt.min_adap_len, g->opt.max_adap_pen, 0);
				trim_adap(&s[1], lt_bind, 1, g->opt.min_adap_len, g->opt.max_adap_pen, 1);
			}
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq -0x10(%rbp), %rcx
movl 0x28(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jle 0x3f52
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x12c(%rbp)
jmp 0x3f64
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
movl %eax, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
addq $0x10, %rcx
andq $-0x10, %rcx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x48(%rbp)
movslq -0x24(%rbp), %rcx
addq $0x10, %rcx
andq $-0x10, %rcx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edx
movl 0x28(%rax), %eax
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, %ecx
movl %edx, %eax
leal 0x10(%rax,%rcx), %eax
andl $-0x10, %eax
movl %eax, %ecx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edx
movl 0x28(%rax), %eax
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, %ecx
movl %edx, %eax
leal 0x10(%rax,%rcx), %eax
andl $-0x10, %eax
movl %eax, %ecx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x60(%rbp)
movslq -0x24(%rbp), %rcx
addq $0x10, %rcx
andq $-0x10, %rcx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x68(%rbp)
movl $0x0, -0x18(%rbp)
cmpl $0x2, -0x18(%rbp)
jge 0x4123
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
subl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x4073
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x4e, %eax
je 0x4066
jmp 0x4073
jmp 0x4068
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4049
movl -0x14(%rbp), %edx
addl $0x1, %edx
movq -0x70(%rbp), %rax
movl (%rax), %ecx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x80000000, %ecx       # imm = 0x80000000
orl %edx, %ecx
movl %ecx, (%rax)
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movl %ecx, %ecx
movb $0x0, (%rax,%rcx)
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movl %ecx, %ecx
movb $0x0, (%rax,%rcx)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x70(%rbp), %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x4101
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x4e, %eax
je 0x40f4
jmp 0x4101
jmp 0x40f6
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x40ca
cmpl $0x0, -0x14(%rbp)
je 0x4113
movq -0x70(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5650
jmp 0x4115
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x401b
movq -0x10(%rbp), %rdi
movq 0x5032(%rip), %rsi      # 0x9160
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %edx, %edx
movl $0x1, %r9d
callq 0x5720
movq -0x10(%rbp), %rdi
addq $0x28, %rdi
movq 0x500f(%rip), %rsi      # 0x9168
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %edx, %edx
movl $0x1, %r9d
callq 0x5720
movl $0x0, -0x18(%rbp)
cmpl $0x2, -0x18(%rbp)
jge 0x41cb
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x18(%rbp), %rax
leaq -0x40(%rbp), %rcx
imulq $0xc, %rax, %rax
addq %rax, %rcx
movl $0x3, %edx
callq 0x2ff0
movl %eax, %ecx
movslq -0x18(%rbp), %rax
movl %ecx, -0x20(%rbp,%rax,4)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x417c
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jl 0x41f4
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x420f
movq -0x10(%rbp), %rax
movl $0x2, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x2, 0x4(%rax)
jmp 0x4427
movl -0x20(%rbp), %eax
addl -0x1c(%rbp), %eax
cmpl $0x0, %eax
jne 0x4235
movq -0x10(%rbp), %rax
movl $0x3, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x3, 0x4(%rax)
jmp 0x4425
cmpl $0x3, -0x20(%rbp)
je 0x4241
cmpl $0x3, -0x1c(%rbp)
jne 0x425c
movq -0x10(%rbp), %rax
movl $0x4, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x4, 0x4(%rax)
jmp 0x4423
cmpl $0x0, -0x20(%rbp)
jle 0x4421
cmpl $0x0, -0x1c(%rbp)
jle 0x4421
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, (%rax)
movl $0x0, -0x14(%rbp)
cmpl $0x2, -0x14(%rbp)
jge 0x43a8
movslq -0x14(%rbp), %rcx
leaq -0x40(%rbp), %rax
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
movl -0x20(%rbp,%rcx,4), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %ecx
andl $0x3fffffff, %ecx       # imm = 0x3FFFFFFF
movslq -0x14(%rbp), %rax
movl %ecx, -0x78(%rbp,%rax,4)
movslq -0x14(%rbp), %rax
movl -0x78(%rbp,%rax,4), %edi
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl (%rax), %ecx
movq 0x4e40(%rip), %r8       # 0x9158
movq -0x8(%rbp), %rax
movl 0x24(%rax), %r10d
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
xorl %r9d, %r9d
subq $0x10, %rsp
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x34e0
addq $0x10, %rsp
movl %eax, %ecx
movslq -0x14(%rbp), %rax
movl %ecx, -0x80(%rbp,%rax,4)
movslq -0x14(%rbp), %rax
movl -0x80(%rbp,%rax,4), %eax
movslq -0x14(%rbp), %rcx
cmpl -0x78(%rbp,%rcx,4), %eax
je 0x437b
movslq -0x14(%rbp), %rax
movl -0x80(%rbp,%rax,4), %eax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
cmpl (%rcx), %eax
je 0x437b
movslq -0x14(%rbp), %rax
movl $0x0, -0x80(%rbp,%rax,4)
movslq -0x14(%rbp), %rax
movl -0x80(%rbp,%rax,4), %eax
movq -0x8(%rbp), %rcx
cmpl 0x24(%rcx), %eax
jge 0x4398
movslq -0x14(%rbp), %rax
movl $0x0, -0x80(%rbp,%rax,4)
jmp 0x439a
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x42a1
cmpl $0x0, -0x80(%rbp)
jne 0x43cc
cmpl $0x0, -0x7c(%rbp)
jne 0x43cc
movq -0x10(%rbp), %rax
movl $0x6, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x6, 0x4(%rax)
jmp 0x441f
movl -0x80(%rbp), %edx
movl -0x7c(%rbp), %esi
xorl %eax, %eax
movl $0x1, %ecx
cmpl %esi, %edx
cmovll %ecx, %eax
movl %eax, -0x84(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x84(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movslq -0x84(%rbp), %rax
movl -0x78(%rbp,%rax,4), %esi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
addl (%rax), %esi
callq 0x5650
movslq -0x84(%rbp), %rax
movl $0x0, -0x20(%rbp,%rax,4)
jmp 0x4421
jmp 0x4423
jmp 0x4425
jmp 0x4427
cmpl $0x0, -0x20(%rbp)
je 0x4437
cmpl $0x0, -0x1c(%rbp)
jne 0x5445
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x5445
movl -0x20(%rbp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
xorl $0x1, %eax
movl %eax, -0x8c(%rbp)
movslq -0x88(%rbp), %rcx
leaq -0x40(%rbp), %rax
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movslq -0x88(%rbp), %rcx
movl -0x20(%rbp,%rcx,4), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
andl $0x3fffffff, %eax       # imm = 0x3FFFFFFF
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
addl (%rcx), %eax
movl %eax, -0x90(%rbp)
movl -0x94(%rbp), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl (%rax), %ecx
movq 0x4c64(%rip), %r8       # 0x9158
movq -0x8(%rbp), %rax
movl 0x24(%rax), %r10d
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
xorl %r9d, %r9d
subq $0x10, %rsp
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x34e0
addq $0x10, %rsp
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x24(%rcx), %eax
jl 0x4544
movq -0x68(%rbp), %rax
movb $0x2a, (%rax)
movq -0x68(%rbp), %rax
movb $0x0, 0x1(%rax)
jmp 0x45d5
movl -0x94(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jge 0x458a
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x94(%rbp), %rdx
callq 0x2060
movq -0x68(%rbp), %rax
movslq -0x94(%rbp), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x45d3
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movl -0x94(%rbp), %eax
movq -0x8(%rbp), %rcx
subl 0x28(%rcx), %eax
cltq
addq %rax, %rsi
movq -0x8(%rbp), %rax
movslq 0x28(%rax), %rdx
callq 0x2060
movq -0x68(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq 0x28(%rcx), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x45d5
movq -0x68(%rbp), %rdi
callq 0x2240
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x68(%rbp), %rdi
callq 0x2240
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x90(%rbp), %rax
addq %rax, %rsi
movl $0x1, %edx
leaq -0x9c(%rbp), %rcx
callq 0x2ff0
cmpl $0x0, %eax
jle 0x4656
movq -0x10(%rbp), %rax
movl $0x5, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x5, 0x4(%rax)
jmp 0x519c
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
andl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movq -0x48(%rbp), %rdx
callq 0x3340
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
andl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rsi
movq -0x50(%rbp), %rdx
callq 0x32e0
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
andl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
subl -0x94(%rbp), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x94(%rbp), %rax
addq %rax, %rsi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movslq -0x94(%rbp), %rax
addq %rax, %rdx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x8(%rbp), %rax
movl 0x10(%rax), %r11d
movq -0x8(%rbp), %rax
movl 0x14(%rax), %r10d
leaq -0xc0(%rbp), %rax
subq $0x20, %rsp
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl $0x2, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x3610
addq $0x20, %rsp
movl %eax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
andl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
subl -0x94(%rbp), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x94(%rbp), %rax
addq %rax, %rsi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movslq -0x94(%rbp), %rax
addq %rax, %rdx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x8(%rbp), %rax
movl 0x10(%rax), %r11d
movq -0x8(%rbp), %rax
movl 0x14(%rax), %r10d
leaq -0xd0(%rbp), %rax
subq $0x20, %rsp
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl $0x2, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x3720
addq $0x20, %rsp
movl %eax, -0xa4(%rbp)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
andl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
subl -0x94(%rbp), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
movslq -0x94(%rbp), %rax
addq %rax, %rsi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdx
movslq -0x94(%rbp), %rax
addq %rax, %rdx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %r8
movq -0x50(%rbp), %r9
movq -0x8(%rbp), %rax
movl 0x10(%rax), %r10d
leaq -0xe0(%rbp), %rax
subq $0x20, %rsp
movl %r10d, (%rsp)
movl $0x2, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x3810
addq $0x20, %rsp
movl %eax, -0xa8(%rbp)
movl -0xa0(%rbp), %eax
addl -0xa4(%rbp), %eax
addl -0xa8(%rbp), %eax
cmpl $0x1, %eax
jle 0x4933
movq -0x10(%rbp), %rax
movl $0x17, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x17, 0x4(%rax)
jmp 0x519a
movl -0xa0(%rbp), %eax
addl -0xa4(%rbp), %eax
addl -0xa8(%rbp), %eax
cmpl $0x0, %eax
jne 0x4965
movq -0x10(%rbp), %rax
movl $0x16, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x16, 0x4(%rax)
jmp 0x5198
movl $0x0, -0xe4(%rbp)
movq -0x10(%rbp), %rax
movl $0x15, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x15, 0x4(%rax)
cmpl $0x1, -0xa0(%rbp)
jne 0x4ca8
movq -0xc0(%rbp), %rax
movl %eax, -0xe8(%rbp)
movq -0xc0(%rbp), %rax
shrq $0x20, %rax
movl %eax, -0xec(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl -0x94(%rbp), %ecx
addl -0xec(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4a3d
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x49b9
movl -0x90(%rbp), %eax
movl -0x94(%rbp), %ecx
addl -0xec(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4a5d
xorl %eax, %eax
movl %eax, -0x130(%rbp)
jmp 0x4a77
movl -0x90(%rbp), %eax
movl -0x94(%rbp), %ecx
addl -0xec(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x130(%rbp)
movl -0x130(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0xe8(%rbp), %eax
jge 0x4b63
movl -0x94(%rbp), %eax
addl -0xec(%rbp), %eax
addl -0x14(%rbp), %eax
movl %eax, -0xf0(%rbp)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0xf0(%rbp), %rcx
movb (%rax,%rcx), %sil
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0xf0(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x48(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x50(%rbp), %rax
movslq -0x14(%rbp), %r8
movsbl %sil, %esi
movsbl %dl, %edx
movsbl %cl, %ecx
movsbl (%rax,%r8), %r8d
callq 0x5960
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %eax
movb %al, %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0xf4(%rbp), %eax
sarl $0x8, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4a80
movl -0xe8(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x4c00
movl -0xe8(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x4bfb
movq -0x48(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x50(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4b90
jmp 0x4ca3
movl -0x94(%rbp), %eax
addl -0xe8(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x4ca1
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4c0f
jmp 0x4ca3
jmp 0x507c
cmpl $0x1, -0xa4(%rbp)
jne 0x4f41
movq -0xd0(%rbp), %rax
movl %eax, -0xf8(%rbp)
movq -0xd0(%rbp), %rax
shrq $0x20, %rax
movl %eax, -0xfc(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl -0xfc(%rbp), %ecx
subl -0xf8(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4d7a
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4cdc
movl -0x90(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl -0xfc(%rbp), %ecx
subl -0xf8(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4db8
movl -0xf8(%rbp), %eax
movl %eax, -0x134(%rbp)
jmp 0x4de3
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
subl -0xfc(%rbp), %eax
subl -0x90(%rbp), %eax
movl %eax, -0x134(%rbp)
movl -0x134(%rbp), %eax
movl %eax, -0x100(%rbp)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
subl -0x100(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x4f3c
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl %ecx, %eax
movq -0x10(%rbp), %rcx
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl -0xfc(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x104(%rbp)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x104(%rbp), %rcx
movb (%rax,%rcx), %sil
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x104(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x48(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x50(%rbp), %rax
movslq -0x14(%rbp), %r8
movsbl %sil, %esi
movsbl %dl, %edx
movsbl %cl, %ecx
movsbl (%rax,%r8), %r8d
callq 0x5960
movl %eax, -0x108(%rbp)
movl -0x108(%rbp), %eax
movb %al, %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x108(%rbp), %eax
sarl $0x8, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4e11
jmp 0x507a
cmpl $0x1, -0xa8(%rbp)
jne 0x5078
movq -0xe0(%rbp), %rax
shrq $0x20, %rax
movl %eax, -0x110(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x10c(%rbp)
movl -0x10c(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x5076
movl -0x10c(%rbp), %eax
addl -0x110(%rbp), %eax
subl -0x94(%rbp), %eax
movl %eax, -0x114(%rbp)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %edi
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x10c(%rbp), %rcx
movb (%rax,%rcx), %sil
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movslq -0x10c(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x48(%rbp), %rax
movslq -0x114(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x50(%rbp), %rax
movslq -0x114(%rbp), %r8
movsbl %sil, %esi
movsbl %dl, %edx
movsbl %cl, %ecx
movsbl (%rax,%r8), %r8d
callq 0x5960
movl %eax, -0x118(%rbp)
movl -0x118(%rbp), %eax
movb %al, %dl
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x118(%rbp), %eax
sarl $0x8, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xe4(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x10c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10c(%rbp)
jmp 0x4f6b
jmp 0x5078
jmp 0x507a
jmp 0x507c
movq -0x60(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x58(%rbp), %rax
movslq -0xe4(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0xe4(%rbp), %eax
jge 0x50dd
movq -0x58(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x4e, %eax
je 0x50ce
movq -0x58(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x6e, %eax
jne 0x50d0
jmp 0x50dd
jmp 0x50d2
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x50a1
movl -0x14(%rbp), %eax
cmpl -0xe4(%rbp), %eax
je 0x5100
movq -0x10(%rbp), %rax
movl $0x1, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x1, 0x4(%rax)
jmp 0x5127
movl -0xe4(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x5125
movq -0x10(%rbp), %rax
movl $0xb, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0xb, 0x4(%rax)
jmp 0x5127
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2040
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x2040
movq -0x58(%rbp), %rdi
callq 0x2240
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rdi
callq 0x2240
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movl -0xe4(%rbp), %edx
movq -0x10(%rbp), %rax
movl (%rax), %ecx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x80000000, %ecx       # imm = 0x80000000
orl %edx, %ecx
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0x80000000, %ecx       # imm = 0x80000000
orl $0x0, %ecx
movl %ecx, 0x28(%rax)
jmp 0x519a
jmp 0x519c
movq -0x10(%rbp), %rax
cmpl $0x17, 0x4(%rax)
je 0x51b4
movq -0x10(%rbp), %rax
cmpl $0x16, 0x4(%rax)
jne 0x5443
movl $0x0, -0x11c(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x88(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movl -0x90(%rbp), %esi
callq 0x5650
movl $0x0, -0x18(%rbp)
cmpl $0x2, -0x18(%rbp)
jge 0x5256
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x18(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
cmpl %ecx, %eax
jge 0x5249
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x4e, %eax
jne 0x523c
movl -0x11c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x11c(%rbp)
jmp 0x523e
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x51ef
jmp 0x524b
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x51e2
cmpl $0x0, -0x11c(%rbp)
je 0x5277
movq -0x10(%rbp), %rax
movl $0x1, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0x1, 0x4(%rax)
jmp 0x52d3
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jl 0x52bb
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x52d1
movq -0x10(%rbp), %rax
movl $0xc, 0x2c(%rax)
movq -0x10(%rbp), %rax
movl $0xc, 0x4(%rax)
jmp 0x52d3
cmpl $0x1, -0x88(%rbp)
jne 0x5441
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x128(%rbp), %rcx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rcx
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq -0x128(%rbp), %rcx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x80000000, %ecx       # imm = 0x80000000
orl %edx, %ecx
movl %ecx, (%rax)
movl -0x14(%rbp), %edx
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl $0x80000000, %ecx       # imm = 0x80000000
orl %edx, %ecx
movl %ecx, (%rax)
movl $0x0, -0x88(%rbp)
movl $0x1, -0x8c(%rbp)
jmp 0x5443
jmp 0x5445
movq -0x10(%rbp), %rax
cmpl $0x15, 0x4(%rax)
je 0x5471
movq -0x10(%rbp), %rax
cmpl $0x16, 0x4(%rax)
je 0x5471
movq -0x10(%rbp), %rax
cmpl $0x17, 0x4(%rax)
je 0x5471
movq -0x10(%rbp), %rax
cmpl $0x3, 0x4(%rax)
jne 0x564a
movq -0x10(%rbp), %rax
cmpl $0x3, 0x4(%rax)
jne 0x556a
movl $0x0, -0x14(%rbp)
cmpl $0x2, -0x14(%rbp)
jge 0x5565
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq 0x3cca(%rip), %rsi      # 0x9170
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %r9d, %r9d
movl %r9d, %edx
callq 0x5720
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq 0x3caa(%rip), %rsi      # 0x9180
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %edx, %edx
movl $0x1, %r9d
callq 0x5720
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq 0x3c70(%rip), %rsi      # 0x9178
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
movl $0x1, %edx
xorl %r9d, %r9d
callq 0x5720
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq 0x3c16(%rip), %rsi      # 0x9150
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
movl $0x1, %r9d
movl %r9d, %edx
callq 0x5720
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5486
jmp 0x5648
movq -0x10(%rbp), %rdi
movq 0x3bfb(%rip), %rsi      # 0x9170
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %r9d, %r9d
movl %r9d, %edx
callq 0x5720
movq -0x10(%rbp), %rdi
movq 0x3be6(%rip), %rsi      # 0x9180
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %edx, %edx
movl $0x1, %r9d
callq 0x5720
movq -0x10(%rbp), %rax
cmpl $0x15, 0x4(%rax)
je 0x5646
movq -0x10(%rbp), %rdi
addq $0x28, %rdi
movq 0x3bad(%rip), %rsi      # 0x9180
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
xorl %edx, %edx
movl $0x1, %r9d
callq 0x5720
movq -0x10(%rbp), %rdi
addq $0x28, %rdi
movq 0x3b7a(%rip), %rsi      # 0x9178
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
movl $0x1, %edx
xorl %r9d, %r9d
callq 0x5720
movq -0x10(%rbp), %rdi
addq $0x28, %rdi
movq 0x3b27(%rip), %rsi      # 0x9150
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %r8d
movl $0x1, %r9d
movl %r9d, %edx
callq 0x5720
jmp 0x5648
jmp 0x564a
movq %rbp, %rsp
popq %rbp
retq
nop