// File: /workspace/github_c_makefile_star2_O1/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 %r8, 0x70(%rsp)
movl %ecx, 0x34(%rsp)
movq %rdx, 0x38(%rsp)
movq %rsi, %rbp
movq 0x1e0(%rsp), %rax
movq (%rsi), %rcx
movl 0x28(%r9), %esi
movq %rsi, 0x50(%rsp)
movslq %esi, %rbx
movq %rbx, %r14
shlq $0x4, %r14
movq (%rax,%r14), %rax
btl $0xc, %ecx
jae 0x180c2
movq 0x38(%rsp), %rdx
testb $0x1, 0xc(%rdx)
jne 0x1a8e0
movq 0x1d0(%rsp), %rdx
movl $0x0, 0x4(%rdx)
movl 0x4(%r9), %r13d
testl %r13d, %r13d
je 0x1a7f8
movq %rax, 0xe0(%rsp)
movq %r9, 0x18(%rsp)
movq %rdi, 0x20(%rsp)
movq %rcx, 0x58(%rsp)
movsbl 0x64(%rbp), %esi
movsbl 0x68(%rbp), %edx
movsbl 0x7c(%rbp), %ecx
movsbl 0x80(%rbp), %r8d
leaq 0x120(%rsp), %rdi
callq 0x1a93d
movq 0x58(%rsp), %rsi
movl 0x14(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0x1545e(%rip), %xmm1    # 0x2d588
mulsd %xmm1, %xmm0
movsd 0x11ef2(%rip), %xmm2    # 0x2a028
addsd %xmm2, %xmm0
cvttsd2si %xmm0, %ecx
xorps %xmm0, %xmm0
cvtsi2sdl 0x18(%rbp), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
cvttsd2si %xmm0, %edx
cmpl %ecx, %edx
movq %rcx, 0x148(%rsp)
cmovlel %ecx, %edx
movl %edx, 0x11c(%rsp)
btl $0xc, %esi
movq %rbp, 0x28(%rsp)
movq 0x38(%rsp), %rcx
jae 0x18198
testb $0x1, 0xc(%rcx)
jne 0x18198
cmpl $0x2, %r13d
movq 0x1e0(%rsp), %r8
jge 0x18a21
movq 0x50(%rsp), %rax
jmp 0x18af8
btl $0x1c, %esi
movq 0x1e0(%rsp), %rcx
movq %r13, %rdx
jb 0x183ad
testb %sil, %sil
js 0x183a4
cmpl $0x3, %edx
jl 0x183ad
movabsq $0x10000000000, %r12    # imm = 0x10000000000
movq %rdx, %rsi
movl 0x34(%rbp), %edx
addl %edx, %edx
leaq (%r14,%rcx), %rdi
addq $0x18, %rdi
movzbl -0xc(%rdi), %r8d
cmpl %eax, %edx
cmovlel %eax, %edx
addl %eax, %eax
movq 0x50(%rsp), %rcx
addl %ecx, %esi
decl %esi
movslq %esi, %r9
incq %rbx
movl %ecx, %esi
movl %r8d, %r10d
cmpq %r9, %rbx
jge 0x18296
movq (%rdi), %r11
testq %r12, %r11
jne 0x18283
movq %r11, %r14
shrq $0x20, %r14
movl -0x8(%rdi), %ebp
subl -0x18(%rdi), %ebp
subl -0x10(%rdi), %r11d
cmpl %r11d, %ebp
movslq %r11d, %r15
cmovll %ebp, %r11d
movslq %ebp, %r12
subq %r15, %r12
movq %r12, %r15
negq %r15
cmovsq %r12, %r15
leal (%r11,%r10), %ebp
sarl %r10d
cmpl %r10d, %r15d
cmovgl %ebx, %esi
movzbl %r14b, %r10d
cmpl %r10d, %r11d
cmovgel %r10d, %r11d
addl %r11d, %r8d
xorl %r11d, %r11d
cmpl %eax, %ebp
jge 0x1826f
cmpl %edx, %r8d
jge 0x1826f
movq 0x18(%rsp), %r10
movl 0x2c(%r10), %r10d
sarl %r10d
cmpl %r10d, %r8d
setl %r11b
movl %ebp, %r10d
movq 0x28(%rsp), %rbp
movabsq $0x10000000000, %r12    # imm = 0x10000000000
jmp 0x18286
xorl %r11d, %r11d
addq $0x10, %rdi
incq %rbx
testb %r11b, %r11b
jne 0x181f9
movq 0x50(%rsp), %rcx
leal (%rcx,%r13), %ebx
movl %ebx, %edi
subl %esi, %edi
leal (%rcx,%r13), %r8d
addl $-0x2, %r8d
cmpl %esi, %r8d
jle 0x1838c
movslq %ebx, %r9
shlq $0x4, %r9
movq 0x1e0(%rsp), %rcx
movzbl -0x4(%rcx,%r9), %r14d
movslq %r8d, %r9
movslq %esi, %r8
leaq -0x1(%r9), %r10
shlq $0x4, %r9
addq %rcx, %r9
addq $0x18, %r9
movl %esi, %r11d
notl %r11d
addl %ebx, %r11d
movl %r14d, %ebx
movq (%r9), %r15
testq %r12, %r15
jne 0x1836d
movq %r15, %r12
shrq $0x20, %r12
movl -0x8(%r9), %ebp
subl -0x18(%r9), %ebp
subl -0x10(%r9), %r15d
cmpl %r15d, %ebp
movslq %r15d, %r13
cmovll %ebp, %r15d
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
movzbl %r12b, %r14d
cmpl %r14d, %r15d
cmovgel %r14d, %r15d
addl %r15d, %ebx
xorl %r15d, %r15d
cmpl %eax, %ebp
jge 0x18359
cmpl %edx, %ebx
jge 0x18359
movq 0x18(%rsp), %r14
movl 0x2c(%r14), %r14d
sarl %r14d
cmpl %r14d, %ebx
setl %r15b
movl %ebp, %r14d
movq 0x28(%rsp), %rbp
movabsq $0x10000000000, %r12    # imm = 0x10000000000
jmp 0x18370
xorl %r15d, %r15d
testb %r15b, %r15b
je 0x1838c
leaq -0x1(%r10), %r15
addq $-0x10, %r9
decl %r11d
cmpq %r8, %r10
movq %r15, %r10
jg 0x182ea
movl %esi, %eax
movq %rax, 0x50(%rsp)
movl %edi, %edx
movq 0x20(%rsp), %rbx
movq 0x1e0(%rsp), %rcx
jmp 0x183b2
cmpl $0x3, %edx
jge 0x1920e
movq 0x20(%rsp), %rbx
movl 0x1c(%rbp), %ebp
leaq 0xa4(%rsp), %r9
movq %rbx, %rdi
movq 0x50(%rsp), %r15
movl %r15d, %esi
movq %rdx, 0x60(%rsp)
movq %rcx, %r14
movl $0xa, %r8d
callq 0x1ba1f
movslq %r15d, %rcx
movq %rcx, (%rsp)
testq %rax, %rax
je 0x18608
sarl %ebp
movl 0xa4(%rsp), %ecx
leaq 0x8(%r14), %rdx
movq %rdx, 0x108(%rsp)
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movl $0x1, %edx
movq %rdx, 0x8(%rsp)
xorl %r10d, %r10d
xorl %r11d, %r11d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq %r14, %r8
movabsq $0x20000000000, %rdi    # imm = 0x20000000000
cmpq %rcx, %r10
je 0x18435
movslq %r9d, %rdx
cmpq %rdx, %r10
jl 0x1848c
testl %r9d, %r9d
jle 0x1846b
movslq %ebx, %rdx
movslq (%rax,%rdx,4), %rdx
movl %r9d, %esi
movslq (%rax,%rsi,4), %rsi
cmpl %esi, %edx
jge 0x1846b
subq %rdx, %rsi
addq (%rsp), %rdx
shlq $0x4, %rdx
addq 0x108(%rsp), %rdx
orq %rdi, (%rdx)
addq $0x10, %rdx
decq %rsi
jne 0x1845f
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
xorl %r11d, %r11d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl $0x0, %edx
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
cmpq %rcx, %r10
je 0x185e3
movl %ebx, 0xc0(%rsp)
movl %r11d, 0x90(%rsp)
movl %r9d, 0x40(%rsp)
movslq (%rax,%r10,4), %rsi
addq (%rsp), %rsi
shlq $0x4, %rsi
movl 0x8(%r8,%rsi), %edi
movl -0x10(%r8,%rsi), %r9d
movl -0x8(%r8,%rsi), %edx
subl %edx, %edi
movl %r9d, %r13d
subl (%r8,%rsi), %r13d
addl %edi, %r13d
movl %r13d, %esi
negl %esi
xorl %r15d, %r15d
testl %r13d, %r13d
cmovlel %r15d, %r13d
cmovgl %r15d, %esi
movq %r10, 0x10(%rsp)
leaq 0xa(%r10), %rbx
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movq 0x8(%rsp), %rdi
cmpl %edi, %ecx
jle 0x185a1
leaq -0x1(%rdi), %r10
cmpq %rbx, %r10
jae 0x185a1
movslq (%rax,%rdi,4), %r10
addq (%rsp), %r10
shlq $0x4, %r10
movl 0x8(%r8,%r10), %r11d
movl %r11d, %r14d
subl %edx, %r14d
cmpl %ebp, %r14d
jle 0x18524
xorl %r10d, %r10d
jmp 0x18595
addq %r8, %r10
movq (%r10), %r14
movl %r14d, %r8d
subl %r9d, %r8d
cmpl %ebp, %r8d
jle 0x1853a
xorl %r10d, %r10d
jmp 0x1858d
subl -0x8(%r10), %r11d
movl -0x10(%r10), %r8d
subl %r14d, %r8d
addl %r11d, %r8d
testl %r8d, %r8d
movl $0x0, %r10d
cmovgl %r8d, %r10d
movl $0x0, %r11d
cmovnsl %r11d, %r8d
addl %r13d, %r10d
subl %r8d, %esi
leal (%r10,%rsi), %r8d
movl %r10d, %r11d
subl %esi, %r11d
movl %r11d, %r14d
negl %r14d
cmovnsl %r11d, %r14d
addl %r8d, %r14d
cmpl %r14d, %r15d
cmovlel %r14d, %r15d
movl %r10d, %r13d
cmovll %edi, %r12d
movb $0x1, %r10b
movq 0x1e0(%rsp), %r8
incq %rdi
testb %r10b, %r10b
jne 0x184ee
cmpl $0x29, %r15d
setge %dl
movl 0x90(%rsp), %r11d
cmpl %r11d, %r15d
setg %sil
testb %sil, %dl
cmovnel %r15d, %r11d
movl 0x40(%rsp), %r9d
cmovnel %r12d, %r9d
movq 0x10(%rsp), %r10
movl 0xc0(%rsp), %esi
cmovnel %r10d, %esi
movb $0x1, %dl
movabsq $0x20000000000, %rdi    # imm = 0x20000000000
incq %r10
incq 0x8(%rsp)
movl %esi, %ebx
testb %dl, %dl
jne 0x18428
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
movq %r8, %r14
callq 0x1261e
movq 0x28(%rsp), %rax
movl 0x1c(%rax), %ebp
leaq 0xa4(%rsp), %r9
movq %rbx, %rdi
movq 0x50(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq %r14, %rcx
movl $0x1e, %r8d
callq 0x1ba1f
testq %rax, %rax
je 0x187cb
movl 0xa4(%rsp), %ecx
testl %ecx, %ecx
jle 0x187be
sarl %ebp
movq 0x1e0(%rsp), %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rsp)
xorl %r10d, %r10d
movslq %r10d, %r9
movslq (%rax,%r9,4), %rdi
leal 0x1(%r9), %r8d
movl %r8d, %r10d
cmpl %ecx, %r8d
jge 0x18757
movq 0x50(%rsp), %rdx
addl %edi, %edx
movslq %edx, %rdx
shlq $0x4, %rdx
movq 0x1e0(%rsp), %rsi
movl (%rsi,%rdx), %r10d
movl 0x8(%rsi,%rdx), %r11d
movl -0x8(%rsi,%rdx), %ebx
addl %r10d, %ebx
movl %r11d, %r14d
subl %ebx, %r14d
addl -0x10(%rsi,%rdx), %r14d
movl %r14d, %ebx
negl %ebx
cmovsl %r14d, %ebx
incq %r9
movslq (%rax,%r9,4), %rdx
addq (%rsp), %rdx
shlq $0x4, %rdx
movq 0x1e0(%rsp), %rsi
movl 0x8(%rsi,%rdx), %r15d
movl %r15d, %r14d
subl %r11d, %r14d
cmpl %ebp, %r14d
jg 0x1872c
addq %rsi, %rdx
movq (%rdx), %r12
movl %r12d, %r14d
subl %r10d, %r14d
cmpl %ebp, %r14d
jg 0x1872c
movq -0x8(%rdx), %r13
movl %r15d, %r14d
subl %r13d, %r14d
movl -0x10(%rdx), %edx
movl %edx, %esi
subl %r12d, %esi
addl %r14d, %esi
movq %r13, %r14
shrq $0x20, %r14
movzbl %r14b, %r14d
subl %r10d, %edx
addl %r14d, %edx
subl %r11d, %r13d
addl %r14d, %r13d
cmpl %r13d, %edx
cmovll %edx, %r13d
movl %esi, %edx
negl %edx
cmovsl %esi, %edx
leal (%rdx,%rbx), %esi
cmpl %esi, %r13d
jle 0x18742
xorl %r13d, %r13d
testb %r13b, %r13b
je 0x1874f
incq %r9
cmpq %r9, %rcx
jne 0x186b5
jmp 0x18754
movb $0x1, %r13b
movl %r15d, %r11d
movl %r12d, %r10d
movl %edx, %ebx
jmp 0x1872f
movl %r9d, %r10d
jmp 0x18757
movl %ecx, %r10d
cmpl %r8d, %r10d
jle 0x187b5
movslq %r10d, %rdx
movslq -0x4(%rax,%rdx,4), %r8
cmpl %r8d, %edi
movabsq $0x20000000000, %rsi    # imm = 0x20000000000
jge 0x18792
movq %r8, %rdx
subq %rdi, %rdx
addq (%rsp), %rdi
shlq $0x4, %rdi
addq 0x8(%rsp), %rdi
orq %rsi, (%rdi)
addq $0x10, %rdi
decq %rdx
jne 0x18786
addl 0x50(%rsp), %r8d
movslq %r8d, %rdx
shlq $0x4, %rdx
movq 0x1e0(%rsp), %rsi
movabsq $0x10000000000, %rdi    # imm = 0x10000000000
orq %rdi, 0x8(%rsi,%rdx)
cmpl %ecx, %r10d
jl 0x18661
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x1261e
movq (%rsp), %rcx
shlq $0x4, %rcx
movq 0x1e0(%rsp), %r8
leaq (%r8,%rcx), %rdx
movq 0x38(%rsp), %r9
movl 0xc(%r9), %eax
movq (%r8,%rcx), %r14
testb $0x1, %al
jne 0x1880f
movl 0x8(%r9), %ecx
sarl %ecx
subl %ecx, %r14d
movl 0x8(%rdx), %r12d
subl %ecx, %r12d
movq 0x18(%rsp), %r9
movq 0x28(%rsp), %rbp
jmp 0x188ed
movq %r14, %rcx
shrq $0x3f, %rcx
movq 0x70(%rsp), %rsi
movq (%rsi,%rcx,8), %rcx
movq 0x8(%rdx), %r12
movl %r12d, %edx
movslq %edx, %rsi
movb (%rcx,%rsi), %sil
testl %r12d, %r12d
movl $0x1, %edi
cmovlel %r12d, %edi
incl %r12d
movq 0x28(%rsp), %rbp
cmpl $0x2, %edx
jl 0x18859
leaq -0x1(%rdx), %r8
decl %r12d
cmpb %sil, -0x1(%rcx,%rdx)
movq %r8, %rdx
je 0x18841
jmp 0x1885c
movl %edi, %r12d
movq %r14, %rcx
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%r9), %rdx
movq 0x28(%r9), %rsi
movq 0x8(%rdx,%rcx,8), %rdi
movl %r14d, %edx
addq %rdi, %rdx
movq %rdx, %rcx
sarq $0x3, %rcx
movl (%rsi,%rcx,4), %r8d
leal (,%rdx,4), %ecx
shrl %cl, %r8d
leaq -0x1(%rdi), %r10
movq %r14, %r15
leal (%rdi,%r14), %ecx
leal -0x4(,%rcx,4), %r11d
movq %rdx, %r9
cmpq %rdi, %r9
jle 0x188d3
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 0x188ab
jmp 0x188d6
movq %r10, %r9
subl %edx, %r9d
leal (%r15,%r9), %r14d
incl %r14d
movq 0x18(%rsp), %r9
movq 0x1e0(%rsp), %r8
movq 0x50(%rsp), %rcx
movq 0x60(%rsp), %rdx
addl %edx, %ecx
movslq %ecx, %rdx
shlq $0x4, %rdx
leaq (%r8,%rdx), %rcx
movq -0x10(%r8,%rdx), %rbx
testb $0x1, %al
movq %r12, 0x10(%rsp)
jne 0x18934
movq 0x38(%rsp), %rax
movl 0x8(%rax), %eax
sarl %eax
subl %eax, %ebx
movl -0x8(%rcx), %r10d
subl %eax, %r10d
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %r13
jmp 0x18b45
movq %r14, %r15
movq %rbx, %rax
shrq $0x3f, %rax
movq 0x70(%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 0x38(%rsp), %r8
cmpl $0x2, %ecx
jl 0x1897f
leaq -0x1(%rcx), %rdi
decl %r14d
cmpb %dl, -0x1(%rax,%rcx)
movq %rdi, %rcx
je 0x18968
jmp 0x18982
movl %esi, %r14d
movq %rbx, %rax
shrq $0x20, %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
leaq (%rax,%rax,2), %rax
movq 0x20(%r8), %rcx
movq 0x28(%r8), %rdx
movq 0x8(%rcx,%rax,8), %rsi
movl %ebx, %eax
addq %rsi, %rax
movq %rax, %rcx
sarq $0x3, %rcx
movl (%rdx,%rcx,4), %edi
leal (,%rax,4), %ecx
shrl %cl, %edi
leaq -0x1(%rsi), %r9
leal (%rsi,%rbx), %ecx
leal -0x4(,%rcx,4), %r10d
movq %rax, %r8
cmpq %rsi, %r8
jle 0x189f4
decq %r8
movq %r8, %rcx
sarq $0x3, %rcx
movl (%rdx,%rcx,4), %r11d
movl %r10d, %ecx
andb $0x1c, %cl
shrl %cl, %r11d
xorl %edi, %r11d
addl $-0x4, %r10d
testb $0xf, %r11b
je 0x189c9
jmp 0x189f7
movq %r9, %r8
subl %eax, %r8d
addl %r8d, %ebx
incl %ebx
movq 0x18(%rsp), %r9
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %r8
movq 0x60(%rsp), %r13
movq %r14, %r10
movq %r15, %r14
jmp 0x18b45
movzbl 0xc(%r8,%r14), %ecx
movq 0x50(%rsp), %r14
addl %r14d, %r13d
leal 0x1(%r14), %eax
movslq %eax, %rdi
movslq %r13d, %rax
leaq 0x1(%rdi), %rsi
movq %rdi, %rdx
shlq $0x4, %rdx
leaq (%rdx,%r8), %r10
addq $0x8, %r10
movl $0x1, %edx
xorl %r13d, %r13d
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movq (%r10), %rbx
movq %rbx, %r11
shrq $0x20, %r11
movq %r14, %r12
movl -0x8(%r10), %ebp
movslq %r12d, %r14
shlq $0x4, %r14
movq 0x1e0(%rsp), %r15
subl (%r15,%r14), %ebp
movzbl %r11b, %r11d
subl 0x8(%r15,%r14), %ebx
cmpl %ebp, %ebx
jne 0x18a9f
cmpl %r11d, %ebx
cmovll %ebx, %r11d
addl %r11d, %ecx
incl %edx
jmp 0x18abd
movl %r12d, %ebx
subl %edx, %ebx
incl %ebx
cmpl %r8d, %ecx
cmovgl %ebx, %r9d
cmovgl %edx, %r13d
cmovgl %ecx, %r8d
movl $0x1, %edx
movl %r11d, %ecx
movq %r12, %r14
incq %rdi
incl %r14d
addq $0x10, %r10
cmpq %rax, %rdi
jl 0x18a60
cmpq %rax, %rsi
cmovgq %rsi, %rax
subl %edx, %eax
cmpl %r8d, %ecx
cmovgl %eax, %r9d
cmovgl %edx, %r13d
movl %r9d, %eax
movq 0x28(%rsp), %rbp
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %r8
movq %rax, 0x50(%rsp)
cltq
movq %rax, %rcx
shlq $0x4, %rcx
movl (%r8,%rcx), %r14d
movq 0x8(%r8,%rcx), %rdx
movq %rdx, %rcx
shrq $0x20, %rcx
movzbl %cl, %ecx
subl %ecx, %r14d
incl %r14d
subl %ecx, %edx
incl %edx
movq %rdx, 0x10(%rsp)
addl %r13d, %eax
cltq
shlq $0x4, %rax
movl -0x10(%r8,%rax), %ebx
movl -0x8(%r8,%rax), %r10d
incl %ebx
incl %r10d
movq 0x18(%rsp), %r9
testl %r13d, %r13d
movq 0xe0(%rsp), %rax
jle 0x1a845
movq %r13, 0x60(%rsp)
movq %rax, %rcx
shrq $0x3f, %rcx
movq %rcx, 0xc8(%rsp)
xorl %ecx, %ecx
testb %sil, %sil
jns 0x18bdf
movl 0x1f0(%rsp), %ecx
xorl %eax, %eax
cmpq $0x0, 0xe0(%rsp)
setns %al
movq 0xc8(%rsp), %rdx
shll $0x8, %edx
movl $0x100, %esi            # imm = 0x100
addl %esi, %edx
xorl %edi, %edi
btl $0x8, %ecx
cmovael %edi, %edx
shll $0x8, %eax
addl %esi, %eax
movq 0x58(%rsp), %rsi
btl $0x9, %ecx
cmovael %edi, %eax
orl %edx, %eax
movl (%rbp), %ecx
shrl $0x8, %ecx
andl $0x400, %ecx            # imm = 0x400
movq 0x38(%rsp), %rdx
cmpq $0x0, 0x40(%rdx)
leal (%rax,%rcx), %edx
leal 0x1000(%rax,%rcx), %ecx
movq 0xe0(%rsp), %rax
cmovel %edx, %ecx
movq %rcx, 0xa8(%rsp)
shrq $0x20, %rax
movq %rax, 0x48(%rsp)
btl $0xc, %esi
movq %rbx, 0xd0(%rsp)
movq %r10, 0x80(%rsp)
movq %r14, 0x8(%rsp)
jb 0x18ef9
movl 0x28(%r9), %ecx
movslq %ecx, %rdi
movq %rdi, %rax
shlq $0x4, %rax
movq (%r8,%rax), %rsi
movq 0x8(%r8,%rax), %rax
movq %rax, %rdx
shrq $0x20, %rdx
movzbl %dl, %edx
movl %esi, %r9d
subl %edx, %r9d
incl %r9d
subl %edx, %eax
xorl %r10d, %r10d
testl %r9d, %r9d
cmovlel %r10d, %r9d
incl %eax
js 0x1a91e
movq %r8, %r11
movl 0x1d8(%rsp), %r8d
movq %rcx, %rdx
shlq $0x4, %rdx
addq %r11, %rdx
addq $-0x8, %rdx
leal 0x1(%rcx), %r11d
xorl %ecx, %ecx
xorl %ebx, %ebx
decl %r11d
testl %r11d, %r11d
jle 0x18cee
movq -0x8(%rdx), %r15
movq %r15, %r14
xorq %rsi, %r14
shrq $0x20, %r14
jne 0x18cee
movq (%rdx), %r14
movq %r14, %r12
shrq $0x20, %r12
movzbl %r12b, %r13d
subl %r13d, %r15d
incl %r15d
movl %r9d, %r12d
movb $0x1, %bpl
subl %r15d, %r12d
jle 0x18ce0
subl %r13d, %r14d
incl %r14d
movl %eax, %r15d
subl %r14d, %r15d
jle 0x18ce0
movq 0x28(%rsp), %r14
cmpl 0x30(%r14), %ebx
jge 0x18cc2
incl %ebx
jmp 0x18ce0
cmpl %r15d, %r12d
cmovgl %r12d, %r15d
movl %r9d, %r10d
subl %r15d, %r10d
movl %eax, %ecx
subl %r15d, %ecx
xorl %ebp, %ebp
testl %r10d, %r10d
cmovlel %ebp, %r10d
movl %r15d, %ebx
addq $-0x10, %rdx
testb %bpl, %bpl
movq 0x28(%rsp), %rbp
jne 0x18c6e
movq 0x8(%rsp), %rdx
movl %edx, %r14d
movq 0x10(%rsp), %r11
movl %r11d, 0x40(%rsp)
testl %r11d, %r11d
jle 0x18d79
movl %edx, %r14d
movq 0x10(%rsp), %r11
movl %r11d, 0x40(%rsp)
testl %edx, %edx
jle 0x18d79
movl 0x1c(%rbp), %r11d
movq 0x10(%rsp), %rdx
cmpl %r11d, %edx
movl %r11d, %ebx
cmovll %edx, %ebx
subl %ebx, %edx
cmpl %edx, %ecx
cmovgl %ecx, %edx
cmpl %edx, %eax
cmovll %eax, %edx
movl %edx, 0x40(%rsp)
movl 0x64(%rbp), %ecx
imull %ebx, %ecx
xorl %eax, %eax
subl 0x6c(%rbp), %ecx
jle 0x18d4b
movl %ecx, %eax
cltd
idivl 0x70(%rbp)
addl %ebx, %eax
cmpl %r11d, %eax
cmovgel %r11d, %eax
movq 0x8(%rsp), %rcx
cmpl %ecx, %eax
cmovgel %ecx, %eax
movl %ecx, %r14d
subl %eax, %r14d
cmpl %r14d, %r10d
cmovgl %r10d, %r14d
cmpl %r14d, %r9d
cmovll %r9d, %r14d
cmpl %ecx, %r14d
cmovgel %ecx, %r14d
movq 0x18(%rsp), %rax
movslq 0x4(%rax), %r15
leaq (%r15,%rdi), %rcx
movq %rcx, %r12
shlq $0x4, %r12
movq 0x1e0(%rsp), %rax
movl -0x10(%rax,%r12), %edx
movl -0x8(%rax,%r12), %r11d
leal 0x1(%rdx), %eax
movq %rax, (%rsp)
leal 0x1(%r11), %eax
movq %rax, 0x90(%rsp)
movq 0x38(%rsp), %rax
movq 0x20(%rax), %r9
movq 0x48(%rsp), %r10
andl $0x7fffffff, %r10d      # imm = 0x7FFFFFFF
leaq (%r10,%r10,2), %r10
movl 0x10(%r9,%r10,8), %r9d
movl %r9d, %r10d
movl 0x34(%rsp), %ebx
cmpl %r8d, %ecx
jge 0x18e63
movslq %r8d, %r8
addq %rdi, %r15
incq %r15
movq 0x1e0(%rsp), %rax
leaq (%r12,%rax), %rdi
addq $0x8, %rdi
xorl %ebp, %ebp
movl 0x34(%rsp), %ebx
movl %r9d, %r10d
movq -0x8(%rdi), %r13
movq %r13, %rcx
xorq %rsi, %rcx
shrq $0x20, %rcx
jne 0x18e63
movb $0x1, %r12b
subl %edx, %r13d
jle 0x18e4e
movl (%rdi), %ecx
subl %r11d, %ecx
jle 0x18e4e
movq 0x28(%rsp), %rax
cmpl 0x30(%rax), %ebp
jge 0x18e2f
incl %ebp
jmp 0x18e4e
cmpl %ecx, %r13d
cmovgl %r13d, %ecx
movq (%rsp), %rax
leal (%rcx,%rax), %r10d
movq 0x90(%rsp), %rax
leal (%rcx,%rax), %ebx
xorl %r12d, %r12d
movl %ecx, %ebp
testb %r12b, %r12b
je 0x18e63
leaq 0x1(%r15), %rcx
addq $0x10, %rdi
cmpq %r8, %r15
movq %rcx, %r15
jl 0x18e02
movl 0x34(%rsp), %eax
movl %eax, %esi
movq 0x80(%rsp), %rdx
subl %edx, %esi
jle 0x191f1
movq 0xd0(%rsp), %r8
subl %r8d, %r9d
movq 0x28(%rsp), %rbp
movq 0x1e0(%rsp), %rcx
jle 0x18f8a
movl 0x1c(%rbp), %edi
cmpl %edi, %esi
cmovgel %edi, %esi
leal (%rsi,%rdx), %r11d
cmpl %r11d, %ebx
cmovll %ebx, %r11d
movq 0x90(%rsp), %rax
cmpl %r11d, %eax
cmovgl %eax, %r11d
movl 0x64(%rbp), %eax
imull %esi, %eax
xorl %r15d, %r15d
subl 0x6c(%rbp), %eax
jle 0x18ece
cltd
idivl 0x70(%rbp)
movl %eax, %r15d
addl %esi, %r15d
cmpl %edi, %r15d
cmovgel %edi, %r15d
cmpl %r9d, %r15d
cmovgel %r9d, %r15d
addl %r8d, %r15d
cmpl %r15d, %r10d
cmovll %r10d, %r15d
movq (%rsp), %rax
cmpl %r15d, %eax
cmovgl %eax, %r15d
jmp 0x18f90
movl 0x64(%rbp), %esi
movl 0x6c(%rbp), %edi
movl %esi, %eax
imull 0x10(%rsp), %eax
movl 0x98(%rbp), %r8d
addl %r8d, %eax
xorl %ecx, %ecx
movl $0x0, %edx
subl %edi, %eax
jle 0x18f21
cltd
idivl 0x70(%rbp)
movl %eax, %edx
addl 0x10(%rsp), %edx
subl %edx, %r14d
testl %r14d, %r14d
cmovlel %ecx, %r14d
movl 0x34(%rsp), %r15d
subl %r10d, %r15d
imull %r15d, %esi
addl %r8d, %esi
subl %edi, %esi
jle 0x18f4a
movl %esi, %eax
cltd
idivl 0x70(%rbp)
movl %eax, %ecx
addl %ebx, %r15d
addl %ecx, %r15d
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rsp), %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq (%rcx,%rcx,2), %rcx
movl 0x10(%rax,%rcx,8), %eax
cmpl %eax, %r15d
cmovgel %eax, %r15d
movl $0x0, 0x40(%rsp)
movl 0x34(%rsp), %r11d
movq 0x1e0(%rsp), %rcx
jmp 0x18f95
movl %r8d, %r15d
movl %edx, %r11d
movq 0x18(%rsp), %r9
movslq 0x28(%r9), %rax
shlq $0x4, %rax
testb $0x8, 0xd(%rcx,%rax)
je 0x19004
movl 0x18(%r9), %eax
movl 0x10(%r9), %ecx
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 0x40(%rsp), %edx
subl %edx, %eax
subl %esi, %ecx
cmpl %esi, %eax
cmovgl %ecx, %edx
movl %edx, 0x40(%rsp)
movl 0x14(%r9), %eax
movl 0x1c(%r9), %ecx
movl %eax, %edx
subl %ecx, %edx
movl %edx, %esi
negl %esi
cmovsl %edx, %esi
movl %r15d, %edx
subl %ecx, %edx
addl %esi, %ecx
cmpl %esi, %edx
cmovgl %ecx, %r15d
movl %r11d, %ecx
subl %eax, %ecx
addl %esi, %eax
cmpl %esi, %ecx
cmovgl %eax, %r11d
movq 0x20(%rsp), %rdi
movq 0x58(%rsp), %rax
movl %r11d, 0xdc(%rsp)
movl %r15d, 0x98(%rsp)
subl %r14d, %r15d
jle 0x1a864
movabsq $0x8000000080, %rbx     # imm = 0x8000000080
movq %rax, %r13
andq %rbx, %r13
movl %r15d, 0x114(%rsp)
movslq %r15d, %r12
movq %r12, %rsi
movq %rdi, %r15
callq 0x126e9
movq %rax, (%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x126e9
movq %rax, %r12
movq %r13, 0x158(%rsp)
cmpq %rbx, %r13
je 0x1907c
xorl %ecx, %ecx
movq $0x0, 0xf8(%rsp)
jmp 0x190a9
movslq 0x74(%rbp), %rax
leaq 0xc8(,%rax,2), %rbx
addq %rax, %rax
leaq 0x190(,%rax,2), %rsi
movq %r15, %rdi
callq 0x126e9
movslq %ebx, %rcx
movq %rax, 0xf8(%rsp)
addq %rax, %rcx
movq 0x60(%rsp), %rdx
movq 0x8(%rsp), %r11
movq 0x10(%rsp), %rsi
movq %rcx, 0x170(%rsp)
movq 0x1e8(%rsp), %r13
movq 0x48(%rsp), %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, 0x48(%rsp)
movl %r11d, %eax
movl %esi, %r10d
testl %esi, %esi
movq 0x18(%rsp), %rbx
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0xd0(%rsp), %r15
movq 0x80(%rsp), %r8
movq %r12, 0x78(%rsp)
jle 0x195f4
movl %r11d, %eax
movq 0x10(%rsp), %rcx
movl %ecx, %r10d
testl %r11d, %r11d
jle 0x195f4
movq %r12, %r15
movslq 0x40(%rsp), %r12
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%rbp)
jne 0x19167
movq 0x70(%rsp), %rax
movq 0xc8(%rsp), %rcx
addq (%rax,%rcx,8), %r12
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0x48(%rsp), %rsi
movl %r14d, %edx
movl %r11d, %ecx
movq (%rsp), %r8
callq 0x7224
jmp 0x19193
movq 0x70(%rsp), %rax
addq (%rax), %r12
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0xc8(%rsp), %rsi
movq 0x48(%rsp), %rdx
movl %r14d, %ecx
movl %r11d, %r8d
movq (%rsp), %r9
callq 0x7338
cmpq $0x0, 0x40(%rbx)
je 0x191c9
movq 0xa8(%rsp), %rax
movl %eax, %r8d
shrl $0x9, %r8d
andl $0x1, %r8d
movslq %r14d, %rdx
movl 0x8(%rsp), %ecx
movq %rbx, %rdi
movq 0x48(%rsp), %rsi
movq %r15, %r9
callq 0xa4e1
jmp 0x193d4
cmpq $0x0, 0x38(%rbx)
movq 0x8(%rsp), %rcx
je 0x193c2
movq %rbx, %rdi
movq 0x48(%rsp), %rsi
movl %r14d, %edx
movq %r15, %r8
callq 0x965f
jmp 0x193d4
movq 0xd0(%rsp), %rax
movl %eax, %r15d
movl %edx, %r11d
movq 0x18(%rsp), %r9
movq 0x28(%rsp), %rbp
jmp 0x18f80
addq %rcx, %r14
movl 0x10(%r14), %eax
subl 0xe0(%rsp), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
callq 0x21e0
movq 0x1e0(%rsp), %rsi
movq 0x18(%rsp), %rdx
movslq 0x28(%rdx), %rax
shlq $0x4, %rax
movzbl 0xc(%rsi,%rax), %ecx
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rbp), %xmm2
addsd %xmm0, %xmm2
ucomisd %xmm1, %xmm2
jbe 0x192e6
addq %rsi, %rax
subq $0x8, %rsp
leaq 0x128(%rsp), %rbx
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
movq 0x40(%rsp), %rdx
movq %rbx, %rcx
movl 0x3c(%rsp), %r8d
movq 0x78(%rsp), %r9
pushq %rax
movsd %xmm0, 0x10(%rsp)
callq 0x1b87c
addq $0x10, %rsp
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsbl (%rbx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rbp), %xmm2
divsd %xmm1, %xmm0
movsd (%rsp), %xmm1
addsd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x192d9
movq 0x50(%rsp), %rax
incl %eax
movq %rax, 0x50(%rsp)
decl %r13d
movq 0x18(%rsp), %rdx
movq 0x1e0(%rsp), %rsi
movslq 0x28(%rdx), %rax
movslq 0x4(%rdx), %rcx
addq %rax, %rcx
shlq $0x4, %rcx
movl -0x10(%rsi,%rcx), %eax
subl -0x20(%rsi,%rcx), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %rdx, %rbx
callq 0x21e0
movq 0x1e0(%rsp), %rcx
movslq 0x28(%rbx), %rdx
movslq 0x4(%rbx), %rax
addq %rdx, %rax
shlq $0x4, %rax
movzbl -0x4(%rcx,%rax), %edx
xorps %xmm1, %xmm1
cvtsi2sd %edx, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rbp), %xmm2
addsd %xmm0, %xmm2
ucomisd %xmm1, %xmm2
jbe 0x1a80a
addq %rcx, %rax
addq $-0x10, %rax
subq $0x8, %rsp
leaq 0x128(%rsp), %rbx
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
movq 0x40(%rsp), %rdx
movq %rbx, %rcx
movl 0x3c(%rsp), %r8d
movq 0x78(%rsp), %r9
pushq %rax
movsd %xmm0, 0x10(%rsp)
callq 0x1b87c
addq $0x10, %rsp
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsbl (%rbx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0xa8(%rbp), %xmm2
divsd %xmm1, %xmm0
movsd (%rsp), %xmm1
addsd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x1a811
movq %r13, %rdx
decl %edx
jmp 0x18395
movl %ecx, %eax
subl %r14d, %eax
movslq %eax, %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x21b0
movq 0x10(%rsp), %rcx
movl %ecx, %r13d
movl 0x40(%rsp), %eax
subl %eax, %r13d
movl %eax, %r15d
notl %r15d
cmpl $0x2, %r13d
movq 0x18(%rsp), %r9
jb 0x1941a
movl %r13d, %eax
shrl %eax
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 0x193fe
movq 0x8(%rsp), %r11
movl %r11d, %r8d
subl %r14d, %r8d
cmpl $0x2, %r8d
movq 0x78(%rsp), %rbx
jb 0x1948f
movl %r8d, %eax
shrl %eax
notl %r14d
leal (%r14,%r11), %ecx
xorl %edx, %edx
movq (%rsp), %r10
movb (%r10,%rdx), %sil
movl %ecx, %edi
movb (%r10,%rdi), %r9b
movb %r9b, (%r10,%rdx)
movb %sil, (%r10,%rdi)
incq %rdx
decl %ecx
cmpq %rdx, %rax
jne 0x19442
cmpl $0x2, %r8d
movq 0x18(%rsp), %r9
movq 0x78(%rsp), %rbx
jb 0x1948f
addl %r11d, %r14d
xorl %ecx, %ecx
movb (%rbx,%rcx), %dl
movl %r14d, %esi
movb (%rbx,%rsi), %dil
movb %dil, (%rbx,%rcx)
movb %dl, (%rbx,%rsi)
incq %rcx
decl %r14d
cmpq %rcx, %rax
jne 0x19473
movl 0x98(%rbp), %eax
movl 0x3c(%r9), %ecx
shrl $0x16, %ecx
andl $0x4, %ecx
movl 0x90(%rbp,%rcx), %r10d
movq 0xa8(%rsp), %r11
orl $0xc2, %r11d
subq $0x8, %rsp
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
movl %r13d, %edx
movq %r12, %rcx
movq 0x8(%rsp), %r9
movq 0x1f0(%rsp), %r14
pushq %r14
pushq %r11
pushq %r10
pushq %rax
pushq 0x170(%rsp)
leaq 0x150(%rsp), %rax
pushq %rax
pushq %rbx
callq 0x1a9d6
movq 0x58(%rsp), %rbx
addq $0x40, %rsp
movl 0x24(%r14), %esi
testl %esi, %esi
jle 0x19523
movq 0x30(%r14), %rdx
movq %rbx, %rdi
callq 0x1ad1f
movq 0x18(%rsp), %rbx
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl (%r14), %eax
movq 0x48(%rbx), %rcx
addl %eax, 0x4(%rcx)
movl 0x28(%r14), %eax
xorl %ecx, %ecx
testl %eax, %eax
setne %cl
movl 0x8(%r14,%rcx,8), %eax
notl %eax
je 0x19565
movq 0x10(%rsp), %rcx
movl 0x40(%rsp), %r10d
subl %ecx, %r10d
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x80(%rsp), %r8
movq 0x8(%rsp), %r11
jmp 0x19590
movl 0x4(%r14), %r10d
notl %r10d
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x80(%rsp), %r8
movq 0x8(%rsp), %r11
movq 0x10(%rsp), %rcx
addl %r11d, %eax
addl %ecx, %r10d
cmpl $0x2, %r13d
jae 0x195ae
movq 0xd0(%rsp), %r15
movq 0x1e8(%rsp), %r13
jmp 0x195f4
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 0x195b9
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq 0xd0(%rsp), %r15
movq 0x1e8(%rsp), %r13
movl %r11d, %eax
movl %r10d, 0xd8(%rsp)
testl %r10d, %r10d
js 0x1a883
testl %eax, %eax
js 0x1a883
movl %eax, 0xa0(%rsp)
leal -0x1(%rdx), %ecx
btl $0xc, %esi
movl $0x1, %eax
movl %ecx, %r14d
cmovael %eax, %r14d
movb $0x1, %al
cmpl %edx, %r14d
movq 0x10(%rsp), %r10
jge 0x1a475
movq 0xa8(%rsp), %rax
movl %eax, %r12d
shrl $0x9, %r12d
andl $0x1, %r12d
movl %r12d, 0x118(%rsp)
orl $0x8, %eax
movq %rax, 0x150(%rsp)
movslq %r14d, %r12
movq 0x50(%rsp), %rax
movslq %eax, %r11
incl %eax
movq %rax, 0x50(%rsp)
movslq %ecx, %rax
movq %rax, 0x168(%rsp)
decl %r14d
movq %r11, 0x178(%rsp)
shlq $0x4, %r11
movq %r12, %rcx
shlq $0x4, %rcx
addq %r11, %rcx
leaq (%rdi,%rcx), %rax
addq $-0x10, %rax
movq %rax, 0x160(%rsp)
movl $0x0, 0xf4(%rsp)
movl %r10d, %eax
movq %rax, 0xe8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x178(%rsp), %rax
leaq (%r12,%rax), %rcx
shlq $0x4, %rcx
movq 0x8(%rdi,%rcx), %rax
movabsq $0x60000000000, %r11    # imm = 0x60000000000
testq %r11, %rax
je 0x196f8
cmpq 0x168(%rsp), %r12
jne 0x1a155
movq %r12, 0xb0(%rsp)
btl $0xc, %esi
jae 0x19721
movq 0x38(%rsp), %rdx
testb $0x1, 0xc(%rdx)
jne 0x19721
movl (%rdi,%rcx), %r15d
incl %r15d
leal 0x1(%rax), %r8d
jmp 0x19838
leaq (%rdi,%rcx), %rdx
movq 0x38(%rsp), %r8
testb $0x1, 0xc(%r8)
movq (%rdi,%rcx), %r15
jne 0x19752
movl 0x8(%r8), %ecx
sarl %ecx
subl %ecx, %r15d
movl 0x8(%rdx), %r8d
subl %ecx, %r8d
movq 0x1e0(%rsp), %rdi
jmp 0x19838
movl %r14d, %r12d
movq %r15, %rcx
shrq $0x3f, %rcx
movq 0x70(%rsp), %rsi
movq (%rsi,%rcx,8), %rcx
movq 0x8(%rdx), %r14
movl %r14d, %edx
movslq %edx, %rsi
movb (%rcx,%rsi), %sil
testl %r14d, %r14d
movl $0x1, %edi
cmovlel %r14d, %edi
incl %r14d
movq %r8, %r9
cmpl $0x2, %edx
jl 0x1979d
leaq -0x1(%rdx), %r8
decl %r14d
cmpb %sil, -0x1(%rcx,%rdx)
movq %r8, %rdx
je 0x19785
jmp 0x197a0
movl %edi, %r14d
movq %r15, %rcx
shrq $0x20, %rcx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%r9), %rdx
movq 0x28(%r9), %rsi
movq 0x8(%rdx,%rcx,8), %rdi
movl %r15d, %edx
addq %rdi, %rdx
movq %rdx, %rcx
sarq $0x3, %rcx
movl (%rsi,%rcx,4), %r8d
leal (,%rdx,4), %ecx
shrl %cl, %r8d
leaq -0x1(%rdi), %r10
leal (%rdi,%r15), %ecx
leal -0x4(,%rcx,4), %r11d
movq %rdx, %r9
cmpq %rdi, %r9
jle 0x19814
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 0x197ec
jmp 0x19817
movq %r10, %r9
subl %edx, %r9d
addl %r9d, %r15d
incl %r15d
movq 0x18(%rsp), %rbx
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq %r14, %r8
movl %r12d, %r14d
movq 0x78(%rsp), %r12
movq 0x168(%rsp), %rcx
cmpq %rcx, 0xb0(%rsp)
je 0x1988b
movq %rax, %rcx
movabsq $0x10000000000, %rdx    # imm = 0x10000000000
andq %rdx, %rcx
jne 0x1988b
movl %r8d, %edx
subl 0xe8(%rsp), %edx
movl 0xa0(%rbp), %ecx
cmpl %ecx, %edx
jl 0x1999e
movl %r15d, %edx
subl 0xb8(%rsp), %edx
cmpl %ecx, %edx
jl 0x1999e
movl %r14d, 0x9c(%rsp)
movq %r8, 0x80(%rsp)
movl %r8d, %esi
subl 0xe8(%rsp), %esi
movl %r15d, %ecx
movq 0xb8(%rsp), %r8
subl %r8d, %ecx
cmpl %ecx, %esi
movl %ecx, 0x6c(%rsp)
movl %ecx, %edx
movq %rsi, 0x88(%rsp)
cmovgl %esi, %edx
movabsq $0x10000000000, %rcx    # imm = 0x10000000000
testq %rcx, %rax
cmovel 0x11c(%rsp), %edx
movq %rdx, 0x100(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%rbp)
jne 0x19922
movq 0x70(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq (%rax,%rcx,8), %rbx
movq 0x38(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %rsi
movl %r8d, %edx
movl %r15d, %ecx
movq (%rsp), %r8
callq 0x7224
jmp 0x1994e
movq 0x70(%rsp), %rax
movq (%rax), %rbx
movq 0x38(%rsp), %r14
movq %r14, %rdi
movq 0xc8(%rsp), %rsi
movq 0x48(%rsp), %rdx
movl %r8d, %ecx
movl %r15d, %r8d
movq (%rsp), %r9
callq 0x7338
cmpq $0x0, 0x40(%r14)
je 0x1997a
movslq 0xb8(%rsp), %rdx
movslq %r15d, %rcx
movq %r14, %rdi
movq 0x48(%rsp), %rsi
movl 0x118(%rsp), %r8d
movq %r12, %r9
callq 0xa4e1
jmp 0x199ca
cmpq $0x0, 0x38(%r14)
movq 0xb8(%rsp), %rdx
je 0x199bb
movq %r14, %rdi
movq 0x48(%rsp), %rsi
movl %r15d, %ecx
movq %r12, %r8
callq 0x965f
jmp 0x199ca
movl %r15d, %eax
movq %rax, 0x8(%rsp)
movl %r8d, %r10d
movq 0x60(%rsp), %rdx
movq 0xb0(%rsp), %r12
jmp 0x1a155
movslq 0x6c(%rsp), %rdx
movq %r12, %rdi
xorl %esi, %esi
callq 0x21b0
movslq 0xe8(%rsp), %rax
leaq (%rbx,%rax), %rcx
movq %rcx, 0x8(%rsp)
btl $0xc, 0x58(%rsp)
movq (%rsp), %r9
movq %r15, 0xd0(%rsp)
jb 0x19a41
movabsq $0x8000000080, %rcx     # imm = 0x8000000080
cmpq %rcx, 0x158(%rsp)
je 0x19a29
movq 0x28(%rsp), %rsi
movl 0x90(%rsi), %eax
subq $0x8, %rsp
movq 0x28(%rsp), %rdi
movq 0x90(%rsp), %rdx
movq 0x10(%rsp), %rcx
jmp 0x19b4d
movl 0x6c(%rsp), %r14d
subl 0x88(%rsp), %r14d
movq 0x28(%rsp), %rbp
jne 0x1a172
movq 0x88(%rsp), %rbx
cmpl 0x6c(%rsp), %ebx
jne 0x1a826
leal -0x2(%rbx), %eax
imull 0x64(%rbp), %eax
movl 0x70(%rbp), %r11d
addl 0x6c(%rbp), %r11d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq %rdx, 0x18(%r13)
movabsq $-0x3fffffff00000001, %rdx # imm = 0xC0000000FFFFFFFF
movq %rdx, 0x10(%r13)
movq %rdx, 0x8(%r13)
movq $0x0, 0x24(%r13)
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
movq %rdx, (%r13)
testl %ebx, %ebx
movq 0x8(%rsp), %rcx
jle 0x19aef
movl 0x1c(%r13), %edx
movl %ebx, %esi
xorl %edi, %edi
movb (%rcx,%rdi), %r8b
cmpb $0x3, %r8b
ja 0x19ab8
movb (%r9,%rdi), %r10b
cmpb $0x4, %r10b
jb 0x19ace
movl 0x80(%rbp), %r8d
movl %r8d, %r10d
negl %r10d
cmovnsl %r8d, %r10d
addl %r10d, %edx
jmp 0x19ae3
cmpb %r10b, %r8b
jne 0x19ad9
movl 0x64(%rbp), %r8d
jmp 0x19ae0
xorl %r8d, %r8d
subl 0x68(%rbp), %r8d
addl %r8d, %edx
movl %edx, 0x1c(%r13)
incq %rdi
cmpq %rdi, %rsi
jne 0x19aa4
addl %r11d, %r11d
subl %r11d, %eax
cmpl %eax, 0x1c(%r13)
jle 0x19b39
movq 0x30(%r13), %rax
cmpl $0x0, 0x20(%r13)
jne 0x19b20
movl $0x4, 0x20(%r13)
movl $0x10, %edx
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x127ec
movl %ebx, %ecx
shll $0x4, %ecx
movslq 0x24(%r13), %rdx
leal 0x1(%rdx), %esi
movl %esi, 0x24(%r13)
movl %ecx, (%rax,%rdx,4)
movq %rax, 0x30(%r13)
jmp 0x19b79
movl 0x90(%rbp), %eax
subq $0x8, %rsp
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
movl %ebx, %edx
movl 0x74(%rsp), %r8d
pushq %r13
pushq 0x160(%rsp)
pushq %rax
pushq $-0x1
pushq 0x128(%rsp)
leaq 0x150(%rsp), %rax
pushq %rax
pushq %r12
callq 0x1a9d6
addq $0x40, %rsp
movl 0x24(%r13), %r11d
testq %r11, %r11
je 0x19d95
movq 0x30(%r13), %rax
movq %rax, 0x108(%rsp)
movl $0x80000000, %edx       # imm = 0x80000000
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
xorl %edi, %edi
xorl %r13d, %r13d
xorl %r9d, %r9d
xorl %eax, %eax
movl $0xffffffff, 0xc0(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x90(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movq %rcx, 0x10(%rsp)
xorl %ecx, %ecx
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq %r11, 0x180(%rsp)
movq 0x108(%rsp), %rsi
movl (%rsi,%rdi,4), %r8d
movl %r8d, %r14d
shrl $0x4, %r14d
movl %r8d, %esi
andl $0xf, %esi
je 0x19c8d
cmpl $0x3, %esi
ja 0x19ca2
movq %rdi, %r12
movq 0x28(%rsp), %r8
movl 0x70(%r8), %r10d
movl %r10d, %edi
imull %r14d, %edi
addl 0x6c(%r8), %edi
subl %edi, %r13d
cmpl $0x1, %esi
movl $0x0, %r8d
cmovel %r14d, %r8d
movl $0x0, %esi
cmovel %esi, %r14d
addl %eax, %r8d
addl %r9d, %r14d
movl %edx, %ebx
subl %r13d, %ebx
jle 0x19d71
movl %r14d, %eax
subl %ebp, %eax
movl %r8d, %esi
subl %r15d, %esi
movl %eax, %edi
subl %esi, %edi
negl %edi
subl %esi, %eax
cmovgl %edi, %eax
imull %eax, %r10d
addl %r10d, %ebx
cmpl %ecx, %ebx
jle 0x19d7a
movl %r8d, %eax
movq %rax, 0x10(%rsp)
movl %r15d, 0x90(%rsp)
movl %r14d, 0xc0(%rsp)
movl %ebp, 0x40(%rsp)
jmp 0x19d7c
movq %rdi, 0x188(%rsp)
cmpl $0x10, %r8d
jae 0x19caf
movl %ecx, %ebx
jmp 0x19d53
movl %ecx, %ebx
movl %eax, %r8d
movl %r9d, %r14d
jmp 0x19d7f
movl %r9d, %r8d
movl %eax, %edi
movq %r14, %r11
movl %r13d, %esi
movl %r8d, %r10d
movq (%rsp), %rbx
movzbl (%rbx,%r10), %r10d
leaq (%r10,%r10,4), %r10
movl %edi, %r12d
movq 0x8(%rsp), %rbx
movzbl (%rbx,%r12), %r12d
addq %rsp, %r10
addq $0x120, %r10            # imm = 0x120
movsbl (%r12,%r10), %r13d
addl %esi, %r13d
movl %edx, %esi
subl %r13d, %esi
jle 0x19d38
movl %r8d, %ebx
subl %ebp, %ebx
movl %edi, %r10d
subl %r15d, %r10d
movl %ebx, %r12d
subl %r10d, %r12d
negl %r12d
subl %r10d, %ebx
cmovgl %r12d, %ebx
movq 0x28(%rsp), %r10
imull 0x70(%r10), %ebx
addl %esi, %ebx
cmpl %ecx, %ebx
jle 0x19d41
movl %edi, %ecx
movq %rcx, 0x10(%rsp)
movl %r15d, 0x90(%rsp)
movl %r8d, 0xc0(%rsp)
movl %ebp, 0x40(%rsp)
jmp 0x19d43
movl %r13d, %edx
movl %r8d, %ebp
movl %edi, %r15d
movl %ecx, %ebx
incl %edi
incl %r8d
movl %ebx, %ecx
decq %r11
jne 0x19cb7
addl %r14d, %r9d
addl %r14d, %eax
movl %eax, %r8d
movl %r9d, %r14d
movq 0x180(%rsp), %r11
movq 0x188(%rsp), %rdi
jmp 0x19d7f
movl %r13d, %edx
movl %r14d, %ebp
movl %r8d, %r15d
movl %ecx, %ebx
movq %r12, %rdi
incq %rdi
movl %r14d, %r9d
movl %r8d, %eax
movl %ebx, %ecx
cmpq %r11, %rdi
jne 0x19bde
jmp 0x19dbf
xorl %ebx, %ebx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x10(%rsp)
movl $0xffffffff, 0x90(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0xc0(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
movq 0x28(%rsp), %r12
testl $0x301080, (%r12)       # imm = 0x301080
movq 0x1e8(%rsp), %r13
jne 0x19f03
cmpl 0x94(%r12), %ebx
jle 0x19f03
movq 0x10(%rsp), %rax
movl %eax, %ebp
subl 0x90(%rsp), %ebp
movl 0x1c(%r12), %eax
cmpl %eax, %ebp
jge 0x19f03
movl 0xc0(%rsp), %ecx
subl 0x40(%rsp), %ecx
cmpl %eax, %ecx
jge 0x19f03
movl %ecx, %r14d
movslq %ebp, %rsi
movq 0x20(%rsp), %rdi
callq 0x126e9
testl %ebp, %ebp
movl $0x4, %edi
movq 0x8(%rsp), %r8
movq 0x10(%rsp), %r9
jle 0x19e66
movl %ebp, %r10d
decl %r9d
xorl %ecx, %ecx
movslq %r9d, %r9
movb (%r8,%r9), %dl
movb $0x3, %sil
subb %dl, %sil
cmpb $0x4, %dl
movzbl %sil, %edx
cmovael %edi, %edx
movb %dl, (%rax,%rcx)
incq %rcx
decl %r9d
cmpq %rcx, %r10
jne 0x19e41
movq 0x20(%rsp), %r15
movq %r15, %rdi
movl $0x2, %esi
movl %ebp, %edx
movq %rax, %rcx
movl $0x5, %r8d
leaq 0x120(%rsp), %r9
movq %rax, 0x10(%rsp)
callq 0x1e98c
movq %rax, %rbp
movslq 0x40(%rsp), %rdx
addq (%rsp), %rdx
movl 0x6c(%r12), %ecx
movl 0x70(%r12), %r8d
subq $0x8, %rsp
movq %rax, %rdi
movl %r14d, %esi
leaq 0xac(%rsp), %r9
leaq 0x19c(%rsp), %rax
pushq %rax
callq 0x1eb6a
addq $0x10, %rsp
movl %eax, %r14d
movq %r15, %rdi
movq 0x10(%rsp), %rsi
callq 0x1261e
movq %r15, %rdi
movq %rbp, %rsi
callq 0x1261e
movl 0x64(%r12), %eax
imull 0x34(%r12), %eax
cmpl %eax, %r14d
jl 0x19f03
cmpl 0x9c(%r12), %r14d
jge 0x1a45f
xorl %r14d, %r14d
cmpl 0x90(%r12), %ebx
setg %r14b
testl %r14d, %r14d
movq 0xd0(%rsp), %r15
je 0x19f7f
xorl %eax, %eax
cmpl $0x2, %r14d
sete %al
movl 0x90(%r12,%rax,4), %eax
subq $0x8, %rsp
movq 0x28(%rsp), %rdi
movq %r12, %rsi
movq 0x90(%rsp), %rdx
movq 0x10(%rsp), %rcx
movl 0x74(%rsp), %r8d
movq 0x8(%rsp), %r9
pushq %r13
pushq 0xb8(%rsp)
pushq %rax
pushq $-0x1
pushq 0x128(%rsp)
leaq 0x150(%rsp), %rax
pushq %rax
pushq 0xb0(%rsp)
callq 0x1a9d6
addq $0x40, %rsp
movl 0x24(%r13), %esi
testl %esi, %esi
jle 0x19f95
movq 0x30(%r13), %rdx
movq 0x18(%rsp), %rdi
callq 0x1ad1f
movl (%r13), %ebp
testl %ebp, %ebp
movq 0x18(%rsp), %rbx
js 0x19fed
movl 0x1c(%r13), %eax
movq 0x48(%rbx), %rcx
addl %eax, 0x4(%rcx)
movl %r15d, %eax
movq %rax, 0xb8(%rsp)
movq 0x80(%rsp), %r8
movl %r8d, %eax
movq %rax, 0xe8(%rsp)
movl %r15d, %eax
movq %rax, 0x8(%rsp)
movl %r8d, %r10d
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0x60(%rsp), %rdx
jmp 0x1a138
cmpq $0x0, 0x48(%rbx)
jne 0x1a01d
cmpl $0x0, 0x24(%r13)
jne 0x1a8ff
movl $0x8, %edi
movl $0x4, %esi
callq 0x2230
movq 0x18(%rsp), %rbx
movq %rax, 0x48(%rbx)
movl $0x8, (%rax)
movq 0x160(%rsp), %rax
movl 0x9c(%rsp), %esi
movq 0xb0(%rsp), %rcx
movl %esi, %edx
testq %rcx, %rcx
jle 0x1a057
movl 0x8(%r13), %edi
addl 0xb8(%rsp), %edi
leal -0x1(%rdx), %esi
leaq -0x10(%rax), %r8
decq %rcx
cmpl (%rax), %edi
movq %r8, %rax
jl 0x1a034
testl %edx, %edx
movl $0x0, %eax
cmovlel %eax, %edx
movl (%r13), %eax
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
andl %ecx, %eax
movq 0x48(%rbx), %rcx
addl %eax, 0x4(%rcx)
movl 0x4(%r13), %eax
movl 0x8(%r13), %ecx
movq 0xb8(%rsp), %rsi
leal (%rsi,%rcx), %r12d
incl %r12d
movq 0xe8(%rsp), %rcx
leal (%rcx,%rax), %r10d
incl %r10d
movl %edx, %eax
notl %eax
addl 0x60(%rsp), %eax
movl $0x1, 0xf4(%rsp)
movq 0x28(%rsp), %rcx
cmpl 0x30(%rcx), %eax
movq %r12, 0x8(%rsp)
jge 0x1a0d7
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x80(%rsp), %r8
jmp 0x1a138
movq %r10, 0x10(%rsp)
addl 0x50(%rsp), %edx
subl 0x28(%rbx), %edx
movl 0x4(%rcx), %r9d
andl $0x1, %r9d
movq %rbx, %rdi
movq 0x1d0(%rsp), %rbx
movq %rbx, %rsi
movl 0x34(%rsp), %ecx
movq 0x1e0(%rsp), %r8
callq 0x1bf2d
cmpl $0x2, %r14d
jne 0x1a114
orb $0x1, 0x3f(%rbx)
movq 0x18(%rsp), %rbx
movq 0x58(%rsp), %rsi
movq 0x1e0(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x80(%rsp), %r8
movq 0x10(%rsp), %r10
movl 0x9c(%rsp), %r14d
movq 0xb0(%rsp), %r12
testl %ebp, %ebp
movq 0x28(%rsp), %rbp
js 0x1a46a
incq %r12
incl %r14d
addq $0x10, 0x160(%rsp)
cmpl %r12d, %edx
jne 0x196c6
jmp 0x1a46a
testb $-0x80, (%rbp)
je 0x19a03
cmpl $0x64, 0x88(%rsp)
jg 0x19a03
movq 0x28(%rsp), %rcx
movslq 0x74(%rcx), %rdx
movq 0x88(%rsp), %rcx
addl %edx, %ecx
addl %ecx, %ecx
movl 0x6c(%rsp), %ebp
movl %ecx, 0x10(%rsp)
subl %ecx, %ebp
jl 0x19a03
movq %rdx, 0x40(%rsp)
xorl %esi, %esi
movq 0x88(%rsp), %rdi
movl %edi, %ecx
movl $0x0, %edx
testl %edi, %edi
movq 0x8(%rsp), %r11
jle 0x1a1f8
xorl %edi, %edi
xorl %edx, %edx
movb (%r11,%rdi), %r8b
cmpb (%r9,%rdi), %r8b
sete %r10b
cmpb $0x4, %r8b
setb %r8b
andb %r10b, %r8b
movzbl %r8b, %r8d
addl %r8d, %edx
incq %rdi
cmpq %rdi, %rcx
jne 0x1a1d2
cmpl $0x0, 0x88(%rsp)
jle 0x1a23f
addq %rbx, %rax
decq %rax
movq 0xb8(%rsp), %rdi
notl %edi
addl %r15d, %edi
xorl %esi, %esi
movb (%rax,%rcx), %r8b
movslq %edi, %rdi
cmpb (%r9,%rdi), %r8b
sete %r10b
cmpb $0x4, %r8b
setb %r8b
andb %r10b, %r8b
movzbl %r8b, %r8d
addl %r8d, %esi
decl %edi
decq %rcx
jne 0x1a217
addl %esi, %edx
movq 0x88(%rsp), %rax
subl %edx, %eax
cmpl $0x9, %eax
movq 0x40(%rsp), %rcx
jg 0x19a03
movl %ebp, 0x90(%rsp)
movq 0x28(%rsp), %rax
movl 0x90(%rax), %eax
movq %rax, 0xc0(%rsp)
addq %rcx, %rcx
movq 0x88(%rsp), %rbp
movslq %ebp, %r12
movq 0xf8(%rsp), %rbx
movq %rbx, %rdi
movq %r9, %rsi
movq %r12, %rdx
movq %r9, %r15
movq %rcx, %r13
callq 0x22a0
leaq (%rbx,%r12), %rdi
movl $0x4, %esi
movq %r13, %rdx
callq 0x21b0
leal (%r13,%rbp), %eax
cltq
movq %rax, 0x40(%rsp)
leaq (%rbx,%rax), %rdi
movq 0x78(%rsp), %rbx
movslq %r14d, %r14
leaq (%r15,%r14), %rsi
movq %r12, %rdx
callq 0x22a0
testq %rbx, %rbx
movq 0x170(%rsp), %rbp
je 0x1a311
movq %rbp, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x22a0
leaq (%r12,%rbp), %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x21b0
movq 0x40(%rsp), %rdi
addq %rbp, %rdi
addq %rbx, %r14
movq %r14, %rsi
movq %r12, %rdx
callq 0x22a0
xorl %r14d, %r14d
movq 0x28(%rsp), %rcx
btq $0x23, (%rcx)
setae %r14b
shll $0xb, %r14d
orl 0xa8(%rsp), %r14d
orl $0x8, %r14d
movsbl 0x6c(%rcx), %eax
movsbl 0x70(%rcx), %r10d
movsbl 0x74(%rcx), %r11d
movsbl 0x84(%rcx), %r15d
movsbl 0x88(%rcx), %r12d
movsbl 0x8c(%rcx), %r13d
movq 0x20(%rsp), %rdi
movq 0x88(%rsp), %rsi
movq 0x8(%rsp), %rdx
movl 0x10(%rsp), %ecx
movq 0xf8(%rsp), %r8
movl $0x5, %r9d
movq 0x1e8(%rsp), %rbx
pushq %rbx
pushq %rbp
pushq %r14
pushq %r13
movq %rbx, %r13
movq 0x98(%rsp), %rbx
pushq %r12
movq %rbx, %r12
pushq $-0x1
pushq 0xf0(%rsp)
pushq %r15
pushq %r11
pushq %r10
pushq %rax
leaq 0x178(%rsp), %rax
pushq %rax
callq 0x1f0e5
addq $0x60, %rsp
cmpl $0x0, (%r13)
movq (%rsp), %r9
movl 0x90(%rsp), %r10d
js 0x19a03
movq 0x30(%r13), %rax
testb $0xf, (%rax)
jne 0x19a03
movslq 0x24(%r13), %rcx
testq %rcx, %rcx
jle 0x19a03
movl -0x4(%rax,%rcx,4), %edx
andl $0xf, %edx
jne 0x19a03
xorl %esi, %esi
xorl %edx, %edx
xorl %edi, %edi
movl (%rax,%rsi,4), %r8d
andl $0xf, %r8d
cmpl $0x1, %r8d
je 0x1a418
cmpl $0x3, %r8d
jne 0x1a41a
incl %edi
jmp 0x1a41a
incl %edx
incq %rsi
cmpq %rsi, %rcx
jne 0x1a400
cmpl $0x1, %edi
setne %cl
testl %edx, %edx
setg %dl
orb %cl, %dl
jne 0x19a03
shll $0x4, %r10d
xorl %ecx, %ecx
movl (%rax,%rcx,4), %edx
movl %edx, %esi
andl $0xf, %esi
cmpl $0x3, %esi
jne 0x1a44e
addl %r10d, %edx
movl %edx, (%rax,%rcx,4)
incq %rcx
movslq 0x24(%r13), %rdx
cmpq %rdx, %rcx
jl 0x1a43b
jmp 0x19b79
movl $0x2, %r14d
jmp 0x19f12
cmpl $0x0, 0xf4(%rsp)
sete %al
testb %al, %al
je 0x1a581
subl %r8d, 0xdc(%rsp)
movq 0x8(%rsp), %r11
jle 0x1a658
movl 0x98(%rsp), %r12d
subl %r15d, %r12d
jle 0x1a658
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%rbp)
movq %r8, 0x80(%rsp)
movslq %r8d, %r14
jne 0x1a4ef
movq 0x70(%rsp), %rax
movq 0xc8(%rsp), %rcx
addq (%rax,%rcx,8), %r14
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0x48(%rsp), %rsi
movl %r15d, %edx
movl 0x98(%rsp), %ecx
movq (%rsp), %r8
callq 0x7224
jmp 0x1a520
movq 0x70(%rsp), %rax
addq (%rax), %r14
movq 0x38(%rsp), %rbx
movq %rbx, %rdi
movq 0xc8(%rsp), %rsi
movq 0x48(%rsp), %rdx
movl %r15d, %ecx
movl 0x98(%rsp), %r8d
movq (%rsp), %r9
callq 0x7338
cmpq $0x0, 0x40(%rbx)
movq %rbx, %rdi
je 0x1a55c
movq 0xa8(%rsp), %rbx
movl %ebx, %r8d
shrl $0x9, %r8d
andl $0x1, %r8d
movslq %r15d, %rdx
movslq 0x98(%rsp), %rcx
movq 0x48(%rsp), %rsi
movq 0x78(%rsp), %r13
movq %r13, %r9
callq 0xa4e1
jmp 0x1a5a5
cmpq $0x0, 0x38(%rdi)
je 0x1a58b
movq 0x48(%rsp), %rsi
movl %r15d, %edx
movl 0x98(%rsp), %ecx
movq 0x78(%rsp), %r13
movq %r13, %r8
callq 0x965f
jmp 0x1a59d
movq 0x8(%rsp), %r11
jmp 0x1a658
movslq %r12d, %rdx
movq 0x78(%rsp), %r13
movq %r13, %rdi
xorl %esi, %esi
callq 0x21b0
movq 0xa8(%rsp), %rbx
movl 0x90(%rbp), %eax
movl 0x98(%rbp), %r10d
orl $0x40, %ebx
subq $0x8, %rsp
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
movl 0xe4(%rsp), %edx
movq %r14, %rcx
movl %r12d, %r8d
movq 0x8(%rsp), %r9
movq 0x1f0(%rsp), %r14
pushq %r14
pushq %rbx
pushq %rax
pushq %r10
pushq 0x170(%rsp)
leaq 0x150(%rsp), %rax
pushq %rax
pushq %r13
callq 0x1a9d6
addq $0x40, %rsp
movl 0x24(%r14), %esi
testl %esi, %esi
movq 0x18(%rsp), %rbx
jle 0x1a629
movq 0x30(%r14), %rdx
movq %rbx, %rdi
callq 0x1ad1f
movq 0x18(%rsp), %rbx
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl (%r14), %eax
movq 0x48(%rbx), %rcx
addl %eax, 0x4(%rcx)
xorl %eax, %eax
cmpl $0x0, 0x28(%r14)
setne %al
movl 0x8(%r14,%rax,8), %eax
movl 0xdc(%rsp), %ecx
jne 0x1a647
movl 0x4(%r14), %ecx
incl %ecx
leal (%r15,%rax), %r11d
incl %r11d
addl 0x80(%rsp), %ecx
movl %ecx, %r10d
movl 0x34(%rsp), %eax
subl %r10d, %eax
jl 0x1a8a2
movl 0xa0(%rsp), %ecx
movl %ecx, 0x18(%rbx)
movl %r11d, 0x1c(%rbx)
cmpq $0x0, 0xe0(%rsp)
movl 0x114(%rsp), %ecx
jns 0x1a6a8
movabsq $0x100000000, %rdx      # imm = 0x100000000
testq %rdx, (%rbp)
jne 0x1a6a8
movl %eax, 0x10(%rbx)
movl 0x34(%rsp), %eax
subl 0xd8(%rsp), %eax
movl %eax, %r10d
jmp 0x1a6b2
movl 0xd8(%rsp), %eax
movl %eax, 0x10(%rbx)
movl %r10d, 0x14(%rbx)
movl %r11d, %eax
subl 0xa0(%rsp), %eax
cmpl %ecx, %eax
movq 0x78(%rsp), %r15
jg 0x1a8c1
cmpq $0x0, 0x48(%rbx)
je 0x1a7c7
movabsq $0x100000000, %rax      # imm = 0x100000000
testq %rax, (%rbp)
jne 0x1a71b
movq 0x38(%rsp), %rdi
movq 0x48(%rsp), %rsi
movl 0xa0(%rsp), %edx
movl %r11d, %ecx
movq (%rsp), %r14
movq %r14, %r8
callq 0x7224
movl 0x3c(%rbx), %eax
shrl $0x7, %eax
andl $0x8, %eax
movq 0x70(%rsp), %rdx
addq %rax, %rdx
jmp 0x1a749
movl 0x3c(%rbx), %esi
shrl $0xa, %esi
andl $0x1, %esi
movq 0x38(%rsp), %rdi
movq 0x48(%rsp), %rdx
movl 0xa0(%rsp), %ecx
movl %r11d, %r8d
movq (%rsp), %r14
movq %r14, %r9
callq 0x7338
movq 0x70(%rsp), %rdx
movabsq $0x8000000080, %rax     # imm = 0x8000000080
cmpq %rax, 0x158(%rsp)
setne %al
btl $0xc, 0x58(%rsp)
setae %cl
movl 0xd8(%rsp), %esi
addq (%rdx), %rsi
movsbl 0x6c(%rbp), %r8d
movsbl 0x70(%rbp), %r9d
movl $0x4000000, %r10d       # imm = 0x4000000
andl (%rbp), %r10d
andb %al, %cl
movzbl %cl, %eax
leaq 0x120(%rsp), %rcx
movq %rbx, %rdi
movq %r14, %rdx
pushq %rax
pushq %r10
callq 0x1adaa
addq $0x10, %rsp
cmpq $0x0, 0xe0(%rsp)
jns 0x1a7c7
movq 0x48(%rbx), %rax
movl 0x14(%rax), %ecx
cmpl $0x40000000, %ecx       # imm = 0x40000000
jb 0x1a7c7
xorl $0xc0000000, %ecx       # imm = 0xC0000000
movl %ecx, 0x14(%rax)
movq 0xf8(%rsp), %rsi
testq %rsi, %rsi
movq 0x20(%rsp), %rbx
je 0x1a7e1
movq %rbx, %rdi
callq 0x1261e
movq %rbx, %rdi
movq (%rsp), %rsi
callq 0x1261e
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1261e
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x20(%rsp), %rbx
jmp 0x1a81e
movq 0x20(%rsp), %rbx
movq 0x1e0(%rsp), %rcx
movq %r13, %rdx
jmp 0x183b2
leaq 0x12e6f(%rip), %rdi     # 0x2d69c
leaq 0x12da3(%rip), %rsi     # 0x2d5d7
leaq 0x12da4(%rip), %rcx     # 0x2d5df
movl $0x339, %edx            # imm = 0x339
callq 0x21a0
leaq 0x12e1f(%rip), %rdi     # 0x2d66b
leaq 0x12d84(%rip), %rsi     # 0x2d5d7
leaq 0x12d85(%rip), %rcx     # 0x2d5df
movl $0x2aa, %edx            # imm = 0x2AA
callq 0x21a0
leaq 0x12e12(%rip), %rdi     # 0x2d67d
leaq 0x12d65(%rip), %rsi     # 0x2d5d7
leaq 0x12d66(%rip), %rcx     # 0x2d5df
movl $0x301, %edx            # imm = 0x301
callq 0x21a0
leaq 0x12dfd(%rip), %rdi     # 0x2d687
leaq 0x12d46(%rip), %rsi     # 0x2d5d7
leaq 0x12d47(%rip), %rcx     # 0x2d5df
movl $0x321, %edx            # imm = 0x321
callq 0x21a0
leaq 0x12e17(%rip), %rdi     # 0x2d6c0
leaq 0x12d27(%rip), %rsi     # 0x2d5d7
leaq 0x12d28(%rip), %rcx     # 0x2d5df
movl $0x37b, %edx            # imm = 0x37B
callq 0x21a0
leaq 0x12e04(%rip), %rdi     # 0x2d6cc
leaq 0x12d08(%rip), %rsi     # 0x2d5d7
leaq 0x12d09(%rip), %rcx     # 0x2d5df
movl $0x381, %edx            # imm = 0x381
callq 0x21a0
leaq 0x12cd9(%rip), %rdi     # 0x2d5c0
leaq 0x12ce9(%rip), %rsi     # 0x2d5d7
leaq 0x12cea(%rip), %rcx     # 0x2d5df
movl $0x28f, %edx            # imm = 0x28F
callq 0x21a0
leaq 0x12da9(%rip), %rdi     # 0x2d6af
leaq 0x12cca(%rip), %rsi     # 0x2d5d7
leaq 0x12ccb(%rip), %rcx     # 0x2d5df
movl $0x352, %edx            # imm = 0x352
callq 0x21a0
leaq 0x12d4f(%rip), %rdi     # 0x2d674
leaq 0x12cab(%rip), %rsi     # 0x2d5d7
leaq 0x12cac(%rip), %rcx     # 0x2d5df
movl $0x2c5, %edx            # imm = 0x2C5
callq 0x21a0