// File: /workspace/github_c_makefile_star2_O1/xiongxu[P]bam2bedGraph2/samtools-0.1.19/bam_index.c
// Function: bam_index_core
bam_index_t *bam_index_core(bamFile fp)
{
	bam1_t *b;
	bam_header_t *h;
	int i, ret;
	bam_index_t *idx;
	uint32_t last_bin, save_bin;
	int32_t last_coor, last_tid, save_tid;
	bam1_core_t *c;
	uint64_t save_off, last_off, n_mapped, n_unmapped, off_beg, off_end, n_no_coor;

	h = bam_header_read(fp);
	if(h == 0) {
	    fprintf(stderr, "[bam_index_core] Invalid BAM header.");
	    return NULL;
	}

	idx = (bam_index_t*)calloc(1, sizeof(bam_index_t));
	b = (bam1_t*)calloc(1, sizeof(bam1_t));
	c = &b->core;

	idx->n = h->n_targets;
	bam_header_destroy(h);
	idx->index = (khash_t(i)**)calloc(idx->n, sizeof(void*));
	for (i = 0; i < idx->n; ++i) idx->index[i] = kh_init(i);
	idx->index2 = (bam_lidx_t*)calloc(idx->n, sizeof(bam_lidx_t));

	save_bin = save_tid = last_tid = last_bin = 0xffffffffu;
	save_off = last_off = bam_tell(fp); last_coor = 0xffffffffu;
	n_mapped = n_unmapped = n_no_coor = off_end = 0;
	off_beg = off_end = bam_tell(fp);
	while ((ret = bam_read1(fp, b)) >= 0) {
		if (c->tid < 0) ++n_no_coor;
		if (last_tid < c->tid || (last_tid >= 0 && c->tid < 0)) { // change of chromosomes
			last_tid = c->tid;
			last_bin = 0xffffffffu;
		} else if ((uint32_t)last_tid > (uint32_t)c->tid) {
			fprintf(stderr, "[bam_index_core] the alignment is not sorted (%s): %d-th chr > %d-th chr\n",
					bam1_qname(b), last_tid+1, c->tid+1);
			return NULL;
		} else if ((int32_t)c->tid >= 0 && last_coor > c->pos) {
			fprintf(stderr, "[bam_index_core] the alignment is not sorted (%s): %u > %u in %d-th chr\n",
					bam1_qname(b), last_coor, c->pos, c->tid+1);
			return NULL;
		}
		if (c->tid >= 0 && !(c->flag & BAM_FUNMAP)) insert_offset2(&idx->index2[b->core.tid], b, last_off);
		if (c->bin != last_bin) { // then possibly write the binning index
			if (save_bin != 0xffffffffu) // save_bin==0xffffffffu only happens to the first record
				insert_offset(idx->index[save_tid], save_bin, save_off, last_off);
			if (last_bin == 0xffffffffu && save_tid != 0xffffffffu) { // write the meta element
				off_end = last_off;
				insert_offset(idx->index[save_tid], BAM_MAX_BIN, off_beg, off_end);
				insert_offset(idx->index[save_tid], BAM_MAX_BIN, n_mapped, n_unmapped);
				n_mapped = n_unmapped = 0;
				off_beg = off_end;
			}
			save_off = last_off;
			save_bin = last_bin = c->bin;
			save_tid = c->tid;
			if (save_tid < 0) break;
		}
		if (bam_tell(fp) <= last_off) {
			fprintf(stderr, "[bam_index_core] bug in BGZF/RAZF: %llx < %llx\n",
					(unsigned long long)bam_tell(fp), (unsigned long long)last_off);
			return NULL;
		}
		if (c->flag & BAM_FUNMAP) ++n_unmapped;
		else ++n_mapped;
		last_off = bam_tell(fp);
		last_coor = b->core.pos;
	}
	if (save_tid >= 0) {
		insert_offset(idx->index[save_tid], save_bin, save_off, bam_tell(fp));
		insert_offset(idx->index[save_tid], BAM_MAX_BIN, off_beg, bam_tell(fp));
		insert_offset(idx->index[save_tid], BAM_MAX_BIN, n_mapped, n_unmapped);
	}
	merge_chunks(idx);
	fill_missing(idx);
	if (ret >= 0) {
		while ((ret = bam_read1(fp, b)) >= 0) {
			++n_no_coor;
			if (c->tid >= 0 && n_no_coor) {
				fprintf(stderr, "[bam_index_core] the alignment is not sorted: reads without coordinates prior to reads with coordinates.\n");
				return NULL;
			}
		}
	}
	if (ret < -1) fprintf(stderr, "[bam_index_core] truncated file? Continue anyway. (%d)\n", ret);
	free(b->data); free(b);
	idx->n_no_coor = n_no_coor;
	return idx;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdi, %r13
callq 0x9806
testq %rax, %rax
je 0xfa60
movq %rax, %r15
movl $0x1, %edi
movl $0x20, %esi
callq 0x32e0
movq %rax, %r12
movl $0x1, %edi
movl $0x38, %esi
callq 0x32e0
movq %rax, 0x10(%rsp)
movslq (%r15), %rbx
movl %ebx, (%r12)
movq %r15, %rdi
callq 0x9784
movl $0x8, %esi
movq %rbx, %rdi
callq 0x32e0
movq %rax, %r15
movq %rax, 0x10(%r12)
testq %rbx, %rbx
jle 0xf1c3
xorl %r14d, %r14d
movl $0x1, %edi
movl $0x28, %esi
callq 0x32e0
movq %rax, (%r15,%r14,8)
incq %r14
cmpq %r14, %rbx
jne 0xf1a8
movq %r15, 0x40(%rsp)
movl $0x10, %esi
movq %rbx, %rdi
callq 0x32e0
movq %r12, 0x78(%rsp)
movq %rax, 0x80(%rsp)
movq %rax, 0x18(%r12)
movq 0x10(%r13), %rax
shlq $0x10, %rax
movzwl 0xc(%r13), %ebx
orq %rax, %rbx
movq %r13, 0x58(%rsp)
movq %r13, %rdi
movq 0x10(%rsp), %rsi
callq 0x9b44
movl %eax, 0x34(%rsp)
testl %eax, %eax
setns %al
movb %al, 0xb(%rsp)
movq %rbx, 0x48(%rsp)
js 0xf67a
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
movq $0x0, 0x50(%rsp)
movq %rbx, 0x38(%rsp)
xorl %r13d, %r13d
xorl %r14d, %r14d
movq %rbx, %r9
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq 0x10(%rsp), %r10
movq %r13, 0x28(%rsp)
movl (%r10), %r12d
testl %r12d, %r12d
sets %al
testl %ecx, %ecx
setns %dl
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movl %r12d, %ebx
cmpl %r12d, %ecx
jl 0xf2ab
movl %r12d, %ebx
andb %al, %dl
jne 0xf2ab
cmpl %r12d, %ecx
ja 0xfaac
testl %r12d, %r12d
js 0xf2a6
movl 0x4(%r10), %r8d
movl %ebp, %r13d
movl %ecx, %ebx
cmpl %r8d, %r15d
jle 0xf2ab
jmp 0xfad8
movl %ebp, %r13d
movl %ecx, %ebx
testl %r12d, %r12d
js 0xf3d1
movq 0x8(%r10), %rsi
movabsq $0x400000000, %rax      # imm = 0x400000000
testq %rax, %rsi
jne 0xf3d1
movl %ebx, 0x24(%rsp)
movq %r9, 0x60(%rsp)
movq %r14, 0x68(%rsp)
movq %r12, %r15
shlq $0x4, %r15
movq 0x80(%rsp), %rbx
leaq (%rbx,%r15), %rax
movq %rax, 0x70(%rsp)
movl 0x4(%r10), %r14d
shrl $0x18, %esi
addq 0x30(%r10), %rsi
movq %r10, %rdi
callq 0x9628
decl %eax
movl %eax, %ebp
shrl $0xe, %ebp
movslq 0x4(%rbx,%r15), %r15
cmpl %ebp, %r15d
jg 0xf36b
shrl $0xf, %eax
orl %ebp, %eax
movl %eax, %ecx
shrl $0x2, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x4, %eax
orl %ecx, %eax
movl %eax, %ecx
shrl $0x8, %ecx
orl %eax, %ecx
movl %ecx, %eax
shrl $0x10, %eax
orl %ecx, %eax
leal 0x1(%rax), %ecx
movq 0x70(%rsp), %rbx
movl %ecx, 0x4(%rbx)
movq 0x8(%rbx), %rdi
leal 0x8(,%rax,8), %esi
callq 0x3430
movq %rax, 0x8(%rbx)
leaq (%rax,%r15,8), %rdi
movslq 0x4(%rbx), %rdx
subq %r15, %rdx
shlq $0x3, %rdx
xorl %esi, %esi
callq 0x3260
sarl $0xe, %r14d
cmpl %ebp, %r14d
movq 0x60(%rsp), %r9
jne 0xf39b
movq 0x70(%rsp), %rsi
movq 0x8(%rsi), %rax
movl %r14d, %ecx
cmpq $0x0, (%rax,%rcx,8)
movq 0x10(%rsp), %r10
movl 0x24(%rsp), %ebx
jne 0xf3c8
movq %r9, (%rax,%rcx,8)
jmp 0xf3c8
movq 0x10(%rsp), %r10
movl 0x24(%rsp), %ebx
movq 0x70(%rsp), %rsi
jg 0xf3c8
movq 0x8(%rsi), %rax
movslq %r14d, %rcx
leal 0x1(%rbp), %edx
cmpq $0x0, (%rax,%rcx,8)
jne 0xf3c0
movq %r9, (%rax,%rcx,8)
incq %rcx
cmpq %rcx, %rdx
jne 0xf3b5
incl %ebp
movl %ebp, (%rsi)
movq 0x68(%rsp), %r14
shrl $0x1f, %r12d
addq %r12, 0x50(%rsp)
movzwl 0x8(%r10), %eax
cmpl %r13d, %eax
jne 0xf3f1
movl %r13d, %ebp
movq 0x28(%rsp), %r13
jmp 0xf614
movl 0x1c(%rsp), %esi
cmpl $-0x1, %esi
movq 0x40(%rsp), %rbp
je 0xf49f
movl %ebx, 0x24(%rsp)
movq %r9, %rbx
movq %r14, %r12
movslq 0x20(%rsp), %rax
movq (%rbp,%rax,8), %r15
movq %r15, %rdi
leaq 0xc(%rsp), %rdx
callq 0x10e9c
movl %eax, %r14d
shlq $0x4, %r14
addq 0x20(%r15), %r14
cmpl $0x0, 0xc(%rsp)
je 0xf450
movq $0x1, (%r14)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r14)
movl (%r14), %esi
cmpl %esi, 0x4(%r14)
jne 0xf46f
leal (%rsi,%rsi), %eax
movl %eax, (%r14)
movq 0x8(%r14), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl 0x4(%r14), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq 0x48(%rsp), %rsi
movq %rsi, (%rax,%rcx)
movl %edx, 0x4(%r14)
movq %rbx, %r9
movq %rbx, 0x8(%rax,%rcx)
movq 0x10(%rsp), %r10
movq %r12, %r14
movl 0x24(%rsp), %ebx
cmpl $-0x1, %r13d
sete %al
movl 0x20(%rsp), %edx
cmpl $-0x1, %edx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0xf5f2
movq %r9, 0x60(%rsp)
movq %r14, %r13
movl %edx, %r14d
movq (%rbp,%r14,8), %r15
movq %r15, %rdi
movl $0x924a, %esi           # imm = 0x924A
leaq 0xc(%rsp), %rdx
callq 0x10e9c
movl %eax, %r12d
shlq $0x4, %r12
addq 0x20(%r15), %r12
cmpl $0x0, 0xc(%rsp)
je 0xf50b
movq $0x1, (%r12)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r12)
movl (%r12), %esi
cmpl %esi, 0x4(%r12)
jne 0xf52f
leal (%rsi,%rsi), %eax
movl %eax, (%r12)
movq 0x8(%r12), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r12)
movq 0x8(%r12), %rax
movl 0x4(%r12), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq 0x38(%rsp), %rsi
movq %rsi, (%rax,%rcx)
movl %edx, 0x4(%r12)
movq 0x60(%rsp), %rdx
movq %rdx, 0x8(%rax,%rcx)
movq (%rbp,%r14,8), %r15
movq %r15, %rdi
movl $0x924a, %esi           # imm = 0x924A
leaq 0xc(%rsp), %rdx
callq 0x10e9c
movl %eax, %r14d
shlq $0x4, %r14
addq 0x20(%r15), %r14
cmpl $0x0, 0xc(%rsp)
je 0xf59b
movq $0x1, (%r14)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r14)
movl (%r14), %esi
cmpl %esi, 0x4(%r14)
jne 0xf5ba
leal (%rsi,%rsi), %eax
movl %eax, (%r14)
movq 0x8(%r14), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl 0x4(%r14), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq %r13, (%rax,%rcx)
movl %edx, 0x4(%r14)
movq 0x28(%rsp), %rdx
movq %rdx, 0x8(%rax,%rcx)
xorl %r14d, %r14d
xorl %r13d, %r13d
movq 0x60(%rsp), %r9
movq %r9, 0x38(%rsp)
movq 0x10(%rsp), %r10
jmp 0xf5f7
movq 0x28(%rsp), %r13
movzwl 0x8(%r10), %ebp
movl (%r10), %eax
movl %ebp, 0x1c(%rsp)
movq %r9, 0x48(%rsp)
movl %eax, 0x20(%rsp)
testl %eax, %eax
js 0xf6a5
movq 0x58(%rsp), %rdi
movq 0x10(%rdi), %rax
shlq $0x10, %rax
movzwl 0xc(%rdi), %r12d
orq %rax, %r12
cmpq %r9, %r12
jbe 0xfa89
movq 0x8(%r10), %rax
movabsq $0x400000000, %rcx      # imm = 0x400000000
andq %rcx, %rax
shrq $0x22, %rax
addq %rax, %r13
xorq $0x1, %rax
addq %rax, %r14
movl 0x4(%r10), %r15d
movq %r10, %rsi
callq 0x9b44
movq 0x10(%rsp), %r10
movq %r12, %r9
movl %ebx, %ecx
movl %eax, 0x34(%rsp)
testl %eax, %eax
setns 0xb(%rsp)
jns 0xf25d
jmp 0xf6ae
xorl %r14d, %r14d
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
xorl %r13d, %r13d
movq %rbx, 0x38(%rsp)
movq $0x0, 0x50(%rsp)
movq 0x10(%rsp), %r10
jmp 0xf6ae
movl %ebp, 0x1c(%rsp)
movq %r9, 0x48(%rsp)
movl 0x20(%rsp), %eax
testl %eax, %eax
movq 0x58(%rsp), %rbp
js 0xf89e
movq %r13, 0x28(%rsp)
movq %r14, 0x68(%rsp)
movl %eax, %r12d
movq 0x40(%rsp), %rax
movq (%rax,%r12,8), %rbx
movq 0x10(%rbp), %r14
shlq $0x10, %r14
movzwl 0xc(%rbp), %ebp
leaq 0xc(%rsp), %r15
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
movq %r15, %rdx
callq 0x10e9c
movl %eax, %r13d
shlq $0x4, %r13
addq 0x20(%rbx), %r13
cmpl $0x0, (%r15)
je 0xf721
movq $0x1, (%r13)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r13)
orq %rbp, %r14
movl (%r13), %esi
cmpl %esi, 0x4(%r13)
jne 0xf745
leal (%rsi,%rsi), %eax
movl %eax, (%r13)
movq 0x8(%r13), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r13)
movq 0x8(%r13), %rax
movl 0x4(%r13), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq 0x48(%rsp), %rsi
movq %rsi, (%rax,%rcx)
movl %edx, 0x4(%r13)
movq %r14, 0x8(%rax,%rcx)
movq 0x40(%rsp), %rax
movq (%rax,%r12,8), %rbx
movq 0x58(%rsp), %rax
movq 0x10(%rax), %r14
shlq $0x10, %r14
movzwl 0xc(%rax), %ebp
leaq 0xc(%rsp), %r15
movq %rbx, %rdi
movl $0x924a, %esi           # imm = 0x924A
movq %r15, %rdx
callq 0x10e9c
movl %eax, %r13d
shlq $0x4, %r13
addq 0x20(%rbx), %r13
cmpl $0x0, (%r15)
je 0xf7c1
movq $0x1, (%r13)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r13)
orq %rbp, %r14
movl (%r13), %esi
cmpl %esi, 0x4(%r13)
jne 0xf7e5
leal (%rsi,%rsi), %eax
movl %eax, (%r13)
movq 0x8(%r13), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r13)
movq 0x8(%r13), %rax
movl 0x4(%r13), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq 0x38(%rsp), %rsi
movq %rsi, (%rax,%rcx)
movl %edx, 0x4(%r13)
movq %r14, 0x8(%rax,%rcx)
movq 0x40(%rsp), %rax
movq (%rax,%r12,8), %rbx
leaq 0xc(%rsp), %r15
movq %rbx, %rdi
movl $0x924a, %esi           # imm = 0x924A
movq %r15, %rdx
callq 0x10e9c
movl %eax, %r14d
shlq $0x4, %r14
addq 0x20(%rbx), %r14
cmpl $0x0, (%r15)
movq 0x58(%rsp), %rbp
je 0xf854
movq $0x1, (%r14)
movl $0x1, %edi
movl $0x10, %esi
callq 0x32e0
movq %rax, 0x8(%r14)
movl (%r14), %esi
cmpl %esi, 0x4(%r14)
movq 0x28(%rsp), %rbx
jne 0xf878
leal (%rsi,%rsi), %eax
movl %eax, (%r14)
movq 0x8(%r14), %rdi
shll $0x5, %esi
callq 0x3430
movq %rax, 0x8(%r14)
movq 0x8(%r14), %rax
movl 0x4(%r14), %ecx
leal 0x1(%rcx), %edx
shlq $0x4, %rcx
movq 0x68(%rsp), %rsi
movq %rsi, (%rax,%rcx)
movl %edx, 0x4(%r14)
movq %rbx, 0x8(%rax,%rcx)
movq 0x10(%rsp), %r10
movq 0x78(%rsp), %r13
movslq (%r13), %rax
testq %rax, %rax
jle 0xf9da
movq 0x10(%r13), %rdx
xorl %esi, %esi
movq (%rdx,%rsi,8), %rdi
cmpl $0x0, (%rdi)
je 0xf981
xorl %r8d, %r8d
movq 0x10(%rdi), %rcx
movl %r8d, %r9d
shrl $0x4, %r9d
movl (%rcx,%r9,4), %r9d
leal (%r8,%r8), %ecx
shrl %cl, %r9d
testb $0x3, %r9b
jne 0xf975
movq 0x18(%rdi), %rcx
movl %r8d, %r10d
cmpl $0x924a, (%rcx,%r10,4)  # imm = 0x924A
je 0xf975
movq 0x20(%rdi), %r11
shlq $0x4, %r10
leaq (%r11,%r10), %rcx
movl $0x1, %r9d
cmpl $0x2, 0x4(%r11,%r10)
jb 0xf971
xorl %r9d, %r9d
movl $0x1, %r10d
movl $0x10, %r11d
movq 0x8(%rcx), %rbx
movslq %r9d, %r14
shlq $0x4, %r14
movq (%rbx,%r11), %r15
xorq 0x8(%rbx,%r14), %r15
cmpq $0xffff, %r15           # imm = 0xFFFF
ja 0xf94e
addq %rbx, %r14
addq $0x8, %r14
movq 0x8(%rbx,%r11), %rbx
movq %rbx, (%r14)
jmp 0xf95f
leaq (%rbx,%r11), %r15
incl %r9d
movups (%r15), %xmm0
movups %xmm0, 0x10(%r14,%rbx)
incq %r10
movl 0x4(%rcx), %ebx
addq $0x10, %r11
cmpq %rbx, %r10
jb 0xf920
incl %r9d
movl %r9d, 0x4(%rcx)
incl %r8d
cmpl (%rdi), %r8d
jne 0xf8c6
incq %rsi
cmpq %rax, %rsi
jne 0xf8b6
testl %eax, %eax
movq 0x10(%rsp), %r10
jle 0xf9da
movq 0x18(%r13), %rcx
xorl %edx, %edx
movq %rdx, %rdi
shlq $0x4, %rdi
movslq (%rcx,%rdi), %rsi
cmpq $0x2, %rsi
jl 0xf9d2
addq %rcx, %rdi
movq 0x8(%rdi), %rdi
movl $0x1, %r8d
cmpq $0x0, (%rdi,%r8,8)
jne 0xf9ca
movq -0x8(%rdi,%r8,8), %r9
movq %r9, (%rdi,%r8,8)
incq %r8
cmpq %r8, %rsi
jne 0xf9ba
incq %rdx
cmpq %rax, %rdx
jne 0xf99c
testb $0x1, 0xb(%rsp)
je 0xfa18
movq 0x50(%rsp), %rax
negq %rax
movq %rax, %rbx
movq %rbp, %rdi
movq %r10, %rsi
movq %r10, %r14
callq 0x9b44
testl %eax, %eax
js 0xfa23
leaq -0x1(%rbx), %rax
cmpl $0x0, (%r14)
movq %r14, %r10
js 0xf9e9
cmpq $0x1, %rbx
je 0xf9e9
callq 0x3c23
jmp 0xfa65
movq 0x50(%rsp), %rbx
movl 0x34(%rsp), %edx
jmp 0xfa2b
movl %eax, %edx
negq %rbx
movq %r14, %r10
movq %rbx, %r14
cmpl $-0x1, %edx
jne 0xfa6a
movq 0x30(%r10), %rdi
movq %r10, %rbx
callq 0x3060
movq %rbx, %rdi
callq 0x3060
movq %r14, 0x8(%r13)
movq %r13, %rax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x3c3f
xorl %r13d, %r13d
jmp 0xfa4b
movq 0x12587(%rip), %rax     # 0x21ff8
movq (%rax), %rdi
leaq 0xb7df(%rip), %rsi      # 0x1b25a
xorl %eax, %eax
callq 0x3320
movq 0x10(%rsp), %r10
jmp 0xfa33
movq 0x12568(%rip), %rax     # 0x21ff8
movq (%rax), %rdi
leaq 0xb726(%rip), %rsi      # 0x1b1c0
xorl %r13d, %r13d
movq %r12, %rdx
movq %r9, %rcx
xorl %eax, %eax
callq 0x3320
jmp 0xfa4b
movq 0x12545(%rip), %rax     # 0x21ff8
movq (%rax), %rdi
movq 0x30(%r10), %rdx
incl %ecx
incl %r12d
leaq 0xb667(%rip), %rsi      # 0x1b12d
xorl %r13d, %r13d
movl %r12d, %r8d
xorl %eax, %eax
callq 0x3320
jmp 0xfa4b
movq 0x12519(%rip), %rax     # 0x21ff8
movq (%rax), %rdi
movq 0x30(%r10), %rdx
incl %r12d
leaq 0xb687(%rip), %rsi      # 0x1b177
xorl %r13d, %r13d
movl %r15d, %ecx
movl %r12d, %r9d
xorl %eax, %eax
callq 0x3320
jmp 0xfa4b