// File: /workspace/github_c_makefile_star2_O3/lh3[P]bgt/atomic.c
// Function: bcf_atomize
void bcf_atomize(const bcf_hdr_t *h, bcf1_t *b, bcf_atom_v *a)
{
	int i, cid, l_ref, l_cigar = 0;
	kstring_t cigar = {0,0,0};
	char *p_cigar = 0;

	for (i = 0; i < a->n; ++i)
		a->a[i].from_new = 0;

	cid = bcf_id2int(h, BCF_DT_ID, "CIGAR");
	if (cid >= 0) {
		bcf_unpack(b, BCF_UN_INFO);
		for (i = 0; i < b->n_info; ++i)
			if (b->d.info[i].key == cid) break;
		if (i < b->n_info && b->d.info[i].type == BCF_BT_CHAR) { // CIGAR in INFO
			p_cigar = (char*)b->d.info[i].vptr;
			l_cigar = b->d.info[i].len;
		}
	} else bcf_unpack(b, BCF_UN_STR);
	l_ref = strlen(b->d.allele[0]);

	for (i = 1; i < b->n_allele; ++i) { // traverse each allele
		char *p;
		int x, y, j, l, l_alt;
		l_alt = strlen(b->d.allele[i]);
		if (b->rlen != l_ref || (b->d.allele[i][0] == '<' && b->d.allele[i][l_alt-1] == '>')) { // symbolic allele
			bcf_add_atom(a, b->rid, b->pos, b->rlen, i, -1, b->d.allele[0], -1, b->d.allele[i]);
			continue;
		}
		// extract or generate CIGAR between REF and the current ALT
		cigar.l = 0;
		if (p_cigar) {
			for (p = p_cigar; p < p_cigar + l_cigar && *p != ','; ++p);
			assert(p - p_cigar > 0); // otherwise, incomplete CIGAR
			kputsn(p_cigar, p - p_cigar, &cigar);
			l_cigar -= p + 1 - p_cigar;
			p_cigar = p + 1;
		} else if (strlen(b->d.allele[i]) == b->rlen) {
			kputw(b->rlen, &cigar);
			kputc('M', &cigar);
		} else {
			int rest;
			l = l_alt - b->rlen;
			kputsn("1M", 2, &cigar);
			if (l > 0) {
				kputw(l, &cigar);
				kputc('I', &cigar);
				rest = b->rlen - 1;
			} else {
				kputw(-l, &cigar);
				kputc('D', &cigar);
				rest = l_alt - 1;
			}
			if (rest) {
				kputw(rest, &cigar);
				kputc('M', &cigar);
			}
		}
		// extract difference
		x = y = 0;
		for (p = cigar.s; *p; ++p) {
			l = strtol(p, &p, 10);
			if (*p == 'M' || *p == '=' || *p == 'X') {
				for (j = 0; j < l; ++j)
					if (b->d.allele[0][x+j] != b->d.allele[i][y+j])
						bcf_add_atom(a, b->rid, b->pos + x + j, 1, i, 1, &b->d.allele[0][x+j], 1, &b->d.allele[i][y+j]);
				x += l, y += l;
			} else if (*p == 'I') {
				if (x == 0 || y == 0)
					fprintf(stderr, "[W::%s] invalid insertion (%d,%d) at %s:%d\n", __func__, x, y, h->id[BCF_DT_CTG][b->rid].key, b->pos + 1);
				else bcf_add_atom(a, b->rid, b->pos + x - 1, 1, i, 1, &b->d.allele[0][x-1], l+1, &b->d.allele[i][y-1]);
				y += l;
			} else if (*p == 'D') {
				assert(x > 0 && y > 0);
				bcf_add_atom(a, b->rid, b->pos + x - 1, l+1, i, l+1, &b->d.allele[0][x-1], 1, &b->d.allele[i][y-1]);
				x += l;
			}
		}
	}
	free(cigar.s);
	a->n = bcf_atom_gen_at(h, b, a->n, a->a);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r13
movq %rsi, 0x10(%rsp)
movq %rdi, 0x48(%rsp)
cmpl $0x0, (%rdx)
jle 0x1221c
movl $0x30, %eax
xorl %ecx, %ecx
movq 0x8(%r13), %rdx
andl $0xbfffffff, (%rdx,%rax) # imm = 0xBFFFFFFF
incq %rcx
movslq (%r13), %rdx
addq $0x40, %rax
cmpq %rdx, %rcx
jl 0x12201
leaq 0xd244(%rip), %rdx      # 0x1f467
xorl %r14d, %r14d
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x1088a
testl %eax, %eax
js 0x12276
movl %eax, %ebp
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
movl $0x4, %esi
callq 0xf116
movq %rbx, %rsi
movq 0x10(%rbx), %rbx
testw %bx, %bx
je 0x122a9
movq 0x78(%rsi), %rax
movzwl %bx, %ecx
shll $0x3, %ecx
leaq (%rcx,%rcx,2), %rdx
xorl %ecx, %ecx
cmpl %ebp, (%rax,%rcx)
je 0x12291
addq $0x18, %rcx
cmpq %rcx, %rdx
jne 0x12266
jmp 0x122a9
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
movl $0x1, %esi
callq 0xf116
movq %rbx, %rsi
movq 0x10(%rbx), %rbx
jmp 0x122ac
cmpl $0x7, 0x4(%rax,%rcx)
jne 0x122a9
movq 0x10(%rax,%rcx), %rdx
movq %rdx, 0x38(%rsp)
movl 0x8(%rax,%rcx), %r14d
jmp 0x122b5
xorl %r14d, %r14d
movq $0x0, 0x38(%rsp)
movq 0x68(%rsi), %rax
movq (%rax), %rdi
callq 0x2170
testl $0xfffe0000, %ebx       # imm = 0xFFFE0000
je 0x12bda
movq %r14, 0x50(%rsp)
movslq %eax, %rcx
movq %rcx, 0x70(%rsp)
movl %eax, %ecx
negl %ecx
movq %rax, 0x60(%rsp)
cmovsl %eax, %ecx
movl %ecx, 0x5c(%rsp)
movl $0x1, %r8d
movq $0x0, 0x18(%rsp)
movq $0x0, (%rsp)
movq 0x10(%rsp), %r14
movq 0x68(%r14), %rbx
movq %r8, 0x8(%rsp)
movq (%rbx,%r8,8), %r15
movq %r15, %rdi
callq 0x2170
movq 0x10(%rsp), %r14
movl 0x8(%r14), %ecx
movq 0x60(%rsp), %rdi
cmpl %edi, %ecx
jne 0x12342
movq %rax, %rbp
cmpb $0x3c, (%r15)
jne 0x12375
leal -0x1(%rbp), %eax
cltq
cmpb $0x3e, (%r15,%rax)
jne 0x12375
movl (%r14), %esi
movl 0x4(%r14), %edx
subq $0x8, %rsp
movq %r13, %rdi
movq 0x10(%rsp), %r12
movl %r12d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
pushq %r15
pushq $-0x1
pushq (%rbx)
callq 0x12c58
movq %r12, %r8
addq $0x20, %rsp
jmp 0x12bc7
movq 0x38(%rsp), %rbx
testq %rbx, %rbx
je 0x12438
movq %rbx, 0x20(%rsp)
movq %rbx, %rax
movq 0x50(%rsp), %r14
testl %r14d, %r14d
movq 0x18(%rsp), %rdi
jle 0x123b5
movslq %r14d, %rcx
addq %rbx, %rcx
movq %rbx, %rax
cmpb $0x2c, (%rax)
je 0x123b5
incq %rax
movq %rax, 0x20(%rsp)
cmpq %rcx, %rax
jb 0x123a3
subq %rbx, %rax
testq %rax, %rax
jle 0x12c39
movslq %eax, %r15
leaq 0x1(%r15), %rax
cmpq (%rsp), %rax
jb 0x1240e
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movq %rdi, %r12
callq 0x2280
movb $0x0, (%r12,%r15)
movq 0x20(%rsp), %rax
incq %rax
subl %eax, %ebx
addl %ebx, %r14d
movq 0x8(%rsp), %r8
jmp 0x12990
cmpq 0x70(%rsp), %rbp
movq 0x50(%rsp), %r14
movl $0xcccccccd, %r8d       # imm = 0xCCCCCCCD
jne 0x1250d
testl %edi, %edi
je 0x1251b
xorl %ebx, %ebx
movl 0x5c(%rsp), %eax
movl %eax, %ecx
imulq %r8, %rcx
shrq $0x23, %rcx
leal (%rcx,%rcx), %edx
leal (%rdx,%rdx,4), %edx
movl %eax, %esi
subl %edx, %esi
orb $0x30, %sil
movb %sil, 0x20(%rsp,%rbx)
incq %rbx
cmpl $0x9, %eax
movl %ecx, %eax
ja 0x1245c
testl %edi, %edi
jns 0x12490
movl %ebx, %eax
incl %ebx
movb $0x2d, 0x20(%rsp,%rax)
movq 0x18(%rsp), %rdi
movslq %ebx, %rax
incq %rax
cmpq (%rsp), %rax
jb 0x124e1
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %rdi
movl %ebx, %eax
cmpl $0x2, %ebx
movl $0x1, %ecx
cmovll %ecx, %ebx
leaq 0x1f(%rsp), %rcx
addq %rcx, %rax
xorl %ecx, %ecx
movb (%rax), %dl
movb %dl, (%rdi,%rcx)
incq %rcx
decq %rax
cmpq %rcx, %rbx
jne 0x124f8
jmp 0x12744
cmpq $0x3, (%rsp)
jbe 0x12530
movq 0x18(%rsp), %rax
jmp 0x1254d
cmpq $0x1, (%rsp)
jbe 0x12721
movq 0x18(%rsp), %rdi
jmp 0x1273c
movl $0x4, %eax
movq %rax, (%rsp)
movl $0x4, %esi
movq 0x18(%rsp), %rdi
callq 0x2330
movq 0x60(%rsp), %rdi
movl %ebp, %r11d
subl %edi, %r11d
movw $0x4d31, (%rax)         # imm = 0x4D31
movb $0x0, 0x2(%rax)
testl %r11d, %r11d
jle 0x1269a
movq %rax, %rdi
movl $0x2, %esi
movl $0x1, %eax
xorl %ecx, %ecx
xorl %edx, %edx
movabsq $0x100000000, %r9       # imm = 0x100000000
movl $0xcccccccd, %r10d      # imm = 0xCCCCCCCD
movl %esi, %ebx
movl %eax, %r15d
movl %r11d, %r8d
imulq %r10, %r8
shrq $0x23, %r8
leal (%r8,%r8), %esi
leal (%rsi,%rsi,4), %esi
movl %r11d, %eax
subl %esi, %eax
orb $0x30, %al
movb %al, 0x20(%rsp,%rdx)
incq %rdx
addq %r9, %rcx
leal 0x1(%rbx), %esi
leal 0x1(%r15), %eax
cmpl $0x9, %r11d
movl %r8d, %r11d
ja 0x12586
sarq $0x20, %rcx
addq $0x3, %rcx
cmpq (%rsp), %rcx
jb 0x1260c
movq %rcx, %rax
shrq %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x2, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x4, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x8, %rcx
orq %rax, %rcx
movq %rcx, %rsi
shrq $0x10, %rsi
orq %rcx, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %rdi
movl %r15d, %eax
leaq 0x1f(%rsp), %rcx
addq %rcx, %rax
movl $0x3, %r15d
movb (%rax), %cl
movb %cl, -0x1(%rdi,%r15)
incq %r15
decl %ebx
decq %rax
cmpl $0x1, %ebx
jg 0x1261d
movb $0x0, -0x1(%rdi,%r15)
cmpq (%rsp), %r15
jb 0x1267d
movq %r15, %rax
shrq %rax
orq %r15, %rax
movq %rax, %rcx
shrq $0x2, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x4, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x8, %rcx
orq %rax, %rcx
movq %rcx, %rsi
shrq $0x10, %rsi
orq %rcx, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %r8
movq %rdi, %r9
movw $0x49, -0x1(%rdi,%r15)
movl 0x8(%rax), %ebp
jmp 0x12868
je 0x12712
movq %rax, %rdi
negl %r11d
movl $0x2, %esi
movl $0x1, %eax
xorl %ecx, %ecx
xorl %edx, %edx
movabsq $0x100000000, %r9       # imm = 0x100000000
movl $0xcccccccd, %r10d      # imm = 0xCCCCCCCD
movl %esi, %ebx
movl %eax, %r15d
movl %r11d, %r8d
imulq %r10, %r8
shrq $0x23, %r8
leal (%r8,%r8), %esi
leal (%rsi,%rsi,4), %esi
movl %r11d, %eax
subl %esi, %eax
orb $0x30, %al
movb %al, 0x20(%rsp,%rdx)
incq %rdx
addq %r9, %rcx
leal 0x1(%rbx), %esi
leal 0x1(%r15), %eax
cmpl $0x9, %r11d
movl %r8d, %r11d
ja 0x126c0
sarq $0x20, %rcx
addq $0x3, %rcx
cmpq (%rsp), %rcx
jae 0x127a8
movq %rdi, %rax
jmp 0x127e5
movb $0x30, 0x2(%rax)
movl $0x3, %r12d
jmp 0x12809
movl $0x2, %eax
movq %rax, (%rsp)
movl $0x2, %esi
movq 0x18(%rsp), %rdi
callq 0x2330
movq %rax, %rdi
movb $0x30, (%rdi)
movl $0x1, %ebx
movb $0x0, (%rdi,%rbx)
leaq 0x1(%rbx), %rax
cmpq (%rsp), %rax
jae 0x12757
movq %rdi, %r12
jmp 0x12797
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %r12
movq 0x8(%rsp), %r8
movw $0x4d, (%r12,%rbx)
jmp 0x1298e
movq %rcx, %rax
shrq %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x2, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x4, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x8, %rcx
orq %rax, %rcx
movq %rcx, %rsi
shrq $0x10, %rsi
orq %rcx, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movl %r15d, %edx
leaq 0x1f(%rsp), %rcx
addq %rcx, %rdx
movl $0x2, %r12d
movb (%rdx), %cl
movb %cl, (%rax,%r12)
incq %r12
decl %ebx
decq %rdx
cmpl $0x1, %ebx
jg 0x127f6
movb $0x0, (%rax,%r12)
leaq 0x1(%r12), %r15
cmpq (%rsp), %r15
jb 0x12859
movq %r15, %rdx
shrq %rdx
orq %r15, %rdx
movq %rdx, %rcx
shrq $0x2, %rcx
orq %rdx, %rcx
movq %rcx, %rdx
shrq $0x4, %rdx
orq %rcx, %rdx
movq %rdx, %rcx
shrq $0x8, %rcx
orq %rdx, %rcx
movq %rcx, %rsi
shrq $0x10, %rsi
orq %rcx, %rsi
incq %rsi
movq %rax, %rdi
movq %rsi, (%rsp)
callq 0x2330
movq 0x8(%rsp), %r8
movq %rax, %r9
movw $0x44, (%rax,%r12)
movl %ebp, %ecx
decl %ecx
je 0x1293a
movl %ecx, %eax
negl %eax
cmovsl %ecx, %eax
xorl %ebx, %ebx
movl $0xcccccccd, %edi       # imm = 0xCCCCCCCD
movl %eax, %ecx
imulq %rdi, %rcx
shrq $0x23, %rcx
leal (%rcx,%rcx), %edx
leal (%rdx,%rdx,4), %edx
movl %eax, %esi
subl %edx, %esi
orb $0x30, %sil
movb %sil, 0x20(%rsp,%rbx)
incq %rbx
cmpl $0x9, %eax
movl %ecx, %eax
ja 0x12880
testl %ebp, %ebp
movq %r9, %rdi
jg 0x128b7
movl %ebx, %eax
incl %ebx
movb $0x2d, 0x20(%rsp,%rax)
movslq %ebx, %rax
addq %r15, %rax
incq %rax
cmpq (%rsp), %rax
jb 0x12906
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %rdi
movl %ebx, %eax
incq %r15
incl %ebx
leaq 0x1f(%rsp), %rcx
addq %rcx, %rax
movb (%rax), %cl
movb %cl, -0x1(%rdi,%r15)
incq %r15
decl %ebx
decq %rax
cmpl $0x1, %ebx
jg 0x12915
movb $0x0, -0x1(%rdi,%r15)
cmpq (%rsp), %r15
jae 0x12941
movq %rdi, %r12
jmp 0x12981
xorl %eax, %eax
movq %r9, %r12
jmp 0x12990
movq %r15, %rax
shrq %rax
orq %r15, %rax
movq %rax, %rcx
shrq $0x2, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x4, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x8, %rcx
orq %rax, %rcx
movq %rcx, %rsi
shrq $0x10, %rsi
orq %rcx, %rsi
incq %rsi
movq %rsi, (%rsp)
callq 0x2330
movq %rax, %r12
movq 0x8(%rsp), %r8
movw $0x4d, -0x1(%r12,%r15)
xorl %eax, %eax
movq %rax, 0x38(%rsp)
movq %r12, 0x20(%rsp)
cmpb $0x0, (%r12)
movq %r14, 0x50(%rsp)
movq %r12, 0x18(%rsp)
je 0x12bc2
xorl %ebp, %ebp
xorl %r15d, %r15d
movq %r12, %rdi
leaq 0x20(%rsp), %rsi
movl $0xa, %edx
callq 0x2270
movq %rax, %r14
movq 0x20(%rsp), %rbx
movzbl (%rbx), %eax
cmpl $0x48, %eax
jle 0x129f7
cmpl $0x49, %eax
movq 0x10(%rsp), %rdi
je 0x12afd
cmpl $0x58, %eax
je 0x12a6f
cmpl $0x4d, %eax
je 0x12a6f
jmp 0x12b59
cmpl $0x3d, %eax
movq 0x10(%rsp), %rdi
je 0x12a6f
cmpl $0x44, %eax
movq 0x8(%rsp), %r8
jne 0x12b5e
testl %r15d, %r15d
jle 0x12c1a
testl %ebp, %ebp
jle 0x12c1a
movl (%rdi), %esi
movl 0x4(%rdi), %eax
leal (%r15,%rax), %edx
decl %edx
leal 0x1(%r14), %ecx
movq 0x68(%rdi), %rax
movq (%rax), %rdi
movl %r15d, %r9d
leaq -0x1(%rdi,%r9), %r10
movq (%rax,%r8,8), %rax
movl %ebp, %edi
addq %rdi, %rax
decq %rax
subq $0x8, %rsp
movq %r13, %rdi
movl %ecx, %r9d
pushq %rax
pushq $0x1
pushq %r10
callq 0x12c58
movq 0x28(%rsp), %r8
addq $0x20, %rsp
addl %r14d, %r15d
jmp 0x12b5e
movq %r15, 0x68(%rsp)
movl %ebp, 0x44(%rsp)
testl %r14d, %r14d
movq 0x8(%rsp), %r8
jle 0x12aec
movslq 0x68(%rsp), %rbp
movslq 0x44(%rsp), %r12
movl %r14d, %r15d
andl $0x7fffffff, %r15d      # imm = 0x7FFFFFFF
movq 0x68(%rdi), %rcx
movq (%rcx), %rax
movb (%rax,%rbp), %dl
movq (%rcx,%r8,8), %r10
cmpb (%r10,%r12), %dl
je 0x12ae1
addq %rbp, %rax
addq %r12, %r10
movl (%rdi), %esi
movl 0x4(%rdi), %edx
addl %ebp, %edx
subq $0x8, %rsp
movq %r13, %rdi
movl $0x1, %ecx
movl $0x1, %r9d
pushq %r10
pushq $0x1
pushq %rax
callq 0x12c58
movq 0x28(%rsp), %r8
movq 0x30(%rsp), %rdi
addq $0x20, %rsp
incq %r12
incq %rbp
decq %r15
jne 0x12a96
movq 0x68(%rsp), %r15
addl %r14d, %r15d
movl 0x44(%rsp), %ebp
addl %r14d, %ebp
jmp 0x12b5e
testl %r15d, %r15d
je 0x12b73
testl %ebp, %ebp
je 0x12b73
movl (%rdi), %esi
movl 0x4(%rdi), %eax
leal (%r15,%rax), %edx
decl %edx
movq 0x68(%rdi), %rax
movq (%rax), %rcx
movslq %r15d, %rdi
leaq -0x1(%rcx,%rdi), %r10
leal 0x1(%r14), %r11d
movq 0x8(%rsp), %r8
movq (%rax,%r8,8), %rax
movslq %ebp, %rcx
addq %rcx, %rax
decq %rax
subq $0x8, %rsp
movq %r13, %rdi
movl $0x1, %ecx
movl $0x1, %r9d
pushq %rax
pushq %r11
pushq %r10
callq 0x12c58
addq $0x20, %rsp
addl %r14d, %ebp
movq 0x8(%rsp), %r8
leaq 0x1(%rbx), %rdi
movq %rdi, 0x20(%rsp)
cmpb $0x0, 0x1(%rbx)
jne 0x129b7
jmp 0x12bc2
movq %rdi, %rdx
movq 0x1347b(%rip), %rax     # 0x25ff8
movq (%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movslq (%rdx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %r9
movl 0x4(%rdx), %r10d
incl %r10d
subq $0x8, %rsp
leaq 0xc91c(%rip), %rsi      # 0x1f4c2
leaq 0xc941(%rip), %rdx      # 0x1f4ee
movl %r15d, %ecx
movl %ebp, %r8d
xorl %eax, %eax
pushq %r10
callq 0x2250
addq $0x10, %rsp
jmp 0x12b56
movq 0x10(%rsp), %r14
incq %r8
movzwl 0x12(%r14), %eax
cmpq %rax, %r8
jb 0x12306
jmp 0x12be8
movq $0x0, 0x18(%rsp)
movq 0x10(%rsp), %r14
movq 0x18(%rsp), %rdi
callq 0x2050
movl (%r13), %edx
movq 0x8(%r13), %rcx
movq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x12eca
movl %eax, (%r13)
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xc8d9(%rip), %rdi      # 0x1f4fa
leaq 0xc855(%rip), %rsi      # 0x1f47d
leaq 0xc857(%rip), %rcx      # 0x1f486
movl $0xab, %edx
callq 0x21b0
leaq 0xc82d(%rip), %rdi      # 0x1f46d
leaq 0xc836(%rip), %rsi      # 0x1f47d
leaq 0xc838(%rip), %rcx      # 0x1f486
movl $0x83, %edx
callq 0x21b0