// File: /workspace/github_c_makefile_star2_O0/lh3[P]minimap/map.c
// Function: proc_intv
static void proc_intv(mm_tbuf_t *b, int which, int k, int min_cnt, int max_gap)
{
	int i, j, l_lis, rid = -1, rev = 0, start = b->intv.a[which].y, end = start + b->intv.a[which].x;

	// make room for arrays needed by LIS (longest increasing sequence)
	if (end - start > b->m) {
		b->m = end - start;
		kv_roundup32(b->m);
		b->a = (uint64_t*)realloc(b->a, b->m * 8);
		b->b = (size_t*)realloc(b->b, b->m * sizeof(size_t));
		b->p = (size_t*)realloc(b->p, b->m * sizeof(size_t));
	}

	// prepare the input array _a_ for LIS
	b->n = 0;
	for (i = start; i < end; ++i)
		if (b->coef.a[i].x != UINT64_MAX)
			b->a[b->n++] = b->coef.a[i].y, rid = b->coef.a[i].x << 1 >> 33, rev = b->coef.a[i].x >> 63;
	if (b->n < min_cnt) return;
	radix_sort_64(b->a, b->a + b->n);

	// find the longest increasing sequence
	l_lis = rev? ks_lis_low32gt(b->n, b->a, b->b, b->p) : ks_lis_low32lt(b->n, b->a, b->b, b->p); // LIS
	if (l_lis < min_cnt) return;
	for (i = 1, j = 1; i < l_lis; ++i) // squeeze out minimizaers reused in the LIS sequence
		if (b->a[b->b[i]]>>32 != b->a[b->b[i-1]]>>32)
			b->a[b->b[j++]] = b->a[b->b[i]];
	l_lis = j;
	if (l_lis < min_cnt) return;

	// convert LISes to regions; possibly break an LIS at a long gaps
	for (i = 1, start = 0; i <= l_lis; ++i) {
		int32_t qgap = i == l_lis? 0 : ((uint32_t)b->mini.a[b->a[b->b[i]]>>32].y>>1) - ((uint32_t)b->mini.a[b->a[b->b[i-1]]>>32].y>>1);
		if (i == l_lis || (qgap > max_gap && abs((int32_t)b->a[b->b[i]] - (int32_t)b->a[b->b[i-1]]) > max_gap)) {
			if (i - start >= min_cnt) {
				uint32_t lq = 0, lr = 0, eq = 0, er = 0, sq = 0, sr = 0;
				mm_reg1_t *r;
				kv_pushp(mm_reg1_t, b->reg, &r);
				r->rid = rid, r->rev = rev, r->cnt = i - start, r->rep = 0;
				r->qs = ((uint32_t)b->mini.a[b->a[b->b[start]]>>32].y>>1) - (k - 1);
				r->qe = ((uint32_t)b->mini.a[b->a[b->b[i-1]]>>32].y>>1) + 1;
				r->rs = rev? (uint32_t)b->a[b->b[i-1]] : (uint32_t)b->a[b->b[start]];
				r->re = rev? (uint32_t)b->a[b->b[start]] : (uint32_t)b->a[b->b[i-1]];
				r->rs -= k - 1;
				r->re += 1;
				for (j = start; j < i; ++j) { // count the number of times each minimizer is used
					int jj = b->a[b->b[j]]>>32;
					b->mini.a[jj].y += 1ULL<<32;
					kv_push(uint32_t, b->reg2mini, jj); // keep minimizer<=>reg mapping for derep
				}
				for (j = start; j < i; ++j) { // compute ->len
					uint32_t q = ((uint32_t)b->mini.a[b->a[b->b[j]]>>32].y>>1) - (k - 1);
					uint32_t r = (uint32_t)b->a[b->b[j]];
					r = !rev? r - (k - 1) : (0x80000000U - r);
					if (r > er) lr += er - sr, sr = r, er = sr + k;
					else er = r + k;
					if (q > eq) lq += eq - sq, sq = q, eq = sq + k;
					else eq = q + k;
				}
				lr += er - sr, lq += eq - sq;
				r->len = lr < lq? lr : lq;
			}
			start = i;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl %eax, -0x30(%rbp)
movslq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x40(%rcx), %rcx
movslq -0xc(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
addq (%rcx), %rax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
subl -0x30(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x84(%rcx), %eax
jbe 0x8838
movl -0x34(%rbp), %ecx
subl -0x30(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
shrl %ecx
movq -0x8(%rbp), %rax
orl 0x84(%rax), %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
shrl $0x2, %ecx
movq -0x8(%rbp), %rax
orl 0x84(%rax), %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
shrl $0x4, %ecx
movq -0x8(%rbp), %rax
orl 0x84(%rax), %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
shrl $0x8, %ecx
movq -0x8(%rbp), %rax
orl 0x84(%rax), %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
shrl $0x10, %ecx
movq -0x8(%rbp), %rax
orl 0x84(%rax), %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movl 0x84(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x84(%rax)
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x84(%rax), %eax
shll $0x3, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x2200
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x84(%rax), %eax
movl %eax, %esi
shlq $0x3, %rsi
callq 0x2200
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x90(%rax)
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x84(%rax), %eax
movl %eax, %esi
shlq $0x3, %rsi
callq 0x2200
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x98(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x80(%rax)
movl -0x30(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x88fb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $-0x1, (%rax)
je 0x88eb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rsi
movl 0x80(%rsi), %ecx
movl %ecx, %edi
addl $0x1, %edi
movl %edi, 0x80(%rsi)
movl %ecx, %ecx
movq %rdx, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shlq %rax
shrq $0x21, %rax
movl %eax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x3f, %rax
movl %eax, -0x2c(%rbp)
jmp 0x88ed
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x884c
movq -0x8(%rbp), %rax
movl 0x80(%rax), %eax
cmpl -0x14(%rbp), %eax
jae 0x890f
jmp 0x913b
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x80(%rax), %eax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x6ba0
cmpl $0x0, -0x2c(%rbp)
je 0x8979
movq -0x8(%rbp), %rax
movl 0x80(%rax), %eax
movl %eax, %edi
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rcx
callq 0x70e0
movq %rax, -0x70(%rbp)
jmp 0x89af
movq -0x8(%rbp), %rax
movl 0x80(%rax), %eax
movl %eax, %edi
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rcx
callq 0x6c00
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x89c3
jmp 0x913b
movl $0x1, -0x1c(%rbp)
movl $0x1, -0x20(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x8a91
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x1c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
shrq $0x20, %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movl -0x1c(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
cmpq %rcx, %rax
je 0x8a81
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x1c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movl -0x20(%rbp), %esi
movl %esi, %edi
addl $0x1, %edi
movl %edi, -0x20(%rbp)
movslq %esi, %rsi
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x8a83
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x89d1
movl -0x20(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x8aa4
jmp 0x913b
movl $0x1, -0x1c(%rbp)
movl $0x0, -0x30(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x24(%rbp), %eax
jg 0x913b
movl -0x1c(%rbp), %eax
cmpl -0x24(%rbp), %eax
jne 0x8ad0
xorl %eax, %eax
movl %eax, -0x74(%rbp)
jmp 0x8b50
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movslq -0x1c(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
shrl %eax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x88(%rdx), %rdx
movq -0x8(%rbp), %rsi
movq 0x90(%rsi), %rsi
movl -0x1c(%rbp), %edi
subl $0x1, %edi
movslq %edi, %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
shrq $0x20, %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
shrl %ecx
subl %ecx, %eax
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x24(%rbp), %eax
je 0x8bc5
movl -0x38(%rbp), %eax
cmpl -0x18(%rbp), %eax
jle 0x912b
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x1c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movl -0x1c(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
subl %ecx, %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cmpl -0x18(%rbp), %eax
jle 0x912b
movl -0x1c(%rbp), %eax
subl -0x30(%rbp), %eax
cmpl -0x14(%rbp), %eax
jl 0x9125
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0xa0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0xa8(%rcx), %rax
jne 0x8c7c
movq -0x8(%rbp), %rax
cmpq $0x0, 0xa8(%rax)
je 0x8c38
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rax
shlq %rax
movq %rax, -0x80(%rbp)
jmp 0x8c43
movl $0x2, %eax
movq %rax, -0x80(%rbp)
jmp 0x8c43
movq -0x80(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xa8(%rax)
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rdi
movq -0x8(%rbp), %rax
imulq $0x1c, 0xa8(%rax), %rsi
callq 0x2200
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xb0(%rax)
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rax
movq -0x8(%rbp), %rdx
movq 0xa0(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0xa0(%rdx)
imulq $0x1c, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movl -0x28(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq (%rax), %rcx
andq $0x7fffffff, %rdx       # imm = 0x7FFFFFFF
shlq $0x20, %rdx
movabsq $-0x7fffffff00000001, %rsi # imm = 0x80000000FFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, (%rax)
movl -0x2c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq (%rax), %rcx
andq $0x1, %rdx
shlq $0x1f, %rdx
movabsq $-0x80000001, %rsi      # imm = 0xFFFFFFFF7FFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, (%rax)
movl -0x1c(%rbp), %ecx
subl -0x30(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq (%rax), %rcx
andq $0x7fffffff, %rdx       # imm = 0x7FFFFFFF
andq $-0x80000000, %rcx      # imm = 0x80000000
orq %rdx, %rcx
movq %rcx, (%rax)
movq -0x58(%rbp), %rax
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
andq (%rax), %rcx
orq $0x0, %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movslq -0x30(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
shrl %ecx
movl -0x10(%rbp), %eax
subl $0x1, %eax
subl %eax, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movl -0x1c(%rbp), %esi
subl $0x1, %esi
movslq %esi, %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl %eax, %ecx
shrl %ecx
addl $0x1, %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x10(%rax)
cmpl $0x0, -0x2c(%rbp)
je 0x8e0a
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movl -0x1c(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0x84(%rbp)
jmp 0x8e32
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x30(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x14(%rax)
cmpl $0x0, -0x2c(%rbp)
je 0x8e6f
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x30(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0x88(%rbp)
jmp 0x8e9c
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movl -0x1c(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x18(%rax)
movl -0x10(%rbp), %edx
subl $0x1, %edx
movq -0x58(%rbp), %rax
movl 0x14(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x14(%rax)
movq -0x58(%rbp), %rax
movl 0x18(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x18(%rax)
movl -0x30(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x8fcb
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x20(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
shrq $0x20, %rax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movabsq $0x100000000, %rcx      # imm = 0x100000000
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x50(%rcx), %rax
jne 0x8f9a
movq -0x8(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x8f59
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
shlq %rax
movq %rax, -0x90(%rbp)
jmp 0x8f67
movl $0x2, %eax
movq %rax, -0x90(%rbp)
jmp 0x8f67
movq -0x90(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rsi
shlq $0x2, %rsi
callq 0x2200
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x58(%rax)
movl -0x5c(%rbp), %edx
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x8(%rbp), %rsi
movq 0x48(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x48(%rsi)
movl %edx, (%rax,%rcx,4)
jmp 0x8fbd
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x8ece
movl -0x30(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x90e4
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x88(%rcx), %rcx
movq -0x8(%rbp), %rdx
movq 0x90(%rdx), %rdx
movslq -0x20(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
shrl %eax
movl -0x10(%rbp), %ecx
subl $0x1, %ecx
subl %ecx, %eax
movl %eax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x20(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0x64(%rbp)
cmpl $0x0, -0x2c(%rbp)
jne 0x9061
movl -0x64(%rbp), %eax
movl -0x10(%rbp), %ecx
subl $0x1, %ecx
subl %ecx, %eax
movl %eax, -0x94(%rbp)
jmp 0x906f
movl $0x80000000, %eax       # imm = 0x80000000
subl -0x64(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
cmpl -0x48(%rbp), %eax
jbe 0x909d
movl -0x48(%rbp), %eax
subl -0x50(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0x90a6
movl -0x64(%rbp), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x60(%rbp), %eax
cmpl -0x44(%rbp), %eax
jbe 0x90cb
movl -0x44(%rbp), %eax
subl -0x4c(%rbp), %eax
addl -0x3c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x60(%rbp), %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x44(%rbp)
jmp 0x90d4
movl -0x60(%rbp), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x44(%rbp)
jmp 0x90d6
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x8fd1
movl -0x48(%rbp), %eax
subl -0x50(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
subl -0x4c(%rbp), %eax
addl -0x3c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jae 0x910f
movl -0x40(%rbp), %eax
movl %eax, -0x98(%rbp)
jmp 0x9118
movl -0x3c(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x8(%rax)
movl -0x1c(%rbp), %eax
movl %eax, -0x30(%rbp)
jmp 0x912d
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x8ab2
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)