// File: /workspace/github_c_makefile_star2_O1/lh3[P]fermi2/match.c
// Function: discover
static void discover(const rld_t *e, const fmdsmem_t *q, const fmdsmem_t *p, int l_seq, const char *seq, const char *qual, kstring_t *s, kstring_t cmp[2])
{
	int start, end, i, ext[2], left, right, tmp_l, pos;
	int64_t occ[2];
	rldintv_t ovlp;

	// find the coordinate from which the extension will be applied
	if (q == 0 && p == 0) {
		start = 0; end = l_seq;
	} else if (q == 0) {
		if (p->ik.info>>32 == 0) return; // no novel allele
		start = 0; end = p->ik.info>>32;
	} else if (p == 0) {
		if ((uint32_t)q->ik.info == l_seq) return; // no novel allele
		start = (uint32_t)q->ik.info; end = l_seq;
	} else {
		start = (uint32_t)q->ik.info, end = p->ik.info>>32;
		if (start >= end && q->ok[1][0].x[2] == q->ik.x[2] && p->ik.x[2] == p->ok[0][0].x[2]) return;
	}
	// find the SAI for the overlap (if applicable)
	memset(&ovlp, 0, sizeof(rldintv_t));
	ovlp.x[2] = e->mcnt[0];
	if (start <= end) { // no overlap
		left = start - 1, right = end;
		for (i = left + 1; i < right; ++i)
			if (seq[i] < 5) break;
		if (i == end) return; // the gap is filled with "N"
	} else {
		rldintv_t ok[6];
		left = end - 1, right = start;
		for (i = right - 1; i > left; --i) {
			rld_extend(e, &ovlp, ok, 1);
			ovlp = ok[(int)seq[i]];
			assert(ovlp.x[2] > 0);
		}
	}
	occ[0] = occ[1] = 0;
	ext[0] = ext[1] = 0;
	// left extension
	if (left >= 0) {
		int64_t l = ovlp.x[0], u = l + ovlp.x[2];
		uint64_t ol[6], ou[6];
		for (i = left; i >= 0; --i) {
			int c = seq[i];
			rld_rank1a(e, l, ol);
			rld_rank1a(e, u, ou);
			l = e->cnt[c] + ol[c];
			u = e->cnt[c] + ou[c];
			if (u - l <= q->ik.x[2]) break;
		}
		assert(i >= 0 && u - l == q->ik.x[2]);
		ext[0] = left + 1 - i;
		occ[0] = u - l;
	}
	// right extension
	if (right < l_seq) {
		int64_t l = ovlp.x[1], u = l + ovlp.x[2];
		uint64_t ol[6], ou[6];
		for (i = right; i < l_seq; ++i) {
			int c = fmd_comp(seq[i]);
			rld_rank1a(e, l, ol);
			rld_rank1a(e, u, ou);
			l = e->cnt[c] + ol[c];
			u = e->cnt[c] + ou[c];
			if (u - l <= p->ik.x[2]) break;
		}
		assert(i < l_seq && u - l == p->ik.x[2]);
		ext[1] = i + 1 - right;
		occ[1] = u - l;
	}
	if (ovlp.x[2] == occ[0] + occ[1]) return;
	// cut sequence
	pos = left + 1 - ext[0];
	cmp[0].l = cmp[1].l = 0;
	kputsn(&seq[pos], (right + ext[1]) - (left + 1 - ext[0]), &cmp[0]);
	kputsn(cmp[0].s, cmp[0].l, &cmp[1]);
	seq_revcomp6(cmp[1].l, (uint8_t*)cmp[1].s);
	// print
	if (ovlp.x[2] == e->mcnt[0]) ovlp.x[2] = 0;
	ksprintf(s, "NS\t%d\t", pos);
	tmp_l = end < start? start - end : 0;
	if (strcmp(cmp[0].s, cmp[1].s) <= 0) {
		ksprintf(s, "+\t%d\t%d\t%d\t%ld\t%ld\t%ld\t", ext[0] + tmp_l, end - start, ext[1] + tmp_l, (long)occ[0], (long)ovlp.x[2], (long)occ[1]);
		for (i = 0; i < cmp[0].l; ++i)
			kputc("$ACGTN"[(int)cmp[0].s[i]], s);
		kputc('\t', s);
		if (qual) kputsn(&qual[pos], cmp[0].l, s);
		else kputc('*', s);
	} else {
		ksprintf(s, "-\t%d\t%d\t%d\t%ld\t%ld\t%ld\t", ext[1] + tmp_l, end - start, ext[0] + tmp_l, (long)occ[1], (long)ovlp.x[2], (long)occ[0]);
		for (i = 0; i < cmp[0].l; ++i)
			kputc("$ACGTN"[(int)cmp[1].s[i]], s);
		kputc('\t', s);
		if (qual) {
			for (i = pos + cmp[0].l - 1; i >= pos; --i)
				kputc(qual[i], s);
		} else kputc('*', s);
	}
	kputc('\n', s);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %r8, 0x18(%rsp)
movq %rsi, %rbp
movq %rdi, %r12
xorl %r8d, %r8d
movq %rsi, %rax
orq %rdx, %rax
movq %rdx, 0x28(%rsp)
movq %r9, 0x78(%rsp)
jne 0x19b5d
movl %ecx, %edi
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movq 0x28(%r12), %rax
movq (%rax), %rax
movq %rax, 0x60(%rsp)
cmpl %edi, %r8d
movl %r8d, 0x14(%rsp)
movq %rdi, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
jle 0x19ba3
movq %rbp, 0x8(%rsp)
movslq %r8d, %r13
movslq %edi, %r14
leaq 0x50(%rsp), %rbx
leaq 0xc0(%rsp), %r15
cmpq %r14, %r13
jle 0x19bd2
leaq -0x1(%r13), %rbp
movq %r12, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0x1, %ecx
callq 0x5027
movq 0x18(%rsp), %rax
movsbq -0x1(%rax,%r13), %rax
shlq $0x5, %rax
movups 0xc0(%rsp,%rax), %xmm0
movups 0xd0(%rsp,%rax), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
cmpq $0x0, 0x60(%rsp)
movq %rbp, %r13
jne 0x19aea
leaq 0x44c3(%rip), %rdi      # 0x1e008
leaq 0x44ca(%rip), %rsi      # 0x1e016
leaq 0x44cb(%rip), %rcx      # 0x1e01e
movl $0xae, %edx
callq 0x2120
testq %rbp, %rbp
je 0x19db4
movl 0x18(%rbp), %r8d
testq %rdx, %rdx
je 0x1a304
movl 0x1c(%rdx), %edi
cmpl %edi, %r8d
jl 0x19aa0
movq 0xf0(%rbp), %rax
cmpq 0x10(%rbp), %rax
jne 0x19aa0
movq 0x10(%rdx), %rax
cmpq 0x30(%rdx), %rax
jne 0x19aa0
jmp 0x1a413
movl %r8d, %eax
jge 0x19bc3
movslq %r8d, %rdx
addq 0x18(%rsp), %rdx
movl %r8d, %eax
cmpb $0x5, (%rdx)
jl 0x19bc3
incl %eax
incq %rdx
cmpl %eax, %edi
jne 0x19bb3
movl %edi, %eax
movl %r8d, %edx
movl %edi, %r9d
cmpl %edi, %eax
jne 0x19beb
jmp 0x1a413
movq 0x40(%rsp), %rdi
movl %edi, %edx
movl 0x14(%rsp), %r8d
movl %r8d, %r9d
movq 0x38(%rsp), %rcx
movq 0x8(%rsp), %rbp
xorl %esi, %esi
testl %edx, %edx
movq %rdx, 0x20(%rsp)
movq %r9, 0x30(%rsp)
jle 0x19c6f
movq 0x50(%rsp), %rsi
movq 0x60(%rsp), %r13
addq %rsi, %r13
movl %edx, %ebx
movq %rbx, %r14
testq %rbx, %rbx
jle 0x19c7c
leaq -0x1(%r14), %rbx
movq 0x18(%rsp), %rax
movsbq -0x1(%rax,%r14), %r15
movq %r12, %rdi
leaq 0xc0(%rsp), %rdx
callq 0x4a3f
movq %r12, %rdi
movq %r13, %rsi
leaq 0x90(%rsp), %rdx
callq 0x4a3f
movq 0x20(%r12), %rax
movq (%rax,%r15,8), %r13
movq 0xc0(%rsp,%r15,8), %rax
leaq (%rax,%r13), %rsi
movq 0x90(%rsp,%r15,8), %rcx
addq %rcx, %r13
subq %rax, %rcx
cmpq 0x10(%rbp), %rcx
ja 0x19c0a
jmp 0x19c81
movl $0x0, 0x10(%rsp)
xorl %r13d, %r13d
jmp 0x19cb8
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq 0x30(%rsp), %r9
testq %r14, %r14
jle 0x1a425
subq %rsi, %r13
cmpq 0x10(%rbp), %r13
jne 0x1a425
movq 0x20(%rsp), %rax
subl %ebx, %eax
movl %eax, 0x10(%rsp)
movl 0x14(%rsp), %r8d
movq 0x40(%rsp), %rdi
xorl %esi, %esi
movq 0x38(%rsp), %rcx
cmpl %ecx, %r9d
jge 0x19daf
movq %r13, 0x80(%rsp)
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rbp
addq %rsi, %rbp
cmpl %r8d, %edi
movq %r12, 0x8(%rsp)
movl %r8d, %r12d
cmovgl %edi, %r12d
movslq %r12d, %r14
movslq %ecx, %rax
movq %rax, 0x88(%rsp)
leal (%r14,%rcx), %eax
subl %r9d, %eax
movl %eax, 0x4c(%rsp)
incq %r14
movb $0x1, %r13b
movq 0x8(%rsp), %rbx
movq 0x18(%rsp), %rax
movzbl -0x1(%rax,%r14), %eax
movb $0x5, %cl
subb %al, %cl
leal -0x1(%rax), %edx
cmpb $0x4, %dl
movzbl %cl, %r15d
cmovael %eax, %r15d
movq %rbx, %rdi
leaq 0xc0(%rsp), %rdx
callq 0x4a3f
movq %rbx, %rdi
movq %rbp, %rsi
leaq 0x90(%rsp), %rdx
callq 0x4a3f
movsbq %r15b, %rax
movq 0xc0(%rsp,%rax,8), %rsi
movq 0x90(%rsp,%rax,8), %rbp
movq %rbp, %r15
subq %rsi, %r15
movq 0x28(%rsp), %rcx
cmpq 0x10(%rcx), %r15
jbe 0x19dc7
movq 0x8(%rsp), %rcx
movq 0x20(%rcx), %rcx
movq (%rcx,%rax,8), %rax
addq %rax, %rsi
addq %rax, %rbp
cmpq 0x88(%rsp), %r14
setl %r13b
incl %r12d
incq %r14
cmpl %r12d, 0x4c(%rsp)
jne 0x19d09
movq 0x8(%rsp), %rax
movq 0x38(%rsp), %rsi
movq 0x28(%rsp), %rcx
jmp 0x19dcf
xorl %r15d, %r15d
jmp 0x19df8
movq 0x18(%rdx), %rdi
shrq $0x20, %rdi
jne 0x19aa0
jmp 0x1a413
movq 0x8(%rsp), %rax
movq %r12, %rsi
testb $0x1, %r13b
movq 0x30(%rsp), %r9
je 0x1a444
cmpq 0x10(%rcx), %r15
jne 0x1a444
movq %rax, %r12
subl %r9d, %esi
incl %esi
movq 0x80(%rsp), %r13
leaq (%r15,%r13), %rax
cmpq %rax, 0x60(%rsp)
movq 0x20(%rsp), %rcx
je 0x1a413
movq 0x1c8(%rsp), %rdx
subl 0x10(%rsp), %ecx
xorl %eax, %eax
movl %eax, 0x10(%rdx)
movl %eax, (%rdx)
movq %rcx, 0x20(%rsp)
movslq %ecx, %rax
addq %rax, 0x18(%rsp)
movq %rax, 0x28(%rsp)
subl %eax, %r9d
movl %r9d, %ebx
addl %esi, %ebx
movq %rsi, 0x8(%rsp)
leal (%r9,%rsi), %eax
incl %eax
cmpl 0x4(%rdx), %eax
jb 0x19e8d
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%rdx)
movq 0x1c8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x2260
movq 0x1c8(%rsp), %rcx
movq %rax, 0x8(%rcx)
movq 0x1c8(%rsp), %rax
movl (%rax), %edi
addq 0x8(%rax), %rdi
movslq %ebx, %rbp
movq 0x18(%rsp), %rsi
movq %rbp, %rdx
callq 0x21f0
movq 0x1c8(%rsp), %rdx
addl (%rdx), %ebp
movl %ebp, (%rdx)
movq 0x8(%rdx), %rax
movb $0x0, (%rax,%rbp)
movq 0x8(%rdx), %rsi
movslq (%rdx), %rbp
movl 0x10(%rdx), %eax
addl %ebp, %eax
incl %eax
cmpl 0x14(%rdx), %eax
jb 0x19f1c
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movq %rsi, %rbx
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x14(%rdx)
movq 0x1c8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x2260
movq %rbx, %rsi
movq 0x1c8(%rsp), %rdx
movq %rax, 0x18(%rdx)
movq 0x1c0(%rsp), %r14
movq %rdx, %rbx
movl 0x10(%rdx), %edi
addq 0x18(%rdx), %rdi
movq %rbp, %rdx
callq 0x21f0
movl 0x10(%rbx), %eax
addl %ebp, %eax
movl %eax, 0x10(%rbx)
movq 0x18(%rbx), %rcx
movb $0x0, (%rcx,%rax)
movl 0x10(%rbx), %edi
movq 0x18(%rbx), %rsi
callq 0xdd36
movq 0x60(%rsp), %rax
movq 0x28(%r12), %rcx
cmpq (%rcx), %rax
movq 0x40(%rsp), %rax
jne 0x19f6f
movq $0x0, 0x60(%rsp)
movl 0x14(%rsp), %ebp
subl %eax, %ebp
leaq 0x415f(%rip), %rsi      # 0x1e0db
movl $0x0, %ebx
cmovgl %ebp, %ebx
negl %ebp
movq %r14, %rdi
movq 0x20(%rsp), %rdx
xorl %eax, %eax
callq 0x18871
movq 0x1c8(%rsp), %r12
movq 0x8(%r12), %rdi
movq 0x18(%r12), %rsi
callq 0x21a0
movq 0x60(%rsp), %r10
testl %eax, %eax
jg 0x1a156
movl 0x10(%rsp), %edx
addl %ebx, %edx
movq 0x8(%rsp), %r8
addl %ebx, %r8d
leaq 0x4114(%rip), %rsi      # 0x1e0e2
movq %r14, %rdi
movl %ebp, %ecx
movq %r13, %r9
xorl %eax, %eax
pushq %r15
pushq %r10
callq 0x18871
addq $0x10, %rsp
cmpl $0x0, (%r12)
movq 0x78(%rsp), %r13
movq %r12, %rsi
je 0x1a07c
xorl %ebx, %ebx
leaq 0x23b3(%rip), %r15      # 0x1c3b4
movq 0x8(%rsi), %rax
movsbq (%rax,%rbx), %rax
movb (%rax,%r15), %bpl
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a056
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq 0x1c8(%rsp), %rsi
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb %bpl, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
incq %rbx
movl (%rsi), %eax
cmpq %rax, %rbx
jb 0x1a001
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a0c4
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq 0x1c8(%rsp), %rsi
movq %rax, 0x8(%r14)
leaq 0x8(%r14), %r15
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb $0x9, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
testq %r13, %r13
je 0x1a314
addq 0x28(%rsp), %r13
movslq (%rsi), %rbx
movl (%r14), %eax
addl %ebx, %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a137
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq %rax, 0x8(%r14)
movl (%r14), %edi
addq 0x8(%r14), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x21f0
movl (%r14), %eax
addl %ebx, %eax
movl %eax, (%r14)
jmp 0x1a3ae
movq 0x8(%rsp), %rdx
addl %ebx, %edx
movl 0x10(%rsp), %r8d
addl %ebx, %r8d
leaq 0x3f8e(%rip), %rsi      # 0x1e0fa
movq %r14, %rdi
movl %ebp, %ecx
movq %r15, %r9
xorl %eax, %eax
pushq %r13
pushq %r10
callq 0x18871
addq $0x10, %rsp
cmpl $0x0, (%r12)
movq 0x20(%rsp), %r13
movq %r12, %rsi
je 0x1a21a
xorl %ebx, %ebx
leaq 0x2215(%rip), %r15      # 0x1c3b4
movq 0x18(%rsi), %rax
movsbq (%rax,%rbx), %rax
movb (%rax,%r15), %bpl
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a1f4
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq 0x1c8(%rsp), %rsi
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb %bpl, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
incq %rbx
movl (%rsi), %eax
cmpq %rax, %rbx
jb 0x1a19f
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a262
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq 0x1c8(%rsp), %rsi
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb $0x9, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
movq 0x78(%rsp), %r15
testq %r15, %r15
je 0x1a356
movl (%rsi), %eax
leal (%rax,%r13), %ebx
decl %ebx
cmpl %r13d, %ebx
jl 0x1a3b7
movslq %ebx, %rax
movb (%r15,%rax), %bpl
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a2e4
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb %bpl, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
decl %ebx
jmp 0x1a294
movl %ecx, %edi
cmpl %ecx, %r8d
jne 0x19aa0
jmp 0x1a413
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a39a
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq %rax, 0x8(%r14)
jmp 0x1a39a
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a396
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq %rax, 0x8(%r14)
leaq 0x8(%r14), %r15
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb $0x2a, (%rax,%rcx)
movl (%r14), %eax
movq (%r15), %rcx
movl %eax, %eax
movb $0x0, (%rcx,%rax)
movl (%r14), %eax
incl %eax
cmpl 0x4(%r14), %eax
jb 0x1a3f7
movl %eax, %ecx
shrl %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x8, %eax
orl %ecx, %eax
movl %eax, %esi
shrl $0x10, %esi
orl %eax, %esi
incl %esi
movl %esi, 0x4(%r14)
movq 0x8(%r14), %rdi
callq 0x2260
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl (%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movb $0xa, (%rax,%rcx)
movq 0x8(%r14), %rax
movl (%r14), %ecx
movb $0x0, (%rax,%rcx)
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3c70(%rip), %rdi      # 0x1e09c
leaq 0x3be3(%rip), %rsi      # 0x1e016
leaq 0x3be4(%rip), %rcx      # 0x1e01e
movl $0xbf, %edx
callq 0x2120
leaq 0x3c6f(%rip), %rdi      # 0x1e0ba
leaq 0x3bc4(%rip), %rsi      # 0x1e016
leaq 0x3bc5(%rip), %rcx      # 0x1e01e
movl $0xcf, %edx
callq 0x2120
nop