// File: /workspace/github_c_makefile_star2_O0/ToniWestbrook[P]paladin/bwamem.c
// Function: mem_chain_flt
int mem_chain_flt(const mem_opt_t *opt, int n_chn, mem_chain_t *a)
{
	int i, k;
	kvec_t(int) chains = {0,0,0}; // this keeps int indices of the non-overlapping chains
	if (n_chn == 0) return 0; // no need to filter
	// compute the weight of each chain and drop chains with small weight
	for (i = k = 0; i < n_chn; ++i) {
		mem_chain_t *c = &a[i];
		c->first = -1; c->kept = 0;
		c->w = mem_chain_weight(c);
		if (c->w < opt->min_chain_weight) free(c->seeds);
		else a[k++] = *c;
	}
	n_chn = k;
	ks_introsort(mem_flt, n_chn, a);
	// pairwise chain comparisons
	a[0].kept = 3;
	kv_push(int, chains, 0);
	for (i = 1; i < n_chn; ++i) {
		int large_ovlp = 0;
		for (k = 0; k < chains.n; ++k) {
			int j = chains.a[k];
			int b_max = chn_beg(a[j]) > chn_beg(a[i])? chn_beg(a[j]) : chn_beg(a[i]);
			int e_min = chn_end(a[j]) < chn_end(a[i])? chn_end(a[j]) : chn_end(a[i]);
			if (e_min > b_max && (!a[j].is_alt || a[i].is_alt)) { // have overlap; don't consider ovlp where the kept chain is ALT while the current chain is primary
				int li = chn_end(a[i]) - chn_beg(a[i]);
				int lj = chn_end(a[j]) - chn_beg(a[j]);
				int min_l = li < lj? li : lj;
				if (e_min - b_max >= min_l * opt->mask_level && min_l < opt->max_chain_gap) { // significant overlap
					large_ovlp = 1;
					if (a[j].first < 0) a[j].first = i; // keep the first shadowed hit s.t. mapq can be more accurate
					if (a[i].w < a[j].w * opt->drop_ratio && a[j].w - a[i].w >= opt->min_seed_len<<1)
						break;
				}
			}
		}
		if (k == chains.n) {
			kv_push(int, chains, i);
			a[i].kept = large_ovlp? 2 : 3;
		}
	}
	for (i = 0; i < chains.n; ++i) {
		mem_chain_t *c = &a[chains.a[i]];
		if (c->first >= 0) a[c->first].kept = 1;
	}
	free(chains.a);
	for (i = k = 0; i < n_chn; ++i) { // don't extend more than opt->max_chain_extend .kept=1/2 chains
		if (a[i].kept == 0 || a[i].kept == 3) continue;
		if (++k >= opt->max_chain_extend) break;
	}
	for (; i < n_chn; ++i)
		if (a[i].kept < 3) a[i].kept = 0;
	for (i = k = 0; i < n_chn; ++i) { // free discarded chains
		mem_chain_t *c = &a[i];
		if (c->kept == 0) free(c->seeds);
		else a[k++] = a[i];
	}
	return k;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x3130
cmpl $0x0, -0x14(%rbp)
jne 0x1f658
movl $0x0, -0x4(%rbp)
jmp 0x1ff2b
movl $0x0, -0x28(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1f720
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movq -0x48(%rbp), %rax
movl 0x10(%rax), %ecx
andl $0x9fffffff, %ecx       # imm = 0x9FFFFFFF
orl $0x0, %ecx
movl %ecx, 0x10(%rax)
movq -0x48(%rbp), %rdi
callq 0x1ca80
movl %eax, %edx
movq -0x48(%rbp), %rax
movl 0x10(%rax), %ecx
andl $0x1fffffff, %edx       # imm = 0x1FFFFFFF
andl $0xe0000000, %ecx       # imm = 0xE0000000
orl %edx, %ecx
movl %ecx, 0x10(%rax)
movq -0x48(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x1fffffff, %eax       # imm = 0x1FFFFFFF
movq -0x10(%rbp), %rcx
cmpl 0x7c(%rcx), %eax
jge 0x1f6ea
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x3380
jmp 0x1f710
movq -0x20(%rbp), %rdi
movl -0x28(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x28(%rbp)
cltq
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq -0x48(%rbp), %rsi
movl $0x28, %edx
callq 0x3250
jmp 0x1f712
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1f666
movl -0x28(%rbp), %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x1ec60
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
andl $0x9fffffff, %ecx       # imm = 0x9FFFFFFF
orl $0x60000000, %ecx       # imm = 0x60000000
movl %ecx, 0x10(%rax)
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
jne 0x1f7a2
cmpq $0x0, -0x38(%rbp)
je 0x1f767
movq -0x38(%rbp), %rax
shlq %rax
movq %rax, -0x80(%rbp)
jmp 0x1f772
movl $0x2, %eax
movq %rax, -0x80(%rbp)
jmp 0x1f772
movq -0x80(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
shlq $0x2, %rsi
leaq 0x1af2b(%rip), %rdx     # 0x3a6b8
movl $0x1a6, %ecx            # imm = 0x1A6
leaq 0x1b009(%rip), %r8      # 0x3a7a2
callq 0x31d40
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x40(%rbp)
movl $0x0, (%rax,%rcx,4)
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1fd64
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x28(%rbp)
movslq -0x28(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0x1fc93
movq -0x30(%rbp), %rax
movslq -0x28(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jle 0x1f845
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x84(%rbp)
jmp 0x1f861
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movl %eax, -0x54(%rbp)
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x50(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
addl 0xc(%rcx), %eax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x24(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
movq -0x20(%rbp), %rdx
movslq -0x24(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movq 0x20(%rdx), %rdx
movq -0x20(%rbp), %rsi
movslq -0x24(%rbp), %rdi
imulq $0x28, %rdi, %rdi
addq %rdi, %rsi
movl (%rsi), %esi
subl $0x1, %esi
movslq %esi, %rsi
imulq $0x18, %rsi, %rsi
addq %rsi, %rdx
addl 0xc(%rdx), %ecx
cmpl %ecx, %eax
jge 0x1f9ae
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x50(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
addl 0xc(%rcx), %eax
movl %eax, -0x88(%rbp)
jmp 0x1fa1c
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x24(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
addl 0xc(%rcx), %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x54(%rbp), %eax
jle 0x1fc83
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x1fa69
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x1fc83
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x24(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
addl 0xc(%rcx), %eax
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
subl 0x8(%rcx), %eax
movl %eax, -0x5c(%rbp)
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
movq -0x20(%rbp), %rdx
movslq -0x50(%rbp), %rsi
imulq $0x28, %rsi, %rsi
addq %rsi, %rdx
movl (%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
addl 0xc(%rcx), %eax
movq -0x20(%rbp), %rcx
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x20(%rcx), %rcx
subl 0x8(%rcx), %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
cmpl -0x60(%rbp), %eax
jge 0x1fb7e
movl -0x5c(%rbp), %eax
movl %eax, -0x8c(%rbp)
jmp 0x1fb87
movl -0x60(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x58(%rbp), %eax
subl -0x54(%rbp), %eax
cvtsi2ss %eax, %xmm0
cvtsi2ssl -0x64(%rbp), %xmm1
movq -0x10(%rbp), %rax
mulss 0x9c(%rax), %xmm1
ucomiss %xmm1, %xmm0
jb 0x1fc81
movl -0x64(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x90(%rcx), %eax
jge 0x1fc81
movl $0x1, -0x4c(%rbp)
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
jge 0x1fbf8
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
andl $0x1fffffff, %eax       # imm = 0x1FFFFFFF
cvtsi2ss %eax, %xmm1
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
andl $0x1fffffff, %eax       # imm = 0x1FFFFFFF
cvtsi2ss %eax, %xmm0
movq -0x10(%rbp), %rax
mulss 0xa0(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1fc7f
movq -0x20(%rbp), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
andl $0x1fffffff, %eax       # imm = 0x1FFFFFFF
movq -0x20(%rbp), %rcx
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl 0x10(%rcx), %ecx
andl $0x1fffffff, %ecx       # imm = 0x1FFFFFFF
subl %ecx, %eax
movq -0x10(%rbp), %rcx
movl 0x78(%rcx), %ecx
shll %ecx
cmpl %ecx, %eax
jl 0x1fc7f
jmp 0x1fc93
jmp 0x1fc81
jmp 0x1fc83
jmp 0x1fc85
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x1f7dd
movslq -0x28(%rbp), %rax
cmpq -0x40(%rbp), %rax
jne 0x1fd54
jmp 0x1fca3
movq -0x40(%rbp), %rax
cmpq -0x38(%rbp), %rax
jne 0x1fd05
cmpq $0x0, -0x38(%rbp)
je 0x1fcc4
movq -0x38(%rbp), %rax
shlq %rax
movq %rax, -0x98(%rbp)
jmp 0x1fcd2
movl $0x2, %eax
movq %rax, -0x98(%rbp)
jmp 0x1fcd2
movq -0x98(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
shlq $0x2, %rsi
leaq 0x1a9c8(%rip), %rdx     # 0x3a6b8
movl $0x1ba, %ecx            # imm = 0x1BA
leaq 0x1aaa6(%rip), %r8      # 0x3a7a2
callq 0x31d40
movq %rax, -0x30(%rbp)
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, -0x40(%rbp)
movl %edx, (%rax,%rcx,4)
movl -0x4c(%rbp), %ecx
movl $0x3, %edx
movl $0x2, %eax
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
andl $0x3, %edx
shll $0x1d, %edx
andl $0x9fffffff, %ecx       # imm = 0x9FFFFFFF
orl %edx, %ecx
movl %ecx, 0x10(%rax)
jmp 0x1fd56
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1f7c3
movl $0x0, -0x24(%rbp)
movslq -0x24(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0x1fdcc
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movslq -0x24(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jl 0x1fdbf
movq -0x20(%rbp), %rax
movq -0x70(%rbp), %rcx
movslq 0x8(%rcx), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
andl $0x9fffffff, %ecx       # imm = 0x9FFFFFFF
orl $0x20000000, %ecx       # imm = 0x20000000
movl %ecx, 0x10(%rax)
jmp 0x1fdc1
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1fd6b
movq -0x30(%rbp), %rdi
callq 0x3380
movl $0x0, -0x28(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1fe4b
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
shrl $0x1d, %eax
andl $0x3, %eax
cmpl $0x0, %eax
je 0x1fe25
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
shrl $0x1d, %eax
andl $0x3, %eax
cmpl $0x3, %eax
jne 0x1fe27
jmp 0x1fe40
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movq -0x10(%rbp), %rcx
cmpl 0x80(%rcx), %eax
jl 0x1fe3e
jmp 0x1fe4b
jmp 0x1fe40
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1fde3
jmp 0x1fe4d
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1fe9d
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
shrl $0x1d, %eax
andl $0x3, %eax
cmpl $0x3, %eax
jge 0x1fe90
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
andl $0x9fffffff, %ecx       # imm = 0x9FFFFFFF
orl $0x0, %ecx
movl %ecx, 0x10(%rax)
jmp 0x1fe92
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1fe4d
movl $0x0, -0x28(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1ff25
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movl 0x10(%rax), %eax
shrl $0x1d, %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x1fee7
movq -0x78(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x3380
jmp 0x1ff18
movq -0x20(%rbp), %rdi
movl -0x28(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x28(%rbp)
cltq
imulq $0x28, %rax, %rax
addq %rax, %rdi
movq -0x20(%rbp), %rsi
movslq -0x24(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rsi
movl $0x28, %edx
callq 0x3250
jmp 0x1ff1a
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1feab
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)