// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/align.c
// Function: mm_align1
static void mm_align1(void *km, const mm_mapopt_t *opt, const mm_idx_t *mi, int qlen, uint8_t *qseq0[2], mm_reg1_t *r, mm_reg1_t *r2, int n_a, mm128_t *a, ksw_extz_t *ez, int splice_flag)
{
	int is_sr = !!(opt->flag & MM_F_SR), is_splice = !!(opt->flag & MM_F_SPLICE), is_sr_rna = (!!(opt->flag & MM_F_SR_RNA) && is_splice);
	int32_t rid = a[r->as].x<<1>>33, rev = a[r->as].x>>63, as1, cnt1;
	uint8_t *tseq, *qseq, *junc, *tseq2 = 0, *junc2 = 0;
	int32_t i, l, bw, bw_long, dropped = 0, ksw_flag = 0, rs0, re0, qs0, qe0;
	int32_t rs, re, qs, qe;
	int32_t rs1, qs1, re1, qe1;
	int8_t mat[25];

	if (is_sr) assert(!(mi->flag & MM_I_HPC)); // HPC won't work with SR because with HPC we can't easily tell if there is a gap

	r2->cnt = 0;
	if (r->cnt == 0) return;
	ksw_gen_ts_mat(5, mat, opt->a, opt->b, opt->transition, opt->sc_ambi);
	bw = (int)(opt->bw * 1.5 + 1.);
	bw_long = (int)(opt->bw_long * 1.5 + 1.);
	if (bw_long < bw) bw_long = bw;

	if (is_sr && !(mi->flag & MM_I_HPC)) {
		mm_max_stretch(r, a, &as1, &cnt1);
		rs = (int32_t)a[as1].x + 1 - (int32_t)(a[as1].y>>32&0xff);
		qs = (int32_t)a[as1].y + 1 - (int32_t)(a[as1].y>>32&0xff);
		re = (int32_t)a[as1+cnt1-1].x + 1;
		qe = (int32_t)a[as1+cnt1-1].y + 1;
	} else {
		if (!(opt->flag & MM_F_NO_END_FLT)) {
			if (is_splice)
				mm_fix_bad_ends_splice(km, opt, mi, r, mat, qlen, qseq0, a, &as1, &cnt1);
			else
				mm_fix_bad_ends(r, a, opt->bw, opt->min_chain_score * 2, &as1, &cnt1);
		} else as1 = r->as, cnt1 = r->cnt;
		mm_filter_bad_seeds(km, as1, cnt1, a, 10, 40, opt->max_gap>>1, 10);
		mm_filter_bad_seeds_alt(km, as1, cnt1, a, 30, opt->max_gap>>1);
		mm_adjust_minier(mi, qseq0, &a[as1], &rs, &qs);
		mm_adjust_minier(mi, qseq0, &a[as1 + cnt1 - 1], &re, &qe);
	}
	assert(cnt1 > 0);

	if (is_splice) {
		if (splice_flag & MM_F_SPLICE_FOR) ksw_flag |= rev? KSW_EZ_SPLICE_REV : KSW_EZ_SPLICE_FOR;
		if (splice_flag & MM_F_SPLICE_REV) ksw_flag |= rev? KSW_EZ_SPLICE_FOR : KSW_EZ_SPLICE_REV;
		if (opt->flag & MM_F_SPLICE_FLANK) ksw_flag |= KSW_EZ_SPLICE_FLANK;
		if (mi->spsc) ksw_flag |= KSW_EZ_SPLICE_SCORE;
	}

	/* Look for the start and end of regions to perform DP. This sounds easy
	 * but is in fact tricky. Excessively small regions lead to unnecessary
	 * clippings and lose alignable sequences. Excessively large regions
	 * occasionally lead to large overlaps between two chains and may cause
	 * loss of alignments in corner cases. */
	if (is_sr) {
		qs0 = 0, qe0 = qlen;
		l = qs;
		l += l * opt->a + opt->end_bonus > opt->q? (l * opt->a + opt->end_bonus - opt->q) / opt->e : 0;
		rs0 = rs - l > 0? rs - l : 0;
		l = qlen - qe;
		l += l * opt->a + opt->end_bonus > opt->q? (l * opt->a + opt->end_bonus - opt->q) / opt->e : 0;
		re0 = re + l < (int32_t)mi->seq[rid].len? re + l : mi->seq[rid].len;
	} else {
		// compute rs0 and qs0
		rs0 = (int32_t)a[r->as].x + 1 - (int32_t)(a[r->as].y>>32&0xff);
		qs0 = (int32_t)a[r->as].y + 1 - (int32_t)(a[r->as].y>>32&0xff);
		if (rs0 < 0) rs0 = 0; // this may happen when HPC is in use
		assert(qs0 >= 0); // this should never happen, or it is logic error
		rs1 = qs1 = 0;
		for (i = r->as - 1, l = 0; i >= 0 && a[i].x>>32 == a[r->as].x>>32; --i) { // inspect nearby seeds
			int32_t x = (int32_t)a[i].x + 1 - (int32_t)(a[i].y>>32&0xff);
			int32_t y = (int32_t)a[i].y + 1 - (int32_t)(a[i].y>>32&0xff);
			if (x < rs0 && y < qs0) {
				if (++l > opt->min_cnt) {
					l = rs0 - x > qs0 - y? rs0 - x : qs0 - y;
					rs1 = rs0 - l, qs1 = qs0 - l;
					if (rs1 < 0) rs1 = 0; // not strictly necessary; better have this guard for explicit
					break;
				}
			}
		}
		if (qs > 0 && rs > 0) {
			l = qs < opt->max_gap? qs : opt->max_gap;
			qs1 = qs1 > qs - l? qs1 : qs - l;
			qs0 = qs0 < qs1? qs0 : qs1; // at least include qs0
			l += l * opt->a > opt->q? (l * opt->a - opt->q) / opt->e : 0;
			l = l < opt->max_gap? l : opt->max_gap;
			l = l < rs? l : rs;
			rs1 = rs1 > rs - l? rs1 : rs - l;
			rs0 = rs0 < rs1? rs0 : rs1;
			rs0 = rs0 < rs? rs0 : rs;
		} else rs0 = rs, qs0 = qs;
		// compute re0 and qe0
		re0 = (int32_t)a[r->as + r->cnt - 1].x + 1;
		qe0 = (int32_t)a[r->as + r->cnt - 1].y + 1;
		re1 = mi->seq[rid].len, qe1 = qlen;
		for (i = r->as + r->cnt, l = 0; i < n_a && a[i].x>>32 == a[r->as].x>>32; ++i) { // inspect nearby seeds
			int32_t x = (int32_t)a[i].x + 1;
			int32_t y = (int32_t)a[i].y + 1;
			if (x > re0 && y > qe0) {
				if (++l > opt->min_cnt) {
					l = x - re0 > y - qe0? x - re0 : y - qe0;
					re1 = re0 + l, qe1 = qe0 + l;
					break;
				}
			}
		}
		if (qe < qlen && re < (int32_t)mi->seq[rid].len) {
			l = qlen - qe < opt->max_gap? qlen - qe : opt->max_gap;
			qe1 = qe1 < qe + l? qe1 : qe + l;
			qe0 = qe0 > qe1? qe0 : qe1; // at least include qe0
			l += l * opt->a > opt->q? (l * opt->a - opt->q) / opt->e : 0;
			l = l < opt->max_gap? l : opt->max_gap;
			l = l < (int32_t)mi->seq[rid].len - re? l : mi->seq[rid].len - re;
			re1 = re1 < re + l? re1 : re + l;
			re0 = re0 > re1? re0 : re1;
		} else re0 = re, qe0 = qe;
	}
	if (a[r->as].y & MM_SEED_SELF) {
		int max_ext = r->qs > r->rs? r->qs - r->rs : r->rs - r->qs;
		if (r->rs - rs0 > max_ext) rs0 = r->rs - max_ext;
		if (r->qs - qs0 > max_ext) qs0 = r->qs - max_ext;
		max_ext = r->qe > r->re? r->qe - r->re : r->re - r->qe;
		if (re0 - r->re > max_ext) re0 = r->re + max_ext;
		if (qe0 - r->qe > max_ext) qe0 = r->qe + max_ext;
	}

	assert(re0 > rs0);
	tseq = (uint8_t*)kmalloc(km, re0 - rs0);
	junc = (uint8_t*)kmalloc(km, re0 - rs0);

	if (is_sr_rna) {
		int32_t max_tlen2 = MM_MAX_QLEN_FLANK * 2 + opt->q2 * 2;
		tseq2 = Kmalloc(km, uint8_t, max_tlen2 * 2);
		junc2 = tseq2 + max_tlen2;
	}

	if (qs > 0 && rs > 0) { // left extension; probably the condition can be changed to "qs > qs0 && rs > rs0"
		if (opt->flag & MM_F_QSTRAND) {
			qseq = &qseq0[0][qs0];
			mm_idx_getseq2(mi, rev, rid, rs0, rs, tseq);
		} else {
			qseq = &qseq0[rev][qs0];
			mm_idx_getseq(mi, rid, rs0, rs, tseq);
		}
		mm_get_junc(mi, rid, rs0, rs, !!(ksw_flag&KSW_EZ_SPLICE_REV), junc);
		mm_seq_rev(qs - qs0, qseq);
		mm_seq_rev(rs - rs0, tseq);
		mm_seq_rev(rs - rs0, junc);
		mm_align_pair(km, opt, qs - qs0, qseq, rs - rs0, tseq, junc, mat, bw, opt->end_bonus, r->split_inv? opt->zdrop_inv : opt->zdrop, ksw_flag|KSW_EZ_EXTZ_ONLY|KSW_EZ_RIGHT|KSW_EZ_REV_CIGAR, ez);
		if (ez->n_cigar > 0) {
			mm_append_cigar(r, ez->n_cigar, ez->cigar);
			r->p->dp_score += ez->max;
		}
		rs1 = rs - (ez->reach_end? ez->mqe_t + 1 : ez->max_t + 1);
		qs1 = qs - (ez->reach_end? qs - qs0 : ez->max_q + 1);
		mm_seq_rev(qs - qs0, qseq);
	} else rs1 = rs, qs1 = qs;
	re1 = rs, qe1 = qs;
	assert(qs1 >= 0 && rs1 >= 0);

	for (i = is_sr? cnt1 - 1 : 1; i < cnt1; ++i) { // gap filling; for short genomic reads, fill from the first seed to the last
		if ((a[as1+i].y & (MM_SEED_IGNORE|MM_SEED_TANDEM)) && i != cnt1 - 1) continue;
		if (is_sr && !(mi->flag & MM_I_HPC)) {
			re = (int32_t)a[as1 + i].x + 1;
			qe = (int32_t)a[as1 + i].y + 1;
		} else mm_adjust_minier(mi, qseq0, &a[as1 + i], &re, &qe);
		re1 = re, qe1 = qe;
		if (i == cnt1 - 1 || (a[as1+i].y&MM_SEED_LONG_JOIN) || (qe - qs >= opt->min_ksw_len && re - rs >= opt->min_ksw_len)) { // gap filling
			int j, bw1 = bw_long, zdrop_code;
			if (a[as1+i].y & MM_SEED_LONG_JOIN)
				bw1 = qe - qs > re - rs? qe - qs : re - rs;
			// perform alignment
			if (opt->flag & MM_F_QSTRAND) {
				qseq = &qseq0[0][qs];
				mm_idx_getseq2(mi, rev, rid, rs, re, tseq);
			} else {
				qseq = &qseq0[rev][qs];
				mm_idx_getseq(mi, rid, rs, re, tseq);
			}
			mm_get_junc(mi, rid, rs, re, !!(ksw_flag&KSW_EZ_SPLICE_REV), junc);
			if (is_sr || (is_sr_rna && qe - qs == re - rs)) { // perform ungapped alignment
				int32_t max_gapped_score = (qe - qs - 2) * opt->a - 2 * (opt->q + opt->e);
				assert(qe - qs == re - rs);
				ksw_reset_extz(ez);
				for (j = 0, ez->score = 0; j < qe - qs; ++j) {
					if (qseq[j] >= 4 || tseq[j] >= 4) ez->score += opt->sc_ambi > 0? -opt->sc_ambi : opt->sc_ambi;
					else ez->score += qseq[j] == tseq[j]? opt->a : -opt->b;
				}
				if (ez->score > max_gapped_score)
					ez->cigar = ksw_push_cigar(km, &ez->n_cigar, &ez->m_cigar, ez->cigar, MM_CIGAR_MATCH, qe - qs);
				else
					mm_align_pair(km, opt, qe - qs, qseq, re - rs, tseq, junc, mat, bw1, -1, opt->zdrop, ksw_flag|KSW_EZ_APPROX_MAX, ez);
			} else { // perform normal gapped alignment
				int32_t skip_full = 0;
				if (is_sr_rna)
					skip_full = mm_align_sr_rna(km, opt, qe - qs, qseq, re - rs, tseq, junc, tseq2, junc2, mat, bw1, -1, opt->zdrop, ksw_flag|KSW_EZ_APPROX_MAX, ez);
				if (!skip_full)
					mm_align_pair(km, opt, qe - qs, qseq, re - rs, tseq, junc, mat, bw1, -1, opt->zdrop, ksw_flag|KSW_EZ_APPROX_MAX, ez); // first pass: with approximate Z-drop
			}
			// test Z-drop and inversion Z-drop
			if ((zdrop_code = mm_test_zdrop(km, opt, qseq, tseq, ez->n_cigar, ez->cigar, mat)) != 0)
				mm_align_pair(km, opt, qe - qs, qseq, re - rs, tseq, junc, mat, bw1, -1, zdrop_code == 2? opt->zdrop_inv : opt->zdrop, ksw_flag, ez); // second pass: lift approximate
			// update CIGAR
			if (ez->n_cigar > 0)
				mm_append_cigar(r, ez->n_cigar, ez->cigar);
			if (ez->zdropped) { // truncated by Z-drop; TODO: sometimes Z-drop kicks in because the next seed placement is wrong. This can be fixed in principle.
				if (!r->p) {
					assert(ez->n_cigar == 0);
					uint32_t capacity = sizeof(mm_extra_t)/4;
					kroundup32(capacity);
					r->p = (mm_extra_t*)calloc(capacity, 4);
					r->p->capacity = capacity;
				}
				for (j = i - 1; j >= 0; --j)
					if ((int32_t)a[as1 + j].x <= rs + ez->max_t)
						break;
				dropped = 1;
				if (j < 0) j = 0;
				r->p->dp_score += ez->max;
				re1 = rs + (ez->max_t + 1);
				qe1 = qs + (ez->max_q + 1);
				if (cnt1 - (j + 1) >= opt->min_cnt) {
					mm_split_reg(r, r2, as1 + j + 1 - r->as, qlen, a, !!(opt->flag&MM_F_QSTRAND));
					if (zdrop_code == 2) r2->split_inv = 1;
				}
				break;
			} else r->p->dp_score += ez->score;
			rs = re, qs = qe;
		}
	}

	if (!dropped && qe < qe0 && re < re0) { // right extension
		if (opt->flag & MM_F_QSTRAND) {
			qseq = &qseq0[0][qe];
			mm_idx_getseq2(mi, rev, rid, re, re0, tseq);
		} else {
			qseq = &qseq0[rev][qe];
			mm_idx_getseq(mi, rid, re, re0, tseq);
		}
		mm_get_junc(mi, rid, re, re0, !!(ksw_flag&KSW_EZ_SPLICE_REV), junc);
		mm_align_pair(km, opt, qe0 - qe, qseq, re0 - re, tseq, junc, mat, bw, opt->end_bonus, opt->zdrop, ksw_flag|KSW_EZ_EXTZ_ONLY, ez);
		if (ez->n_cigar > 0) {
			mm_append_cigar(r, ez->n_cigar, ez->cigar);
			r->p->dp_score += ez->max;
		}
		re1 = re + (ez->reach_end? ez->mqe_t + 1 : ez->max_t + 1);
		qe1 = qe + (ez->reach_end? qe0 - qe : ez->max_q + 1);
	}
	assert(qe1 <= qlen);

	r->rs = rs1, r->re = re1;
	if (!rev || (opt->flag & MM_F_QSTRAND)) r->qs = qs1, r->qe = qe1;
	else r->qs = qlen - qe1, r->qe = qlen - qs1;

	assert(re1 - rs1 <= re0 - rs0);
	if (r->p) {
		if (opt->flag & MM_F_QSTRAND) {
			mm_idx_getseq2(mi, r->rev, rid, rs1, re1, tseq);
			qseq = &qseq0[0][qs1];
		} else {
			mm_idx_getseq(mi, rid, rs1, re1, tseq);
			qseq = &qseq0[r->rev][qs1];
		}
		mm_update_extra(r, qseq, tseq, mat, opt->q, opt->e, opt->flag & MM_F_EQX, !(is_sr || is_sr_rna));
		if (rev && r->p->trans_strand)
			r->p->trans_strand ^= 3; // flip to the read strand
	}

	if (tseq2) kfree(km, tseq2);
	kfree(km, tseq);
	kfree(km, junc);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %r9, %rbp
movq %r8, 0x78(%rsp)
movq %rdx, %r10
movq %rsi, %r9
movq 0x1e0(%rsp), %rax
movq (%rsi), %r8
movl 0x28(%rbp), %esi
movq %rsi, 0x30(%rsp)
movslq %esi, %rbx
movq %rbx, %r14
shlq $0x4, %r14
movq (%rax,%r14), %rax
btl $0xc, %r8d
jae 0x1810c
testb $0x1, 0xc(%r10)
jne 0x1a878
movq 0x1d0(%rsp), %rdx
movl $0x0, 0x4(%rdx)
movl 0x4(%rbp), %edx
testl %edx, %edx
je 0x1a78f
movq %rdx, 0x18(%rsp)
movl %ecx, 0x14(%rsp)
movq %rax, 0xa8(%rsp)
movq %rdi, 0x28(%rsp)
movsbl 0x64(%r9), %esi
movsbl 0x68(%r9), %edx
movsbl 0x7c(%r9), %ecx
movq %r8, 0x80(%rsp)
movsbl 0x80(%r9), %r8d
leaq 0x130(%rsp), %rdi
movq %r9, 0x8(%rsp)
movq %r10, 0x40(%rsp)
callq 0x1a8d5
movq 0x40(%rsp), %r10
movq 0x80(%rsp), %r8
movq 0x8(%rsp), %rsi
movl 0x14(%rsi), %eax
cvtsi2sd %eax, %xmm0
movsd 0x16415(%rip), %xmm1    # 0x2e5a8
mulsd %xmm1, %xmm0
movsd 0x12e89(%rip), %xmm2    # 0x2b028
addsd %xmm2, %xmm0
cvttsd2si %xmm0, %ecx
xorps %xmm0, %xmm0
cvtsi2sdl 0x18(%rsi), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
cvttsd2si %xmm0, %edx
cmpl %ecx, %edx
movq %rcx, 0x158(%rsp)
cmovlel %ecx, %edx
movl %edx, 0x12c(%rsp)
btl $0xc, %r8d
movq %rbp, 0x50(%rsp)
jae 0x1820b
testb $0x1, 0xc(%r10)
jne 0x1820b
movq 0x18(%rsp), %r13
cmpl $0x2, %r13d
jge 0x184f9
movq 0xa8(%rsp), %r15
movq 0x1e0(%rsp), %rcx
movq 0x30(%rsp), %rdx
jmp 0x185ee
btl $0x1c, %r8d
jb 0x18743
testb %r8b, %r8b
js 0x18314
movq 0x18(%rsp), %r9
cmpl $0x3, %r9d
movq 0x1e0(%rsp), %rcx
jl 0x184ef
movl 0x34(%rsi), %edx
addl %edx, %edx
leaq (%r14,%rcx), %rdi
addq $0x18, %rdi
cmpl %eax, %edx
cmovlel %eax, %edx
movzbl -0xc(%rdi), %r8d
addl %eax, %eax
movq 0x30(%rsp), %r10
leal (%r10,%r9), %ecx
decl %ecx
movslq %ecx, %r9
incq %rbx
movq 0xa8(%rsp), %r15
movl %r10d, %ecx
movl %r8d, %r10d
cmpq %r9, %rbx
jge 0x18639
movq (%rdi), %r14
movabsq $0x10000000000, %r11    # imm = 0x10000000000
testq %r11, %r14
jne 0x18639
movq %r14, %r12
shrq $0x20, %r12
movq -0x8(%rdi), %r11
movl %r11d, %ebp
subl %r15d, %ebp
subl -0x10(%rdi), %r14d
cmpl %r14d, %ebp
movslq %r14d, %r15
cmovll %ebp, %r14d
movzbl %r12b, %r12d
movslq %ebp, %r13
subq %r15, %r13
movq %r13, %r15
negq %r15
cmovsq %r13, %r15
leal (%r14,%r10), %ebp
sarl %r10d
cmpl %r10d, %r15d
cmovgl %ebx, %ecx
cmpl %r12d, %r14d
cmovgel %r12d, %r14d
cmpl %eax, %ebp
jge 0x18634
addl %r14d, %r8d
cmpl %edx, %r8d
jge 0x18634
movq 0x50(%rsp), %r10
movl 0x2c(%r10), %r14d
sarl %r14d
addq $0x10, %rdi
incq %rbx
movq %r11, %r15
movl %ebp, %r10d
cmpl %r14d, %r8d
movq 0x8(%rsp), %rsi
jl 0x1826e
jmp 0x18639
cmpl $0x3, 0x18(%rsp)
movq 0x1e0(%rsp), %rcx
jl 0x184ef
addq %rcx, %r14
movl 0x10(%r14), %eax
subl 0xa8(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
callq 0x21e0
movq 0x1e0(%rsp), %rdx
movq 0x8(%rsp), %rsi
movslq 0x28(%rbp), %rax
shlq $0x4, %rax
movzbl 0xc(%rdx,%rax), %ecx
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rsi), %xmm2
addsd %xmm0, %xmm2
ucomisd %xmm1, %xmm2
jbe 0x18409
addq %rdx, %rax
subq $0x8, %rsp
leaq 0x138(%rsp), %rbx
movq 0x30(%rsp), %rdi
movq 0x48(%rsp), %rdx
movq %rbx, %rcx
movl 0x1c(%rsp), %r8d
movq 0x80(%rsp), %r9
pushq %rax
movsd %xmm0, 0x30(%rsp)
callq 0x1b86f
addq $0x10, %rsp
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsbl (%rbx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq 0x8(%rsp), %rax
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rax), %xmm2
divsd %xmm1, %xmm0
movsd 0x20(%rsp), %xmm1
addsd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x18401
movq 0x30(%rsp), %rax
incl %eax
movq %rax, 0x30(%rsp)
movq 0x18(%rsp), %rax
decl %eax
movq %rax, 0x18(%rsp)
movq 0x1e0(%rsp), %rdx
movslq 0x28(%rbp), %rax
movslq 0x4(%rbp), %rcx
addq %rax, %rcx
shlq $0x4, %rcx
movl -0x10(%rdx,%rcx), %eax
subl -0x20(%rdx,%rcx), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
callq 0x21e0
movq 0x1e0(%rsp), %rcx
movslq 0x28(%rbp), %rdx
movslq 0x4(%rbp), %rax
addq %rdx, %rax
shlq $0x4, %rax
movzbl -0x4(%rcx,%rax), %edx
xorps %xmm1, %xmm1
cvtsi2sd %edx, %xmm1
movq 0x8(%rsp), %rsi
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rsi), %xmm2
addsd %xmm0, %xmm2
ucomisd %xmm1, %xmm2
jbe 0x184ef
addq %rcx, %rax
addq $-0x10, %rax
subq $0x8, %rsp
leaq 0x138(%rsp), %rbx
movq 0x30(%rsp), %rdi
movq 0x48(%rsp), %rdx
movq %rbx, %rcx
movl 0x1c(%rsp), %r8d
movq 0x80(%rsp), %r9
pushq %rax
movsd %xmm0, 0x30(%rsp)
callq 0x1b86f
movq 0x18(%rsp), %rsi
addq $0x10, %rsp
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsbl (%rbx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rsi), %xmm2
divsd %xmm1, %xmm0
movsd 0x20(%rsp), %xmm1
addsd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x18743
movq 0x18(%rsp), %rax
decl %eax
jmp 0x1873e
movq 0x28(%rsp), %rbx
jmp 0x18750
movq 0x1e0(%rsp), %rsi
movzbl 0xc(%rsi,%r14), %ecx
movq 0x30(%rsp), %rax
addl %eax, %r13d
incl %eax
movslq %eax, %r8
movslq %r13d, %rax
leaq 0x1(%r8), %rdi
movq %r8, %rdx
shlq $0x4, %rdx
leaq (%rdx,%rsi), %r10
addq $0x8, %r10
movl $0x1, %esi
xorl %r13d, %r13d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq (%r10), %r14
movq %r14, %r11
shrq $0x20, %r11
movl -0x8(%r10), %ebx
movslq 0x30(%rsp), %r15
shlq $0x4, %r15
movq 0x1e0(%rsp), %r12
subl (%r12,%r15), %ebx
movzbl %r11b, %r11d
subl 0x8(%r12,%r15), %r14d
cmpl %ebx, %r14d
jne 0x18584
cmpl %r11d, %ebx
cmovll %ebx, %r11d
addl %r11d, %ecx
incl %esi
movl %r8d, %r11d
movq %r11, 0x30(%rsp)
jmp 0x185a7
movl %r8d, %ebx
subl %esi, %ebx
cmpl %r9d, %ecx
cmovgl %ebx, %edx
cmovgl %esi, %r13d
cmovgl %ecx, %r9d
movl $0x1, %esi
movl %r8d, %ecx
movq %rcx, 0x30(%rsp)
movl %r11d, %ecx
incq %r8
addq $0x10, %r10
cmpq %rax, %r8
jl 0x1853d
cmpq %rax, %rdi
cmovgq %rdi, %rax
subl %esi, %eax
cmpl %r9d, %ecx
cmovgl %eax, %edx
cmovgl %esi, %r13d
movslq %edx, %rbx
movq %rbx, %rax
shlq $0x4, %rax
movq 0x1e0(%rsp), %rcx
movq (%rcx,%rax), %r15
movq 0x8(%rsp), %rsi
movq 0x80(%rsp), %r8
movq 0x40(%rsp), %r10
shlq $0x4, %rbx
movq 0x8(%rcx,%rbx), %r14
movq %r14, %rax
shrq $0x20, %rax
movzbl %al, %eax
subl %eax, %r15d
incl %r15d
subl %eax, %r14d
incl %r14d
movq %rdx, 0x30(%rsp)
leal (%rdx,%r13), %eax
cltq
shlq $0x4, %rax
movl -0x10(%rcx,%rax), %edx
movl -0x8(%rcx,%rax), %r12d
incl %edx
movq %rdx, 0x58(%rsp)
incl %r12d
jmp 0x18da8
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %r8
movq 0x30(%rsp), %r9
leal (%r8,%r9), %ebx
movl %ebx, %edi
subl %ecx, %edi
addl %r9d, %r8d
addl $-0x2, %r8d
cmpl %ecx, %r8d
jle 0x18735
movslq %ebx, %r9
shlq $0x4, %r9
movq 0x1e0(%rsp), %rsi
movzbl -0x4(%rsi,%r9), %r14d
movslq %r8d, %r10
movslq %ecx, %r8
leaq -0x1(%r10), %r9
shlq $0x4, %r10
addq %rsi, %r10
addq $0x18, %r10
movl %ecx, %r11d
notl %r11d
addl %ebx, %r11d
movl %r14d, %ebx
movabsq $0x10000000000, %rsi    # imm = 0x10000000000
movq (%r10), %r15
testq %rsi, %r15
jne 0x1871b
movq %r15, %r12
shrq $0x20, %r12
movl -0x8(%r10), %ebp
subl -0x18(%r10), %ebp
subl -0x10(%r10), %r15d
cmpl %r15d, %ebp
movslq %r15d, %r13
cmovll %ebp, %r15d
movzbl %r12b, %r12d
movslq %ebp, %rbp
subq %r13, %rbp
movq %rbp, %r13
negq %r13
cmovsq %rbp, %r13
leal (%r15,%r14), %ebp
sarl %r14d
cmpl %r14d, %r13d
cmovgl %r11d, %edi
cmpl %r12d, %r15d
cmovgel %r12d, %r15d
cmpl %eax, %ebp
jge 0x1871b
addl %r15d, %ebx
cmpl %edx, %ebx
jge 0x1871b
movq 0x50(%rsp), %r14
movl 0x2c(%r14), %r14d
sarl %r14d
cmpl %r14d, %ebx
jge 0x1871b
leaq -0x1(%r9), %r15
addq $-0x10, %r10
decl %r11d
movl %ebp, %r14d
cmpq %r8, %r9
movq %r15, %r9
jg 0x1869b
movl %ecx, %eax
movq %rax, 0x30(%rsp)
movl %edi, %eax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rbx
movq 0x8(%rsp), %rsi
jmp 0x18748
movl %ecx, %eax
movq %rax, 0x30(%rsp)
movl %edi, %eax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rbx
movq 0x1e0(%rsp), %rcx
movabsq $0x20000000000, %r12    # imm = 0x20000000000
movl 0x1c(%rsi), %ebp
leaq 0x6c(%rsp), %r9
movq %rbx, %rdi
movq 0x30(%rsp), %r15
movl %r15d, %esi
movq 0x18(%rsp), %rdx
movq %rcx, %r14
movl $0xa, %r8d
callq 0x1ba12
movq %rax, %rcx
movslq %r15d, %rax
movq %rax, 0x20(%rsp)
movq %rcx, 0x38(%rsp)
testq %rcx, %rcx
je 0x189b9
sarl %ebp
movl 0x6c(%rsp), %ecx
leaq 0x8(%r14), %rax
movq %rax, 0x110(%rsp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %r11d
xorl %eax, %eax
xorl %r9d, %r9d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %r14, %r8
cmpq %rcx, %rax
je 0x187d0
movslq %esi, %rdx
cmpq %rdx, %rax
jl 0x18820
testl %esi, %esi
jle 0x1880a
movslq %edi, %rdx
movq 0x38(%rsp), %rdi
movslq (%rdi,%rdx,4), %rdx
movl %esi, %esi
movslq (%rdi,%rsi,4), %rsi
cmpl %esi, %edx
jge 0x1880a
subq %rdx, %rsi
addq 0x20(%rsp), %rdx
shlq $0x4, %rdx
addq 0x110(%rsp), %rdx
orq %r12, (%rdx)
addq $0x10, %rdx
decq %rsi
jne 0x187fe
cmpq %rcx, %rax
je 0x1899f
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %r9d, %r9d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl %r9d, 0xe0(%rsp)
movl %edi, 0xd0(%rsp)
movl %esi, 0x60(%rsp)
leaq 0x1(%rax), %rdx
movq %rdx, 0x118(%rsp)
cmpl %edx, %ecx
movq %r11, 0x70(%rsp)
jle 0x1893e
movq 0x38(%rsp), %rdx
movslq (%rdx,%rax,4), %rsi
addq 0x20(%rsp), %rsi
shlq $0x4, %rsi
leaq (%r8,%rsi), %r9
movl -0x8(%r8,%rsi), %edx
movq -0x10(%r8,%rsi), %rsi
leaq 0xa(%rax), %rdi
movl 0x8(%r9), %r10d
movl %esi, %ebx
subl (%r9), %ebx
subl %edx, %r10d
addl %r10d, %ebx
movl %ebx, %r10d
negl %r10d
xorl %r12d, %r12d
testl %ebx, %ebx
cmovgl %r12d, %r10d
cmovlel %r12d, %ebx
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movq %r11, %r14
movq 0x38(%rsp), %r9
movslq (%r9,%r14,4), %r15
addq 0x20(%rsp), %r15
shlq $0x4, %r15
movl 0x8(%r8,%r15), %r11d
movl %r11d, %r9d
subl %edx, %r9d
cmpl %ebp, %r9d
jg 0x18951
addq %r8, %r15
movq (%r15), %r9
movl %r9d, %r8d
subl %esi, %r8d
cmpl %ebp, %r8d
jg 0x18949
subl -0x8(%r15), %r11d
movl -0x10(%r15), %r8d
subl %r9d, %r8d
addl %r11d, %r8d
testl %r8d, %r8d
movl $0x0, %r9d
cmovgl %r8d, %r9d
movl $0x0, %r11d
cmovnsl %r11d, %r8d
addl %r9d, %ebx
subl %r8d, %r10d
leal (%rbx,%r10), %r8d
movl %ebx, %r9d
subl %r10d, %r9d
movl %r9d, %r11d
negl %r11d
cmovnsl %r9d, %r11d
addl %r8d, %r11d
cmpl %r11d, %r12d
cmovlel %r11d, %r12d
cmovll %r14d, %r13d
leaq 0x1(%r14), %r9
cmpl %r9d, %ecx
jle 0x18949
cmpq %rdi, %r14
movq %r9, %r14
movq 0x1e0(%rsp), %r8
jb 0x1889b
jmp 0x18951
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
xorl %r12d, %r12d
jmp 0x18951
movq 0x1e0(%rsp), %r8
cmpl $0x29, %r12d
setge %dl
movl 0xe0(%rsp), %r9d
cmpl %r9d, %r12d
setg %sil
testb %sil, %dl
cmovnel %r12d, %r9d
movl 0x60(%rsp), %esi
cmovnel %r13d, %esi
movl 0xd0(%rsp), %edi
cmovnel %eax, %edi
movq 0x70(%rsp), %r11
incq %r11
movabsq $0x20000000000, %r12    # imm = 0x20000000000
movq 0x118(%rsp), %rax
jmp 0x187c3
movq 0x28(%rsp), %rbx
movq %rbx, %rdi
movq 0x38(%rsp), %rsi
movq %r8, %r14
callq 0x12587
movq 0x30(%rsp), %r15
movq 0x8(%rsp), %rax
movl 0x1c(%rax), %ebp
leaq 0x6c(%rsp), %r9
movq %rbx, %rdi
movl %r15d, %esi
movq 0x18(%rsp), %rdx
movq %r14, %rcx
movl $0x1e, %r8d
callq 0x1ba12
testq %rax, %rax
je 0x18b6e
movl 0x6c(%rsp), %ecx
testl %ecx, %ecx
movq 0x1e0(%rsp), %rsi
jle 0x18b61
sarl %ebp
leaq 0x8(%rsi), %rdx
movq %rdx, 0x38(%rsp)
xorl %edi, %edi
leal 0x1(%rdi), %r9d
cmpl %ecx, %r9d
jge 0x18b4c
movslq %edi, %rdi
movslq (%rax,%rdi,4), %r8
movq 0x30(%rsp), %rdx
leal (%r8,%rdx), %r10d
movslq %r10d, %r10
shlq $0x4, %r10
movl (%rsi,%r10), %ebx
movl 0x8(%rsi,%r10), %r11d
movl -0x8(%rsi,%r10), %r14d
addl %ebx, %r14d
movl %r11d, %r15d
subl %r14d, %r15d
addl -0x10(%rsi,%r10), %r15d
movl %r15d, %r10d
negl %r10d
cmovsl %r15d, %r10d
incq %rdi
movslq (%rax,%rdi,4), %r13
addq 0x20(%rsp), %r13
shlq $0x4, %r13
movq 0x1e0(%rsp), %rsi
movl 0x8(%rsi,%r13), %edx
movl %edx, %r15d
subl %r11d, %r15d
cmpl %ebp, %r15d
jg 0x18aeb
addq %rsi, %r13
movq (%r13), %r15
movl %r15d, %r12d
subl %ebx, %r12d
cmpl %ebp, %r12d
jg 0x18aeb
movq -0x8(%r13), %r12
movl %edx, %r14d
subl %r12d, %r14d
movl -0x10(%r13), %r13d
movl %r13d, %esi
subl %r15d, %esi
addl %r14d, %esi
movq %r12, %r14
shrq $0x20, %r14
movzbl %r14b, %r14d
subl %ebx, %r13d
addl %r14d, %r13d
subl %r11d, %r12d
addl %r14d, %r12d
cmpl %r12d, %r13d
cmovll %r13d, %r12d
movl %esi, %r11d
negl %r11d
cmovsl %esi, %r11d
addl %r11d, %r10d
cmpl %r10d, %r12d
jg 0x18aeb
incq %rdi
movl %r11d, %r10d
movl %r15d, %ebx
movl %edx, %r11d
cmpq %rdi, %rcx
jne 0x18a56
movl %ecx, %edi
cmpl %r9d, %edi
movabsq $0x20000000000, %rsi    # imm = 0x20000000000
jle 0x18b51
movslq %edi, %rdx
movslq -0x4(%rax,%rdx,4), %r9
cmpl %r9d, %r8d
jge 0x18b27
movq %r9, %r10
subq %r8, %r10
addq 0x20(%rsp), %r8
shlq $0x4, %r8
addq 0x38(%rsp), %r8
orq %rsi, (%r8)
addq $0x10, %r8
decq %r10
jne 0x18b1b
addl 0x30(%rsp), %r9d
movslq %r9d, %rdx
shlq $0x4, %rdx
movq 0x1e0(%rsp), %rsi
movabsq $0x10000000000, %r8     # imm = 0x10000000000
orq %r8, 0x8(%rsi,%rdx)
jmp 0x18b59
movl %r9d, %edi
jmp 0x18b59
movq 0x1e0(%rsp), %rsi
cmpl %ecx, %edi
jl 0x18a09
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x12587
movq 0x20(%rsp), %rax
shlq $0x4, %rax
movq 0x1e0(%rsp), %rdx
leaq (%rdx,%rax), %rcx
movq 0x40(%rsp), %r10
testb $0x1, 0xc(%r10)
movq (%rdx,%rax), %r15
jne 0x18be1
movl 0x8(%r10), %eax
sarl %eax
subl %eax, %r15d
movl 0x8(%rcx), %r14d
subl %eax, %r14d
movq 0x18(%rsp), %r13
movq 0x30(%rsp), %rcx
addl %r13d, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
movl -0x10(%rdx,%rcx), %esi
movl -0x8(%rdx,%rcx), %r12d
subl %eax, %esi
movq %rsi, 0x58(%rsp)
subl %eax, %r12d
movq 0x50(%rsp), %rbp
movq 0x8(%rsp), %rsi
movq 0x80(%rsp), %r8
jmp 0x18da8
movq %r15, %rax
shrq $0x3f, %rax
movq 0x78(%rsp), %rdx
movq (%rdx,%rax,8), %rax
movq 0x8(%rcx), %r14
movl %r14d, %ecx
movslq %ecx, %rdx
movb (%rax,%rdx), %dl
testl %r14d, %r14d
movl $0x1, %esi
cmovlel %r14d, %esi
incl %r14d
movq 0x50(%rsp), %rbp
cmpl $0x2, %ecx
jl 0x18c29
leaq -0x1(%rcx), %rdi
decl %r14d
cmpb %dl, -0x1(%rax,%rcx)
movq %rdi, %rcx
je 0x18c12
jmp 0x18c2c
movl %esi, %r14d
movq %r15, %rcx
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq 0x20(%r10), %rdx
movq 0x28(%r10), %rax
leaq (%rcx,%rcx,2), %rcx
movq 0x8(%rdx,%rcx,8), %rdi
movl %r15d, %esi
addq %rdi, %rsi
movq %rsi, %rcx
sarq $0x3, %rcx
movl (%rax,%rcx,4), %r8d
leal (,%rsi,4), %ecx
shrl %cl, %r8d
leaq -0x1(%rdi), %r10
leal (%rdi,%r15), %ecx
leal -0x4(,%rcx,4), %r11d
movq %rsi, %r9
cmpq %rdi, %r9
jle 0x18ca0
decq %r9
movq %r9, %rcx
sarq $0x3, %rcx
movl (%rax,%rcx,4), %ebx
movl %r11d, %ecx
andb $0x1c, %cl
shrl %cl, %ebx
xorl %r8d, %ebx
addl $-0x4, %r11d
testb $0xf, %bl
je 0x18c78
jmp 0x18ca3
movq %r10, %r9
subl %esi, %r9d
addl %r9d, %r15d
incl %r15d
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rsi
addl %esi, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
movq 0x1e0(%rsp), %rdi
movq -0x10(%rdi,%rcx), %rsi
movq -0x8(%rdi,%rcx), %r12
movq %rsi, %rcx
shrq $0x3f, %rcx
movq 0x78(%rsp), %rdi
movq (%rdi,%rcx,8), %rcx
movl %r12d, %edi
movslq %edi, %r8
movb (%rcx,%r8), %r8b
testl %r12d, %r12d
movl $0x1, %r9d
cmovlel %r12d, %r9d
incl %r12d
cmpl $0x2, %edi
jl 0x18d13
leaq -0x1(%rdi), %r10
decl %r12d
cmpb %r8b, -0x1(%rcx,%rdi)
movq %r10, %rdi
je 0x18cfb
jmp 0x18d16
movl %r9d, %r12d
movq %rsi, %rcx
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq (%rcx,%rcx,2), %rcx
movq 0x8(%rdx,%rcx,8), %rdi
movl %esi, %edx
addq %rdi, %rdx
movq %rdx, %rcx
sarq $0x3, %rcx
movl (%rax,%rcx,4), %r8d
leal (,%rdx,4), %ecx
shrl %cl, %r8d
leaq -0x1(%rdi), %r10
leal (%rdi,%rsi), %ecx
leal -0x4(,%rcx,4), %r11d
movq %rdx, %r9
cmpq %rdi, %r9
jle 0x18d80
decq %r9
movq %r9, %rcx
sarq $0x3, %rcx
movl (%rax,%rcx,4), %ebx
movl %r11d, %ecx
andb $0x1c, %cl
shrl %cl, %ebx
xorl %r8d, %ebx
addl $-0x4, %r11d
testb $0xf, %bl
je 0x18d58
jmp 0x18d83
movq %r10, %r9
subl %edx, %r9d
leal (%rsi,%r9), %eax
incl %eax
movq %rax, 0x58(%rsp)
movq 0x8(%rsp), %rsi
movq 0x80(%rsp), %r8
movq 0x40(%rsp), %r10
movq 0x18(%rsp), %r13
movq %r13, 0x18(%rsp)
testl %r13d, %r13d
movq 0xa8(%rsp), %rax
jle 0x1a7dd
movq %rax, %rcx
shrq $0x3f, %rcx
movq %rcx, 0xc0(%rsp)
xorl %ecx, %ecx
testb %r8b, %r8b
jns 0x18e42
movl 0x1f0(%rsp), %ecx
xorl %eax, %eax
cmpq $0x0, 0xa8(%rsp)
setns %al
movq 0xc0(%rsp), %rdx
shll $0x8, %edx
movl $0x100, %r8d            # imm = 0x100
addl %r8d, %edx
xorl %edi, %edi
btl $0x8, %ecx
cmovael %edi, %edx
shll $0x8, %eax
addl %r8d, %eax
movq 0x80(%rsp), %r8
btl $0x9, %ecx
cmovael %edi, %eax
orl %edx, %eax
movl (%rsi), %ecx
shrl $0x8, %ecx
andl $0x400, %ecx            # imm = 0x400
cmpq $0x0, 0x40(%r10)
leal (%rax,%rcx), %edx
leal 0x1000(%rax,%rcx), %ecx
movq 0xa8(%rsp), %rax
cmovel %edx, %ecx
movq %rcx, 0xb0(%rsp)
shrq $0x20, %rax
movq %rax, 0x48(%rsp)
btl $0xc, %r8d
movq %r15, 0x70(%rsp)
movq %r14, 0x20(%rsp)
movq %r12, 0xb8(%rsp)
jb 0x1910a
movslq 0x28(%rbp), %rsi
movq %rsi, %rdx
shlq $0x4, %rdx
movq 0x1e0(%rsp), %rax
movq (%rax,%rdx), %rdi
movq 0x8(%rax,%rdx), %rax
movq %rax, %rcx
shrq $0x20, %rcx
movzbl %cl, %ecx
movl %edi, %r8d
subl %ecx, %r8d
incl %r8d
subl %ecx, %eax
xorl %r9d, %r9d
testl %r8d, %r8d
cmovlel %r9d, %r8d
incl %eax
js 0x1a897
movl $0x0, %ecx
testl %esi, %esi
jle 0x18f32
leaq 0x1(%rsi), %rcx
movq 0x1e0(%rsp), %r9
addq %r9, %rdx
addq $-0x8, %rdx
xorl %r9d, %r9d
xorl %r10d, %r10d
movq -0x8(%rdx), %rbx
movq %rbx, %r11
xorq %rdi, %r11
shrq $0x20, %r11
jne 0x18f30
movq (%rdx), %r11
movq %r11, %r14
shrq $0x20, %r14
movzbl %r14b, %r14d
subl %r14d, %ebx
incl %ebx
movl %r8d, %ebp
subl %ebx, %ebp
jle 0x18f1e
subl %r14d, %r11d
incl %r11d
movl %eax, %ebx
subl %r11d, %ebx
jle 0x18f1e
movq 0x8(%rsp), %r11
cmpl 0x30(%r11), %r10d
jge 0x1a50f
incl %r10d
decq %rcx
addq $-0x10, %rdx
cmpq $0x1, %rcx
movq 0x50(%rsp), %rbp
ja 0x18ed5
xorl %ecx, %ecx
movl 0x1d8(%rsp), %r10d
movl %r15d, %r14d
movq 0x20(%rsp), %rdx
movl %edx, 0x60(%rsp)
testl %edx, %edx
jle 0x18fd0
movl %r15d, %r14d
movq 0x20(%rsp), %rdx
movl %edx, 0x60(%rsp)
testl %r15d, %r15d
jle 0x18fd0
movq 0x8(%rsp), %rdx
movl 0x1c(%rdx), %r11d
movq 0x20(%rsp), %r14
cmpl %r11d, %r14d
movl %r11d, %ebx
cmovll %r14d, %ebx
subl %ebx, %r14d
cmpl %r14d, %ecx
cmovgl %ecx, %r14d
cmpl %r14d, %eax
cmovll %eax, %r14d
movl %r14d, 0x60(%rsp)
movl 0x64(%rdx), %ecx
imull %ebx, %ecx
xorl %eax, %eax
subl 0x6c(%rdx), %ecx
jle 0x18fa5
movl %ecx, %eax
cltd
movq 0x8(%rsp), %rcx
idivl 0x70(%rcx)
addl %ebx, %eax
cmpl %r11d, %eax
cmovgel %r11d, %eax
cmpl %r15d, %eax
cmovgel %r15d, %eax
movl %r15d, %r14d
subl %eax, %r14d
cmpl %r14d, %r9d
cmovgl %r9d, %r14d
cmpl %r14d, %r8d
cmovll %r8d, %r14d
cmpl %r15d, %r14d
cmovgel %r15d, %r14d
movslq 0x4(%rbp), %rdx
addq %rsi, %rdx
movq %rdx, %r12
shlq $0x4, %r12
movq 0x1e0(%rsp), %rax
movl -0x10(%rax,%r12), %r9d
movl -0x8(%rax,%r12), %ebx
leal 0x1(%r9), %ecx
leal 0x1(%rbx), %eax
movq 0x40(%rsp), %r8
movq 0x20(%r8), %r8
movq 0x48(%rsp), %r11
andl $0x7fffffff, %r11d      # imm = 0x7FFFFFFF
leaq (%r11,%r11,2), %r11
movl 0x10(%r8,%r11,8), %r8d
movl %r8d, %r11d
movl 0x14(%rsp), %r13d
movl %r13d, %r15d
cmpl %r10d, %edx
jge 0x19083
movslq %r10d, %r10
movq 0x1e0(%rsp), %r11
addq %r12, %r11
addq $0x8, %r11
xorl %ebp, %ebp
movq 0x8(%rsp), %r13
movq -0x8(%r11), %r12
movq %r12, %r15
xorq %rdi, %r15
shrq $0x20, %r15
jne 0x19073
subl %r9d, %r12d
jle 0x19067
movl (%r11), %r15d
subl %ebx, %r15d
jle 0x19067
cmpl 0x30(%r13), %ebp
jge 0x1a7a1
incl %ebp
incq %rdx
addq $0x10, %r11
cmpq %r10, %rdx
jl 0x1903e
movl %r8d, %r11d
movl 0x14(%rsp), %r13d
movl %r13d, %r15d
movq 0x50(%rsp), %rbp
movl %r13d, %edi
movq 0xb8(%rsp), %r12
subl %r12d, %edi
jle 0x1919c
movq 0x58(%rsp), %r10
subl %r10d, %r8d
jle 0x19197
movq 0x8(%rsp), %rdx
movl 0x1c(%rdx), %r9d
cmpl %r9d, %edi
cmovgel %r9d, %edi
leal (%rdi,%r12), %ebx
cmpl %ebx, %r15d
cmovll %r15d, %ebx
cmpl %ebx, %eax
cmovgl %eax, %ebx
movl 0x64(%rdx), %eax
imull %edi, %eax
subl 0x6c(%rdx), %eax
movl $0x0, %edx
jle 0x190e6
cltd
movq 0x8(%rsp), %r10
idivl 0x70(%r10)
movq 0x58(%rsp), %r10
movl %eax, %edx
addl %edi, %edx
cmpl %r9d, %edx
cmovgel %r9d, %edx
cmpl %r8d, %edx
cmovgel %r8d, %edx
addl %r10d, %edx
cmpl %edx, %r11d
cmovll %r11d, %edx
cmpl %edx, %ecx
cmovgl %ecx, %edx
jmp 0x191a6
movl 0x64(%rsi), %r9d
movl 0x6c(%rsi), %edi
movl %r9d, %eax
imull %r14d, %eax
movl 0x98(%rsi), %r8d
addl %r8d, %eax
xorl %ecx, %ecx
movl $0x0, %edx
subl %edi, %eax
jle 0x19133
cltd
idivl 0x70(%rsi)
movl %eax, %edx
addl %r14d, %edx
movl %r15d, %r14d
subl %edx, %r14d
testl %r14d, %r14d
cmovlel %ecx, %r14d
movl 0x14(%rsp), %edx
subl %r12d, %edx
imull %edx, %r9d
addl %r8d, %r9d
subl %edi, %r9d
jle 0x19163
movl %r9d, %eax
movl %edx, %ecx
cltd
idivl 0x70(%rsi)
movl %ecx, %edx
movl %eax, %ecx
addl 0x58(%rsp), %edx
addl %ecx, %edx
movq 0x20(%r10), %rax
movq 0x48(%rsp), %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq (%rcx,%rcx,2), %rcx
movl 0x10(%rax,%rcx,8), %eax
cmpl %eax, %edx
cmovgel %eax, %edx
movslq 0x28(%rbp), %rsi
movl $0x0, 0x60(%rsp)
movl 0x14(%rsp), %ebx
jmp 0x191a6
movl %r10d, %edx
jmp 0x191a3
movq 0x58(%rsp), %rax
movl %eax, %edx
movl %r12d, %ebx
movq 0x80(%rsp), %r8
shlq $0x4, %rsi
movq 0x1e0(%rsp), %rax
testb $0x8, 0xd(%rax,%rsi)
je 0x1921d
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %ecx
movl %edx, %edi
movl %ecx, %edx
subl %eax, %edx
movl %edx, %esi
negl %esi
cmovsl %edx, %esi
movl %eax, %edx
subl %r14d, %edx
subl %esi, %eax
cmpl %esi, %edx
cmovgl %eax, %r14d
movl %ecx, %eax
movl 0x60(%rsp), %edx
subl %edx, %eax
subl %esi, %ecx
cmpl %esi, %eax
cmovgl %ecx, %edx
movl %edx, 0x60(%rsp)
movl 0x14(%rbp), %eax
movl 0x1c(%rbp), %ecx
movl %eax, %edx
subl %ecx, %edx
movl %edx, %esi
negl %esi
cmovsl %edx, %esi
movl %edi, %edx
subl %ecx, %edx
addl %esi, %ecx
cmpl %esi, %edx
movl %edi, %edx
cmovgl %ecx, %edx
movl %ebx, %ecx
subl %eax, %ecx
addl %esi, %eax
cmpl %esi, %ecx
cmovgl %eax, %ebx
movq 0x28(%rsp), %r15
movl %ebx, 0xd8(%rsp)
movl %edx, 0x8c(%rsp)
subl %r14d, %edx
jle 0x1a7fc
movabsq $0x8000000080, %r13     # imm = 0x8000000080
movq %r8, %rbp
andq %r13, %rbp
movl %edx, 0x124(%rsp)
movslq %edx, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x1264d
movq %rax, %rbx
movq %r15, %rdi
movq %r12, %rsi
callq 0x1264d
movq %rax, 0x90(%rsp)
movq %rbp, 0x168(%rsp)
cmpq %r13, %rbp
movq %rbx, 0x38(%rsp)
je 0x1929b
xorl %esi, %esi
movq $0x0, 0xf0(%rsp)
movq 0x8(%rsp), %r8
jmp 0x192d6
movq 0x8(%rsp), %r12
movslq 0x74(%r12), %rax
leaq 0xc8(,%rax,2), %rbx
addq %rax, %rax
leaq 0x190(,%rax,2), %rsi
movq %r15, %rdi
callq 0x1264d
movq %r12, %r8
movslq %ebx, %rsi
movq 0x38(%rsp), %rbx
movq %rax, 0xf0(%rsp)
addq %rax, %rsi
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x58(%rsp), %r10
movq %rsi, 0x180(%rsp)
movq 0x1e8(%rsp), %r13
movq 0x48(%rsp), %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, 0x48(%rsp)
movq 0x70(%rsp), %r15
movl %r15d, %eax
movq 0x20(%rsp), %rcx
movl %ecx, %r9d
testl %ecx, %ecx
jle 0x195e4
movl %r15d, %eax
movq 0x20(%rsp), %rcx
movl %ecx, %r9d
testl %r15d, %r15d
jle 0x195e4
movslq 0x60(%rsp), %r12
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%r8)
jne 0x1936d
movq 0x78(%rsp), %rax
movq 0xc0(%rsp), %rcx
addq (%rax,%rcx,8), %r12
movq 0x48(%rsp), %rsi
movl %r14d, %edx
movl %r15d, %ecx
movq %rbx, %r8
movq %rdi, %rbx
callq 0x71d0
jmp 0x19393
movq 0x78(%rsp), %rax
addq (%rax), %r12
movq 0xc0(%rsp), %rsi
movq 0x48(%rsp), %rdx
movl %r14d, %ecx
movl %r15d, %r8d
movq %rbx, %r9
movq %rdi, %rbx
callq 0x72e4
cmpq $0x0, 0x40(%rbx)
movq %rbx, %rdi
movq 0x90(%rsp), %r9
je 0x193cf
movq 0xb0(%rsp), %rax
movl %eax, %r8d
shrl $0x9, %r8d
andl $0x1, %r8d
movslq %r14d, %rdx
movl %r15d, %ecx
movq 0x48(%rsp), %rsi
callq 0xa43b
movq 0x38(%rsp), %rbx
jmp 0x19403
cmpq $0x0, 0x38(%rdi)
movq 0x38(%rsp), %rbx
je 0x193f0
movq 0x48(%rsp), %rsi
movl %r14d, %edx
movl %r15d, %ecx
movq %r9, %r8
callq 0x95d0
jmp 0x19403
movl %r15d, %eax
subl %r14d, %eax
movslq %eax, %rdx
movq %r9, %rdi
xorl %esi, %esi
callq 0x21b0
movq 0x20(%rsp), %r13
movl 0x60(%rsp), %eax
subl %eax, %r13d
movl %eax, %r15d
notl %r15d
cmpl $0x2, %r13d
movq 0x8(%rsp), %r11
jb 0x1944b
movl %r13d, %eax
shrl %eax
movq 0x20(%rsp), %rcx
addl %r15d, %ecx
xorl %edx, %edx
movb (%r12,%rdx), %sil
movl %ecx, %edi
movb (%r12,%rdi), %r8b
movb %r8b, (%r12,%rdx)
movb %sil, (%r12,%rdi)
incq %rdx
decl %ecx
cmpq %rdx, %rax
jne 0x1942f
movq 0x70(%rsp), %rax
movl %eax, %r8d
subl %r14d, %r8d
cmpl $0x2, %r8d
movq 0x90(%rsp), %r9
jb 0x194bf
movl %r8d, %eax
shrl %eax
notl %r14d
movq 0x70(%rsp), %rcx
addl %r14d, %ecx
xorl %edx, %edx
movb (%rbx,%rdx), %sil
movl %ecx, %edi
movb (%rbx,%rdi), %r9b
movb %r9b, (%rbx,%rdx)
movb %sil, (%rbx,%rdi)
incq %rdx
decl %ecx
cmpq %rdx, %rax
jne 0x19476
addl 0x70(%rsp), %r14d
xorl %ecx, %ecx
movq 0x90(%rsp), %r9
movb (%r9,%rcx), %dl
movl %r14d, %esi
movb (%r9,%rsi), %dil
movb %dil, (%r9,%rcx)
movb %dl, (%r9,%rsi)
incq %rcx
decl %r14d
cmpq %rcx, %rax
jne 0x194a1
movl 0x98(%r11), %eax
movq 0x50(%rsp), %rcx
movl 0x3c(%rcx), %ecx
shrl $0x16, %ecx
andl $0x4, %ecx
movl 0x90(%r11,%rcx), %r10d
movq %r11, %rsi
movq 0xb0(%rsp), %r11
orl $0xc2, %r11d
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movl %r13d, %edx
movq %r12, %rcx
movq %r9, %r14
movq %rbx, %r9
movq 0x1f0(%rsp), %rbp
pushq %rbp
pushq %r11
pushq %r10
pushq %rax
pushq 0x180(%rsp)
leaq 0x160(%rsp), %rax
pushq %rax
pushq %r14
callq 0x1a9c0
addq $0x40, %rsp
movl 0x24(%rbp), %esi
testl %esi, %esi
jle 0x19553
movq 0x30(%rbp), %rdx
movq 0x50(%rsp), %r14
movq %r14, %rdi
callq 0x1ad36
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl (%rbp), %eax
movq 0x48(%r14), %rcx
addl %eax, 0x4(%rcx)
movl 0x28(%rbp), %eax
xorl %ecx, %ecx
testl %eax, %eax
setne %cl
movl 0x8(%rbp,%rcx,8), %eax
notl %eax
movq 0x20(%rsp), %rcx
je 0x19574
movl 0x60(%rsp), %r9d
subl %ecx, %r9d
jmp 0x1957b
movl 0x4(%rbp), %r9d
notl %r9d
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x58(%rsp), %r10
addl 0x70(%rsp), %eax
addl %ecx, %r9d
cmpl $0x2, %r13d
jae 0x195a6
movq 0x1e8(%rsp), %r13
jmp 0x195df
movl %eax, %r11d
shrl %r13d
addl %ecx, %r15d
xorl %eax, %eax
movb (%r12,%rax), %cl
movl %r15d, %edx
movb (%r12,%rdx), %sil
movb %sil, (%r12,%rax)
movb %cl, (%r12,%rdx)
incq %rax
decl %r15d
cmpq %rax, %r13
jne 0x195b1
movq 0x18(%rsp), %rdx
movq 0x1e8(%rsp), %r13
movl %r11d, %eax
movq 0x70(%rsp), %r15
movl %r9d, 0x120(%rsp)
testl %r9d, %r9d
movq 0xb8(%rsp), %r12
js 0x1a81b
testl %eax, %eax
js 0x1a81b
movl %eax, 0xe8(%rsp)
leal -0x1(%rdx), %eax
btl $0xc, 0x80(%rsp)
movl $0x1, %ecx
movl %eax, %ebp
cmovael %ecx, %ebp
cmpl %edx, %ebp
movq 0x20(%rsp), %r9
jge 0x1a2c7
movq 0xb0(%rsp), %rcx
movl %ecx, %esi
shrl $0x9, %esi
andl $0x1, %esi
movl %esi, 0x128(%rsp)
orl $0x8, %ecx
movq %rcx, 0x160(%rsp)
movslq %ebp, %rsi
movslq 0x30(%rsp), %rcx
cltq
movq %rax, 0x178(%rsp)
decl %ebp
movq %rcx, %rax
movq %rcx, 0x188(%rsp)
shlq $0x4, %rax
movq %rsi, %rcx
shlq $0x4, %rcx
addq %rax, %rcx
movq 0x1e0(%rsp), %rax
addq %rcx, %rax
addq $-0x10, %rax
movq %rax, 0x170(%rsp)
movl %r9d, %eax
movq %rax, 0xf8(%rsp)
movl %r15d, %eax
movq %rax, 0xa0(%rsp)
movq 0x188(%rsp), %rax
leaq (%rsi,%rax), %rcx
shlq $0x4, %rcx
movq 0x1e0(%rsp), %rax
movq 0x8(%rax,%rcx), %rax
movabsq $0x60000000000, %r11    # imm = 0x60000000000
testq %r11, %rax
je 0x196e5
cmpq 0x178(%rsp), %rsi
jne 0x19fb5
movq %rsi, 0x100(%rsp)
btl $0xc, 0x80(%rsp)
movl 0xc(%rdi), %edx
movq 0x1e0(%rsp), %rsi
movq (%rsi,%rcx), %r10
jb 0x1971c
testb $0x1, %dl
jne 0x19732
movl 0x8(%rdi), %ecx
sarl %ecx
subl %ecx, %r10d
movl %eax, %r12d
subl %ecx, %r12d
jmp 0x19728
testb $0x1, %dl
jne 0x19732
incl %r10d
leal 0x1(%rax), %r12d
movq 0x18(%rsp), %rdx
jmp 0x19810
movq %r10, %rcx
shrq $0x3f, %rcx
movq 0x78(%rsp), %rdx
movq (%rdx,%rcx,8), %rcx
movslq %eax, %r12
movb (%rcx,%r12), %dl
movl %r12d, %r9d
testl %r12d, %r12d
movl $0x1, %esi
cmovlel %r12d, %esi
incl %r12d
cmpl $0x2, %r9d
jl 0x19774
leaq -0x1(%r9), %r8
decl %r12d
cmpb %dl, -0x1(%rcx,%r9)
movq %r8, %r9
je 0x1975b
jmp 0x19777
movl %esi, %r12d
movq %r10, %rcx
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq 0x20(%rdi), %rdx
movq 0x28(%rdi), %rsi
leaq (%rcx,%rcx,2), %rcx
movq 0x8(%rdx,%rcx,8), %rdi
movl %r10d, %edx
addq %rdi, %rdx
movq %rdx, %rcx
sarq $0x3, %rcx
movl (%rsi,%rcx,4), %r8d
leal (,%rdx,4), %ecx
shrl %cl, %r8d
movq %r10, %rcx
leaq -0x1(%rdi), %r10
movq %rcx, %r14
addl %edi, %ecx
leal -0x4(,%rcx,4), %r11d
movq %rdx, %r9
cmpq %rdi, %r9
jle 0x197ef
decq %r9
movq %r9, %rcx
sarq $0x3, %rcx
movl (%rsi,%rcx,4), %ebx
movl %r11d, %ecx
andb $0x1c, %cl
shrl %cl, %ebx
xorl %r8d, %ebx
addl $-0x4, %r11d
testb $0xf, %bl
je 0x197c7
jmp 0x197f2
movq %r10, %r9
subl %edx, %r9d
leal (%r14,%r9), %r10d
incl %r10d
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x38(%rsp), %rbx
movl %r12d, %r11d
subl 0xf8(%rsp), %r11d
movq 0x100(%rsp), %rsi
cmpq 0x178(%rsp), %rsi
je 0x19869
movq %rax, %rcx
movabsq $0x10000000000, %r9     # imm = 0x10000000000
andq %r9, %rcx
jne 0x19869
movl 0xa0(%r8), %ecx
cmpl %ecx, %r11d
jl 0x1985e
movl %r10d, %r9d
subl 0xa0(%rsp), %r9d
cmpl %ecx, %r9d
movq %r9, %rcx
jge 0x19873
movl %r10d, %r15d
movl %r12d, %r9d
jmp 0x19fb5
movl %r10d, %ecx
subl 0xa0(%rsp), %ecx
cmpl %ecx, %r11d
movq %rcx, 0xc8(%rsp)
movl %ecx, %edx
movq %r11, 0x98(%rsp)
cmovgl %r11d, %edx
movabsq $0x10000000000, %rcx    # imm = 0x10000000000
testq %rcx, %rax
cmovel 0x12c(%rsp), %edx
movq %rdx, 0x108(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%r8)
movq %r10, 0x58(%rsp)
jne 0x198eb
movq 0x78(%rsp), %rax
movq 0xc0(%rsp), %rcx
movq (%rax,%rcx,8), %r14
movq 0x48(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movl %r10d, %ecx
movq %rbx, %r8
movq %rdi, %rbx
callq 0x71d0
jmp 0x19916
movq 0x78(%rsp), %rax
movq (%rax), %r14
movq 0xc0(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0xa0(%rsp), %rcx
movl %r10d, %r8d
movq %rbx, %r9
movq %rdi, %rbx
callq 0x72e4
cmpq $0x0, 0x40(%rbx)
movq %rbx, %rdi
movq 0x90(%rsp), %rax
movl %ebp, 0xec(%rsp)
je 0x19958
movslq 0xa0(%rsp), %rdx
movslq 0x58(%rsp), %rcx
movq 0x48(%rsp), %rsi
movl 0x128(%rsp), %r8d
movq %rax, %r9
callq 0xa43b
movq 0x38(%rsp), %rbx
jmp 0x19992
cmpq $0x0, 0x38(%rdi)
movq 0x58(%rsp), %rcx
movq 0x38(%rsp), %rbx
je 0x19980
movq 0x48(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq %rax, %r8
callq 0x95d0
jmp 0x19992
movslq 0xc8(%rsp), %rdx
movq %rax, %rdi
xorl %esi, %esi
callq 0x21b0
movslq 0xf8(%rsp), %rax
leaq (%r14,%rax), %r15
btl $0xc, 0x80(%rsp)
movq 0x8(%rsp), %rsi
movq 0x98(%rsp), %r11
movq %r15, 0x70(%rsp)
movq %r12, 0xb8(%rsp)
jb 0x19a0c
movabsq $0x8000000080, %rcx     # imm = 0x8000000080
cmpq %rcx, 0x168(%rsp)
je 0x199f9
movl 0x90(%rsi), %eax
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movl %r11d, %edx
movq %r15, %rcx
movq 0xd0(%rsp), %r8
jmp 0x19b11
movq 0xc8(%rsp), %rcx
movl %ecx, %ebp
subl %r11d, %ebp
jne 0x19fd0
cmpl %r11d, 0xc8(%rsp)
jne 0x1a7be
leal -0x2(%r11), %eax
imull 0x64(%rsi), %eax
movl 0x70(%rsi), %ecx
addl 0x6c(%rsi), %ecx
movq $0x0, 0x24(%r13)
movaps 0x14b79(%rip), %xmm0    # 0x2e5b0
movups %xmm0, (%r13)
movapd 0x14b7c(%rip), %xmm0    # 0x2e5c0
movupd %xmm0, 0x10(%r13)
testl %r11d, %r11d
jle 0x19aa3
movl %r11d, %r10d
xorl %edi, %edi
xorl %edx, %edx
movb (%r15,%rdi), %r8b
cmpb $0x3, %r8b
ja 0x19a6a
movb (%rbx,%rdi), %r9b
cmpb $0x4, %r9b
jb 0x19a80
movl 0x80(%rsi), %r8d
movl %r8d, %r9d
negl %r9d
cmovnsl %r8d, %r9d
addl %r9d, %edx
jmp 0x19a95
cmpb %r9b, %r8b
jne 0x19a8b
movl 0x64(%rsi), %r8d
jmp 0x19a92
xorl %r8d, %r8d
subl 0x68(%rsi), %r8d
addl %r8d, %edx
movl %edx, 0x1c(%r13)
incq %rdi
cmpq %rdi, %r10
jne 0x19a56
jmp 0x19aa5
xorl %edx, %edx
addl %ecx, %ecx
subl %ecx, %eax
cmpl %eax, %edx
jle 0x19af9
movq 0x30(%r13), %rax
xorl %ecx, %ecx
cmpl $0x0, 0x20(%r13)
jne 0x19ae0
movl $0x4, 0x20(%r13)
movl $0x10, %edx
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x12755
movq 0x98(%rsp), %r11
movl 0x24(%r13), %ecx
movl %r11d, %edx
shll $0x4, %edx
leal 0x1(%rcx), %esi
movl %esi, 0x24(%r13)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq %rax, 0x30(%r13)
jmp 0x19b48
movl 0x90(%rsi), %eax
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movl %r11d, %edx
movq %r15, %rcx
movl %r11d, %r8d
movq %rbx, %r9
pushq %r13
pushq 0x170(%rsp)
pushq %rax
pushq $-0x1
pushq 0x130(%rsp)
leaq 0x160(%rsp), %rax
pushq %rax
pushq 0xc8(%rsp)
callq 0x1a9c0
movq 0xd8(%rsp), %r11
addq $0x40, %rsp
movl 0x24(%r13), %eax
movq 0x30(%r13), %rcx
movq %rcx, 0xe0(%rsp)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, 0x6c(%rsp)
movl %ebx, 0xdc(%rsp)
movq %rax, 0xd0(%rsp)
testq %rax, %rax
je 0x19d94
movl $0x80000000, %esi       # imm = 0x80000000
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
xorl %ebp, %ebp
xorl %r9d, %r9d
xorl %r8d, %r8d
xorl %r14d, %r14d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
xorl %r12d, %r12d
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
movq 0xe0(%rsp), %rax
movl (%rax,%rbp,4), %ecx
movl %ecx, %ebx
shrl $0x4, %ebx
movl %ecx, %eax
andl $0xf, %eax
je 0x19c4b
cmpl $0x3, %eax
ja 0x19d3c
movq 0x8(%rsp), %rdi
movl 0x70(%rdi), %r10d
movl %r10d, %ecx
imull %ebx, %ecx
addl 0x6c(%rdi), %ecx
subl %ecx, %r9d
cmpl $0x1, %eax
movl $0x0, %edi
cmovel %ebx, %edi
movl $0x0, %eax
cmovel %eax, %ebx
addl %r14d, %edi
addl %r8d, %ebx
movl %esi, %ecx
subl %r9d, %ecx
jle 0x19d44
movl %ebx, %eax
subl %r11d, %eax
movl 0x6c(%rsp), %r8d
movq %rbp, 0x60(%rsp)
movl %edi, %ebp
subl %r8d, %ebp
movl %eax, %r14d
subl %ebp, %r14d
negl %r14d
subl %ebp, %eax
movq 0x60(%rsp), %rbp
cmovgl %r14d, %eax
imull %r10d, %eax
addl %ecx, %eax
movl %ebx, %ecx
movl %r11d, %r10d
leaq 0xdc(%rsp), %r14
cmpl %r12d, %eax
jg 0x19d5c
jmp 0x19d6c
movq %rbp, 0x60(%rsp)
cmpl $0x10, %ecx
movl %r8d, 0x118(%rsp)
movl %r14d, 0x110(%rsp)
jb 0x19d21
movl %r8d, %edi
movl %r14d, %ebp
movq %rbx, %r10
movl %r9d, %eax
movl %edi, %ecx
movq 0x38(%rsp), %r8
movzbl (%r8,%rcx), %ecx
leaq (%rcx,%rcx,4), %rcx
movl %ebp, %r8d
movzbl (%r15,%r8), %r8d
addq %rsp, %rcx
addq $0x130, %rcx            # imm = 0x130
movsbl (%r8,%rcx), %r9d
addl %eax, %r9d
movl %esi, %ecx
subl %r9d, %ecx
jle 0x19ce8
movl %edi, %r15d
subl %r11d, %r15d
movl 0x6c(%rsp), %r8d
movl %ebp, %eax
subl %r8d, %eax
movl %r15d, %r14d
subl %eax, %r14d
negl %r14d
subl %eax, %r15d
cmovgl %r14d, %r15d
movq 0x8(%rsp), %rax
imull 0x70(%rax), %r15d
addl %ecx, %r15d
movl %edi, %r14d
movl %r11d, %ecx
leaq 0xdc(%rsp), %rax
cmpl %r12d, %r15d
jg 0x19d00
jmp 0x19d0f
movl %r9d, %esi
movl %edi, %r11d
movl %r12d, %r15d
movl %r13d, %r8d
movl %edx, %r14d
movl 0x20(%rsp), %ecx
leaq 0x6c(%rsp), %rax
movl %ebp, (%rax)
movl %r15d, %r12d
movl %r8d, %r13d
movl %r14d, %edx
movl %ecx, 0x20(%rsp)
incl %ebp
incl %edi
decq %r10
movq 0x70(%rsp), %r15
jne 0x19c72
movl 0x118(%rsp), %eax
addl %ebx, %eax
movl 0x110(%rsp), %edi
addl %ebx, %edi
movl %eax, %ebx
movq 0x60(%rsp), %rbp
jmp 0x19d6c
movl %r14d, %edi
movl %r8d, %ebx
jmp 0x19d6c
movl %r9d, %esi
movl %ebx, %r11d
movl %r12d, %eax
movl %r13d, %r8d
movl %edx, %ecx
movl 0x20(%rsp), %r10d
leaq 0x6c(%rsp), %r14
movl %edi, (%r14)
movl %eax, %r12d
movl %r8d, %r13d
movl %ecx, %edx
movl %r10d, 0x20(%rsp)
incq %rbp
movl %ebx, %r8d
movl %edi, %r14d
cmpq 0xd0(%rsp), %rbp
jne 0x19ba5
movl 0xdc(%rsp), %ebx
movq 0x98(%rsp), %r11
jmp 0x19daa
xorl %r12d, %r12d
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
movq 0x8(%rsp), %rsi
testl $0x301080, (%rsi)       # imm = 0x301080
jne 0x19eda
cmpl 0x94(%rsi), %r12d
jle 0x19eda
movl %ebx, %r14d
subl %r13d, %r14d
movl 0x1c(%rsi), %eax
cmpl %eax, %r14d
jge 0x19eda
subl 0x20(%rsp), %edx
movl %edx, 0x60(%rsp)
cmpl %eax, %edx
jge 0x19eda
movslq %r14d, %rsi
movq 0x28(%rsp), %rdi
callq 0x1264d
movq %rax, %r13
testl %r14d, %r14d
movl $0x4, %edi
movq 0x70(%rsp), %r8
jle 0x19e36
movl %r14d, %eax
decl %ebx
xorl %ecx, %ecx
movslq %ebx, %rbx
movb (%r8,%rbx), %dl
movb $0x3, %sil
subb %dl, %sil
cmpb $0x4, %dl
movzbl %sil, %edx
cmovael %edi, %edx
movb %dl, (%r13,%rcx)
incq %rcx
decl %ebx
cmpq %rcx, %rax
jne 0x19e10
movq 0x28(%rsp), %rbx
movq %rbx, %rdi
movl $0x2, %esi
movl %r14d, %edx
movq %r13, %rcx
movl $0x5, %r8d
leaq 0x130(%rsp), %r9
callq 0x1e9d4
movq %rax, %rbp
movslq 0x20(%rsp), %rdx
addq 0x38(%rsp), %rdx
movq 0x8(%rsp), %r15
movl 0x6c(%r15), %ecx
movl 0x70(%r15), %r8d
subq $0x8, %rsp
movq %rax, %rdi
movl 0x68(%rsp), %esi
leaq 0x19c(%rsp), %r9
leaq 0x198(%rsp), %rax
pushq %rax
callq 0x1ebc1
addq $0x10, %rsp
movl %eax, %r14d
movq %rbx, %rdi
movq %r13, %rsi
callq 0x12587
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x12587
movq %r15, %rsi
movl 0x64(%r15), %eax
imull 0x34(%r15), %eax
cmpl %eax, %r14d
jl 0x19ed2
cmpl 0x9c(%rsi), %r14d
jge 0x1a08d
movq 0x98(%rsp), %r11
movl 0x90(%rsi), %eax
xorl %r15d, %r15d
cmpl %eax, %r12d
movq 0x38(%rsp), %rbx
movq 0x1e8(%rsp), %r13
jle 0x19f3d
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movl %r11d, %edx
movq 0x78(%rsp), %rcx
movq 0xd0(%rsp), %r8
movq %rbx, %r9
pushq %r13
pushq 0xc0(%rsp)
pushq %rax
pushq $-0x1
pushq 0x130(%rsp)
leaq 0x160(%rsp), %rax
pushq %rax
pushq 0xc8(%rsp)
callq 0x1a9c0
addq $0x40, %rsp
movl 0x24(%r13), %esi
testl %esi, %esi
movq 0xb8(%rsp), %r12
jle 0x19f5b
movq 0x30(%r13), %rdx
movq 0x50(%rsp), %rdi
callq 0x1ad36
cmpl $0x0, (%r13)
js 0x1a3e1
movl 0x1c(%r13), %eax
movq 0x50(%rsp), %rcx
movq 0x48(%rcx), %rcx
addl %eax, 0x4(%rcx)
movq 0x58(%rsp), %r10
movl %r10d, %eax
movq %rax, 0xa0(%rsp)
movl %r12d, %eax
movq %rax, 0xf8(%rsp)
movl %r10d, %r15d
movl %r12d, %r9d
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rdx
movl 0xec(%rsp), %ebp
movq 0x100(%rsp), %rsi
incq %rsi
incl %ebp
addq $0x10, 0x170(%rsp)
cmpl %esi, %edx
jne 0x196ab
jmp 0x1a2c7
testb $-0x80, (%rsi)
je 0x199d7
cmpl $0x64, %r11d
jg 0x199d7
movslq 0x74(%rsi), %rdi
leal (%rdi,%r11), %edx
addl %edx, %edx
movq 0xc8(%rsp), %rcx
movl %edx, 0x20(%rsp)
subl %edx, %ecx
movl %ecx, 0x60(%rsp)
jl 0x199d7
testl %r11d, %r11d
jle 0x1a0b0
movq %rdi, 0xd0(%rsp)
movl %r11d, %edx
xorl %r9d, %r9d
xorl %ecx, %ecx
movb (%r15,%r9), %dil
cmpb (%rbx,%r9), %dil
sete %r8b
cmpb $0x4, %dil
setb %dil
andb %r8b, %dil
movzbl %dil, %edi
addl %edi, %ecx
incq %r9
cmpq %r9, %rdx
jne 0x1a01e
movq 0xc8(%rsp), %rdi
leal -0x1(%rdi), %r10d
leaq (%r14,%rax), %rdi
decq %rdi
xorl %eax, %eax
movb (%rdi,%rdx), %r8b
movslq %r10d, %r10
cmpb (%rbx,%r10), %r8b
sete %r9b
cmpb $0x4, %r8b
setb %r8b
andb %r9b, %r8b
movzbl %r8b, %r8d
addl %r8d, %eax
decl %r10d
decq %rdx
jne 0x1a058
addl %eax, %ecx
movq 0xd0(%rsp), %rdi
jmp 0x1a0b2
movl 0x94(%rsi), %eax
movb $0x1, %r15b
movq 0x38(%rsp), %rbx
movq 0x1e8(%rsp), %r13
movq 0x98(%rsp), %r11
jmp 0x19ef5
xorl %ecx, %ecx
movl %r11d, %eax
subl %ecx, %eax
cmpl $0x9, %eax
jg 0x199d7
movl 0x90(%rsi), %eax
movq %rax, 0xd0(%rsp)
addq %rdi, %rdi
movslq %r11d, %r13
movq 0xf0(%rsp), %r14
movq %rdi, %r12
movq %r14, %rdi
movq %rbx, %rsi
movq %r13, %rdx
movq %r11, %r15
callq 0x22a0
leaq (%r14,%r13), %rdi
movl $0x4, %esi
movq %r12, %rdx
callq 0x21b0
leal (%r12,%r15), %eax
movslq %eax, %r15
leaq (%r14,%r15), %rdi
movslq %ebp, %r14
leaq (%rbx,%r14), %rsi
movq %r13, %rdx
callq 0x22a0
movq 0x90(%rsp), %rbx
testq %rbx, %rbx
movq 0x180(%rsp), %rbp
je 0x1a162
movq %rbp, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x22a0
movq %rbp, %rdi
addq %r13, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x21b0
addq %rbp, %r15
addq %rbx, %r14
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x22a0
xorl %r14d, %r14d
movq 0x8(%rsp), %rbx
btq $0x23, (%rbx)
setae %r14b
shll $0xb, %r14d
orl 0xb0(%rsp), %r14d
orl $0x8, %r14d
movsbl 0x6c(%rbx), %eax
movq %rax, 0xe0(%rsp)
movsbl 0x70(%rbx), %r10d
movsbl 0x74(%rbx), %r11d
movsbl 0x84(%rbx), %eax
movsbl 0x88(%rbx), %r13d
movsbl 0x8c(%rbx), %r12d
movq 0x28(%rsp), %rdi
movq 0x98(%rsp), %rsi
movq 0x70(%rsp), %rdx
movl 0x20(%rsp), %ecx
movq 0xf0(%rsp), %r8
movl $0x5, %r9d
movq 0x1e8(%rsp), %r15
pushq %r15
pushq %rbp
pushq %r14
pushq %r12
pushq %r13
movq %r15, %r13
movq %rdx, %r15
pushq $-0x1
pushq 0x100(%rsp)
pushq %rax
pushq %r11
pushq %r10
pushq 0x130(%rsp)
leaq 0x188(%rsp), %rax
pushq %rax
callq 0x1f136
movq 0xf8(%rsp), %r11
movq %rbx, %rsi
addq $0x60, %rsp
cmpl $0x0, (%r13)
movq 0x38(%rsp), %rbx
js 0x199d7
movq 0x30(%r13), %rax
testb $0xf, (%rax)
jne 0x199d7
movslq 0x24(%r13), %rcx
testq %rcx, %rcx
jle 0x199d7
movl -0x4(%rax,%rcx,4), %edx
andl $0xf, %edx
jne 0x199d7
xorl %r9d, %r9d
xorl %edx, %edx
xorl %edi, %edi
movl (%rax,%r9,4), %r8d
andl $0xf, %r8d
cmpl $0x1, %r8d
je 0x1a273
cmpl $0x3, %r8d
jne 0x1a275
incl %edi
jmp 0x1a275
incl %edx
incq %r9
cmpq %r9, %rcx
jne 0x1a25b
cmpl $0x1, %edi
sete %dil
testl %edx, %edx
setle %dl
andb %dil, %dl
cmpb $0x1, %dl
jne 0x199d7
movl 0x60(%rsp), %r8d
shll $0x4, %r8d
xorl %edx, %edx
movl (%rax,%rdx,4), %esi
movl %esi, %edi
andl $0xf, %edi
cmpl $0x3, %edi
jne 0x1a2b7
addl %r8d, %esi
movl %esi, (%rax,%rdx,4)
movl 0x24(%r13), %ecx
incq %rdx
movslq %ecx, %rsi
cmpq %rsi, %rdx
jl 0x1a2a0
jmp 0x19b48
movq %r9, %rbp
movq %r15, %r14
subl %r12d, 0xd8(%rsp)
jle 0x1a4bf
movq %r12, 0xb8(%rsp)
movl 0x8c(%rsp), %r12d
subl %r10d, %r12d
movl 0x14(%rsp), %ecx
jle 0x1a609
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%r8)
movq %r10, 0x58(%rsp)
jne 0x1a341
movslq 0xb8(%rsp), %r14
movq 0x78(%rsp), %rax
movq 0xc0(%rsp), %rcx
addq (%rax,%rcx,8), %r14
movq 0x48(%rsp), %rsi
movl %r10d, %edx
movl 0x8c(%rsp), %ecx
movq %rbx, %r8
movq %rdi, %rbx
callq 0x71d0
jmp 0x1a374
movslq 0xb8(%rsp), %r14
movq 0x78(%rsp), %rax
addq (%rax), %r14
movq 0xc0(%rsp), %rsi
movq 0x48(%rsp), %rdx
movl %r10d, %ecx
movl 0x8c(%rsp), %r8d
movq %rbx, %r9
movq %rdi, %rbx
callq 0x72e4
cmpq $0x0, 0x40(%rbx)
movq %rbx, %rdi
movq 0x90(%rsp), %r15
je 0x1a3b8
movq 0xb0(%rsp), %rbx
movl %ebx, %r8d
shrl $0x9, %r8d
andl $0x1, %r8d
movslq 0x58(%rsp), %rdx
movslq 0x8c(%rsp), %rcx
movq 0x48(%rsp), %rsi
movq %r15, %r9
callq 0xa43b
jmp 0x1a545
cmpq $0x0, 0x38(%rdi)
movq 0x58(%rsp), %rdx
je 0x1a530
movq 0x48(%rsp), %rsi
movl 0x8c(%rsp), %ecx
movq %r15, %r8
callq 0x95d0
jmp 0x1a53d
movq 0x50(%rsp), %rax
movq 0x48(%rax), %rax
testq %rax, %rax
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movq 0x100(%rsp), %rsi
movq 0x170(%rsp), %r14
jne 0x1a444
cmpl $0x0, 0x24(%r13)
jne 0x1a8b6
movl $0x8, %edi
movl $0x4, %esi
callq 0x2230
movq 0x50(%rsp), %rcx
movq %rax, 0x48(%rcx)
movl $0x8, (%rax)
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movq 0x100(%rsp), %rsi
movl 0xec(%rsp), %r9d
movl %r9d, %edx
testq %rsi, %rsi
jle 0x1a478
movl 0x8(%r13), %ecx
addl 0xa0(%rsp), %ecx
leal -0x1(%rdx), %r9d
movq %rsi, %r10
leaq -0x10(%r14), %rsi
decq %r10
cmpl (%r14), %ecx
movq %rsi, %r14
movq %r10, %rsi
jl 0x1a44c
xorl %ecx, %ecx
testl %edx, %edx
cmovgl %edx, %ecx
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
andl (%r13), %edx
addl %edx, 0x4(%rax)
movl 0x4(%r13), %eax
movl 0x8(%r13), %edx
movq 0xa0(%rsp), %rsi
leal (%rsi,%rdx), %r14d
incl %r14d
movq 0xf8(%rsp), %rdx
leal 0x1(%rdx,%rax), %ebp
movl %ecx, %eax
notl %eax
movq 0x18(%rsp), %rdx
addl %eax, %edx
cmpl 0x30(%r8), %edx
jge 0x1a4c8
movl 0x14(%rsp), %ecx
jmp 0x1a609
movq 0x30(%rsp), %rdx
addl %ecx, %edx
movq 0x50(%rsp), %rdi
subl 0x28(%rdi), %edx
incl %edx
movl 0x4(%r8), %r9d
andl $0x1, %r9d
movq 0x1d0(%rsp), %rbx
movq %rbx, %rsi
movl 0x14(%rsp), %ecx
movq 0x1e0(%rsp), %r8
callq 0x1bf03
testb %r15b, %r15b
je 0x1a5f6
orb $0x1, 0x3f(%rbx)
jmp 0x1a5f6
cmpl %ebx, %ebp
cmovgl %ebp, %ebx
movl %r8d, %edx
subl %ebx, %edx
movl %eax, %ecx
subl %ebx, %ecx
xorl %r9d, %r9d
testl %edx, %edx
cmovgl %edx, %r9d
movq 0x50(%rsp), %rbp
jmp 0x18f32
movslq %r12d, %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x21b0
movq 0xb0(%rsp), %rbx
movq 0x8(%rsp), %rsi
movl 0x90(%rsi), %eax
movl 0x98(%rsi), %r10d
orl $0x40, %ebx
subq $0x8, %rsp
movq 0x30(%rsp), %rdi
movl 0xe0(%rsp), %edx
movq %r14, %rcx
movl %r12d, %r8d
movq 0x40(%rsp), %r9
pushq %r13
pushq %rbx
pushq %rax
pushq %r10
pushq 0x180(%rsp)
leaq 0x160(%rsp), %rax
pushq %rax
pushq %r15
callq 0x1a9c0
addq $0x40, %rsp
movl 0x24(%r13), %esi
testl %esi, %esi
jle 0x1a5bf
movq 0x30(%r13), %rdx
movq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1ad36
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl (%r13), %eax
movq 0x48(%rbx), %rcx
addl %eax, 0x4(%rcx)
xorl %eax, %eax
cmpl $0x0, 0x28(%r13)
setne %al
movl 0x8(%r13,%rax,8), %eax
movq 0xb8(%rsp), %r15
movl 0xd8(%rsp), %edx
jne 0x1a5e5
movl 0x4(%r13), %edx
incl %edx
movq 0x58(%rsp), %rcx
leal (%rcx,%rax), %r14d
incl %r14d
addl %r15d, %edx
movl %edx, %ebp
movq 0x8(%rsp), %r8
movq 0x40(%rsp), %rdi
movl 0x14(%rsp), %ecx
movq 0x38(%rsp), %rbx
movl %ecx, %eax
subl %ebp, %eax
jl 0x1a83a
movl 0xe8(%rsp), %edx
movq 0x50(%rsp), %r15
movl %edx, 0x18(%r15)
movq %r14, %r9
movl %r9d, 0x1c(%r15)
cmpq $0x0, 0xa8(%rsp)
movl 0x120(%rsp), %r14d
jns 0x1a657
movabsq $0x100000000, %rdx      # imm = 0x100000000
testq %rdx, (%r8)
jne 0x1a657
movl %eax, 0x10(%r15)
subl %r14d, %ecx
movl %ecx, %ebp
jmp 0x1a65b
movl %r14d, 0x10(%r15)
movl %ebp, 0x14(%r15)
movl %r9d, %eax
movl 0xe8(%rsp), %ecx
subl %ecx, %eax
cmpl 0x124(%rsp), %eax
jg 0x1a859
cmpq $0x0, 0x48(%r15)
je 0x1a758
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%r8)
jne 0x1a6b8
movq 0x48(%rsp), %rsi
movl %ecx, %edx
movl %r9d, %ecx
movq %rbx, %r8
callq 0x71d0
movl 0x3c(%r15), %eax
shrl $0x7, %eax
andl $0x8, %eax
movq 0x78(%rsp), %rdx
addq %rax, %rdx
jmp 0x1a6d7
movl 0x3c(%r15), %esi
shrl $0xa, %esi
andl $0x1, %esi
movq 0x48(%rsp), %rdx
movl %r9d, %r8d
movq %rbx, %r9
callq 0x72e4
movq 0x78(%rsp), %rdx
movabsq $0x8000000080, %rax     # imm = 0x8000000080
cmpq %rax, 0x168(%rsp)
setne %al
btl $0xc, 0x80(%rsp)
setae %cl
movl %r14d, %esi
addq (%rdx), %rsi
movq 0x8(%rsp), %rdx
movsbl 0x6c(%rdx), %r8d
movsbl 0x70(%rdx), %r9d
movl $0x4000000, %r10d       # imm = 0x4000000
andl (%rdx), %r10d
andb %al, %cl
movzbl %cl, %eax
leaq 0x130(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %rdx
pushq %rax
pushq %r10
callq 0x1adc1
addq $0x10, %rsp
cmpq $0x0, 0xa8(%rsp)
jns 0x1a758
movq 0x48(%r15), %rax
movl 0x14(%rax), %ecx
cmpl $0x40000000, %ecx       # imm = 0x40000000
jb 0x1a758
xorl $0xc0000000, %ecx       # imm = 0xC0000000
movl %ecx, 0x14(%rax)
movq 0xf0(%rsp), %rsi
testq %rsi, %rsi
movq 0x28(%rsp), %rbx
je 0x1a772
movq %rbx, %rdi
callq 0x12587
movq %rbx, %rdi
movq 0x38(%rsp), %rsi
callq 0x12587
movq %rbx, %rdi
movq 0x90(%rsp), %rsi
callq 0x12587
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl %r15d, %r12d
cmovgl %r12d, %r15d
leal (%r15,%rcx), %r11d
addl %eax, %r15d
movq 0x50(%rsp), %rbp
movl 0x14(%rsp), %r13d
jmp 0x19083
leaq 0x13f57(%rip), %rdi     # 0x2e71c
leaq 0x13e8b(%rip), %rsi     # 0x2e657
leaq 0x13e8c(%rip), %rcx     # 0x2e65f
movl $0x339, %edx            # imm = 0x339
callq 0x21a0
leaq 0x13f07(%rip), %rdi     # 0x2e6eb
leaq 0x13e6c(%rip), %rsi     # 0x2e657
leaq 0x13e6d(%rip), %rcx     # 0x2e65f
movl $0x2aa, %edx            # imm = 0x2AA
callq 0x21a0
leaq 0x13efa(%rip), %rdi     # 0x2e6fd
leaq 0x13e4d(%rip), %rsi     # 0x2e657
leaq 0x13e4e(%rip), %rcx     # 0x2e65f
movl $0x301, %edx            # imm = 0x301
callq 0x21a0
leaq 0x13ee5(%rip), %rdi     # 0x2e707
leaq 0x13e2e(%rip), %rsi     # 0x2e657
leaq 0x13e2f(%rip), %rcx     # 0x2e65f
movl $0x321, %edx            # imm = 0x321
callq 0x21a0
leaq 0x13eff(%rip), %rdi     # 0x2e740
leaq 0x13e0f(%rip), %rsi     # 0x2e657
leaq 0x13e10(%rip), %rcx     # 0x2e65f
movl $0x37b, %edx            # imm = 0x37B
callq 0x21a0
leaq 0x13eec(%rip), %rdi     # 0x2e74c
leaq 0x13df0(%rip), %rsi     # 0x2e657
leaq 0x13df1(%rip), %rcx     # 0x2e65f
movl $0x381, %edx            # imm = 0x381
callq 0x21a0
leaq 0x13dc1(%rip), %rdi     # 0x2e640
leaq 0x13dd1(%rip), %rsi     # 0x2e657
leaq 0x13dd2(%rip), %rcx     # 0x2e65f
movl $0x28f, %edx            # imm = 0x28F
callq 0x21a0
leaq 0x13e56(%rip), %rdi     # 0x2e6f4
leaq 0x13db2(%rip), %rsi     # 0x2e657
leaq 0x13db3(%rip), %rcx     # 0x2e65f
movl $0x2c5, %edx            # imm = 0x2C5
callq 0x21a0
leaq 0x13e72(%rip), %rdi     # 0x2e72f
leaq 0x13d93(%rip), %rsi     # 0x2e657
leaq 0x13d94(%rip), %rcx     # 0x2e65f
movl $0x352, %edx            # imm = 0x352
callq 0x21a0