LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/seed.c
// Function: mm_seed_mz_flt
void mm_seed_mz_flt(void *km, mm128_v *mv, int32_t q_occ_max, float q_occ_frac)
{
	mm128_t *a;
	size_t i, j, st;
	if (mv->n <= q_occ_max || q_occ_frac <= 0.0f || q_occ_max <= 0) return;
	a = Kmalloc(km, mm128_t, mv->n);
	for (i = 0; i < mv->n; ++i)
		a[i].x = mv->a[i].x, a[i].y = i;
	radix_sort_128x(a, a + mv->n);
	for (st = 0, i = 1; i <= mv->n; ++i) {
		if (i == mv->n || a[i].x != a[st].x) {
			int32_t cnt = i - st;
			if (cnt > q_occ_max && cnt > mv->n * q_occ_frac)
				for (j = st; j < i; ++j)
					mv->a[a[j].y].x = 0;
			st = i;
		}
	}
	kfree(km, a);
	for (i = j = 0; i < mv->n; ++i)
		if (mv->a[i].x != 0)
			mv->a[j++] = mv->a[i];
	mv->n = j;
}

// Assembly:
testl %edx, %edx
jle 0x1d768
xorps %xmm1, %xmm1
ucomiss %xmm0, %xmm1
jae 0x1d768
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rsi, %rbx
movq (%rsi), %rsi
movslq %edx, %rax
cmpq %rax, %rsi
jbe 0x1d75e
movq %rdi, %r14
movss %xmm0, 0x4(%rsp)
shlq $0x4, %rsi
callq 0x1264d
movq %rax, %r15
movq (%rbx), %rsi
testq %rsi, %rsi
je 0x1d615
movq 0x10(%rbx), %rax
xorl %ecx, %ecx
xorl %edx, %edx
movq (%rax,%rcx), %rdi
movq %rdi, (%r15,%rcx)
movq %rdx, 0x8(%r15,%rcx)
incq %rdx
addq $0x10, %rcx
cmpq %rdx, %rsi
jne 0x1d5fc
shlq $0x4, %rsi
addq %r15, %rsi
movq %r15, %rdi
callq 0x5a49
movq (%rbx), %rax
testq %rax, %rax
je 0x1d70e
js 0x1d63c
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
jmp 0x1d656
movq %rax, %rcx
shrq %rcx
movl %eax, %edx
andl $0x1, %edx
orq %rcx, %rdx
xorps %xmm0, %xmm0
cvtsi2ss %rdx, %xmm0
addss %xmm0, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
leaq 0x1(%rax), %rdx
cmpq $0x3, %rdx
movl $0x2, %ecx
cmovaeq %rdx, %rcx
movq %r15, %rdx
addq $0x8, %rdx
movl $0x1, %esi
xorl %edi, %edi
cmpq %rax, %rsi
je 0x1d6a1
movq %rsi, %r8
shlq $0x4, %r8
movq (%r15,%r8), %r8
movq %rdi, %r9
shlq $0x4, %r9
cmpq (%r15,%r9), %r8
jne 0x1d6a1
movq %rdi, %r8
jmp 0x1d6ff
movl %esi, %r8d
subl %edi, %r8d
cmpl %ebp, %r8d
setg %r9b
xorps %xmm1, %xmm1
cvtsi2ss %r8d, %xmm1
ucomiss %xmm0, %xmm1
seta %r8b
cmpq %rdi, %rsi
seta %r10b
andb %r9b, %r10b
andb %r8b, %r10b
movq %rsi, %r8
cmpb $0x1, %r10b
jne 0x1d6ff
movq 0x10(%rbx), %r8
movq %rdi, %r9
shlq $0x4, %r9
addq %rdx, %r9
movq (%r9), %r10
shlq $0x4, %r10
movq $0x0, (%r8,%r10)
incq %rdi
addq $0x10, %r9
cmpq %rdi, %rsi
jne 0x1d6e1
movq %rsi, %r8
incq %rsi
movq %r8, %rdi
cmpq %rcx, %rsi
jne 0x1d67f
movq %r14, %rdi
movq %r15, %rsi
callq 0x12587
movq (%rbx), %rdx
testq %rdx, %rdx
je 0x1d759
xorl %eax, %eax
xorl %esi, %esi
xorl %ecx, %ecx
movq 0x10(%rbx), %rdi
cmpq $0x0, (%rdi,%rax)
je 0x1d74b
leaq (%rdi,%rax), %rdx
leaq 0x1(%rcx), %r8
shlq $0x4, %rcx
movups (%rdx), %xmm0
movups %xmm0, (%rdi,%rcx)
movq (%rbx), %rdx
movq %r8, %rcx
incq %rsi
addq $0x10, %rax
cmpq %rdx, %rsi
jb 0x1d727
jmp 0x1d75b
xorl %ecx, %ecx
movq %rcx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/seed.c
// Function: mm_seed_collect_all
mm_seed_t *mm_seed_collect_all(void *km, const mm_idx_t *mi, const mm128_v *mv, int32_t *n_m_)
{
	mm_seed_t *m;
	size_t i;
	int32_t k;
	m = (mm_seed_t*)kmalloc(km, mv->n * sizeof(mm_seed_t));
	for (i = k = 0; i < mv->n; ++i) {
		const uint64_t *cr;
		mm_seed_t *q;
		mm128_t *p = &mv->a[i];
		uint32_t q_pos = (uint32_t)p->y, q_span = p->x & 0xff;
		int t;
		cr = mm_idx_get(mi, p->x>>8, &t);
		if (t == 0) continue;
		q = &m[k++];
		q->q_pos = q_pos, q->q_span = q_span, q->cr = cr, q->n = t, q->seg_id = p->y >> 32;
		q->is_tandem = q->flt = 0;
		if (i > 0 && p->x>>8 == mv->a[i - 1].x>>8) q->is_tandem = 1;
		if (i < mv->n - 1 && p->x>>8 == mv->a[i + 1].x>>8) q->is_tandem = 1;
	}
	*n_m_ = k;
	return m;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, 0x18(%rsp)
movq %rdx, %rbx
movq %rsi, 0x20(%rsp)
movq (%rdx), %rax
shlq $0x3, %rax
leaq (%rax,%rax,2), %rsi
callq 0x1264d
movq %rax, %r12
cmpq $0x0, (%rbx)
je 0x1d8b9
xorl %ebp, %ebp
xorl %r13d, %r13d
movl $0x0, 0x4(%rsp)
movq %rbx, 0x8(%rsp)
movq 0x10(%rbx), %r15
movq (%r15,%rbp), %r14
movq 0x8(%r15,%rbp), %rbx
movq %r14, %rsi
shrq $0x8, %rsi
movq 0x20(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x6cf7
movl 0x14(%rsp), %edx
testl %edx, %edx
je 0x1d865
movzbl %r14b, %esi
movslq 0x4(%rsp), %rcx
leaq (%rcx,%rcx,2), %rdi
leaq (%r12,%rdi,8), %rcx
movl %ebx, 0x4(%r12,%rdi,8)
movq 0x8(%r12,%rdi,8), %r8
movq $-0x80000000, %r9       # imm = 0x80000000
andq %r9, %r8
orq %rsi, %r8
movq %r8, 0x8(%r12,%rdi,8)
movq %rax, 0x10(%r12,%rdi,8)
movl %edx, (%r12,%rdi,8)
movq 0x8(%r15,%rbp), %rax
movabsq $0x7fffffff00000000, %rdx # imm = 0x7FFFFFFF00000000
andq %rdx, %rax
orq %rsi, %rax
movq %rax, 0x8(%r12,%rdi,8)
testq %r13, %r13
je 0x1d86c
movq 0x8(%rsp), %rbx
movq 0x10(%rbx), %rdx
movq -0x10(%rdx,%rbp), %rdx
xorq (%r15,%rbp), %rdx
cmpq $0xff, %rdx
ja 0x1d871
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
orq %rdx, %rax
movq %rax, 0x8(%rcx)
jmp 0x1d871
movq 0x8(%rsp), %rbx
jmp 0x1d8a7
movq 0x8(%rsp), %rbx
incl 0x4(%rsp)
movq (%rbx), %rdx
decq %rdx
cmpq %rdx, %r13
jae 0x1d8a7
movq 0x10(%rbx), %rdx
movq 0x10(%rdx,%rbp), %rdx
xorq (%r15,%rbp), %rdx
cmpq $0xff, %rdx
ja 0x1d8a7
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
orq %rdx, %rax
movq %rax, 0x8(%rcx)
incq %r13
addq $0x10, %rbp
cmpq (%rbx), %r13
jb 0x1d7b3
jmp 0x1d8c1
movl $0x0, 0x4(%rsp)
movq 0x18(%rsp), %rax
movl 0x4(%rsp), %ecx
movl %ecx, (%rax)
movq %r12, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/jump.c
// Function: mm_jump_check
static int32_t mm_jump_check(void *km, const mm_idx_t *mi, int32_t qlen, const uint8_t *qseq0, const mm_reg1_t *r, int32_t ext, int32_t is_left) // TODO: check close N
{
	int32_t clip, clen, e = !r->rev ^ !is_left; // 0 for left of the alignment; 1 for right
	uint32_t cigar;
	if (!r->p || r->p->n_cigar <= 0) return -1; // only working with CIGAR
	clip = e == 0? r->qs : qlen - r->qe;
	cigar = r->p->cigar[is_left? 0 : r->p->n_cigar - 1];
	clen = (cigar&0xf) == MM_CIGAR_MATCH? cigar>>4 : 0;
	if (clen <= ext) return -1;
	if (is_left) {
		if (clip >= r->rs) return -1; // no space to jump
	} else {
		if (clip >= mi->seq[r->rid].len - r->re) return -1; // no space to jump
	}
	return 0;
}

// Assembly:
movq 0x48(%rdx), %r9
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r9, %r9
je 0x1e8e4
pushq %rbx
movl 0x18(%r9), %r10d
testl %r10d, %r10d
je 0x1e8e3
testl %r8d, %r8d
sete %r11b
btl $0xa, 0x3c(%rdx)
setae %bl
xorb %r11b, %bl
je 0x1e881
subl 0x14(%rdx), %esi
jmp 0x1e884
movl 0x10(%rdx), %esi
testl %r8d, %r8d
je 0x1e8ab
movl 0x1c(%r9), %edi
movl %edi, %r8d
shrl $0x4, %r8d
xorl %r9d, %r9d
testb $0xf, %dil
cmovel %r8d, %r9d
cmpl %ecx, %r9d
jle 0x1e8e3
cmpl 0x18(%rdx), %esi
jl 0x1e8e1
jmp 0x1e8e3
decl %r10d
movl 0x1c(%r9,%r10,4), %r8d
movl %r8d, %r9d
shrl $0x4, %r9d
xorl %r10d, %r10d
testb $0xf, %r8b
cmovel %r9d, %r10d
cmpl %ecx, %r10d
jle 0x1e8e3
movq 0x20(%rdi), %rcx
movslq 0x8(%rdx), %rdi
leaq (%rdi,%rdi,2), %rdi
movl 0x10(%rcx,%rdi,8), %ecx
subl 0x1c(%rdx), %ecx
cmpl %ecx, %esi
jae 0x1e8e3
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/jump.c
// Function: mm_jump_get_qseq_seq
static uint8_t *mm_jump_get_qseq_seq(void *km, int32_t qlen, const uint8_t *qseq0, const mm_reg1_t *r, int32_t is_left, int32_t ql0, uint8_t *qseq)
{
	extern unsigned char seq_nt4_table[256];
	int32_t i, k = 0;
	if (!r->rev) {
		if (is_left)
			for (i = 0; i < ql0; ++i)
				qseq[k++] = seq_nt4_table[(uint8_t)qseq0[i]];
		else
			for (i = qlen - ql0; i < qlen; ++i)
				qseq[k++] = seq_nt4_table[(uint8_t)qseq0[i]];
	} else {
		if (is_left)
			for (i = qlen - 1; i >= qlen - ql0; --i) {
				uint8_t c = seq_nt4_table[(uint8_t)qseq0[i]];
				qseq[k++] = c >= 4? c : 3 - c;
			}
		else
			for (i = ql0 - 1; i >= 0; --i) {
				uint8_t c = seq_nt4_table[(uint8_t)qseq0[i]];
				qseq[k++] = c >= 4? c : 3 - c;
			}
	}
	return qseq;
}

// Assembly:
movq %r9, %rax
btl $0xa, %edx
jb 0x1e921
testl %ecx, %ecx
je 0x1e96a
testl %r8d, %r8d
jle 0x1e9d1
movl %r8d, %ecx
xorl %edx, %edx
leaq 0x17f09(%rip), %rdi     # 0x36810
movzbl (%rsi,%rdx), %r8d
movb (%rdi,%r8), %r8b
movb %r8b, (%rax,%rdx)
incq %rdx
cmpq %rdx, %rcx
jne 0x1e907
jmp 0x1e9d1
testl %ecx, %ecx
je 0x1e99b
testl %r8d, %r8d
jle 0x1e9d1
movslq %edi, %rcx
subl %r8d, %edi
movslq %edi, %rdx
leaq 0x17ed2(%rip), %rdi     # 0x36810
movq %rax, %r8
movzbl -0x1(%rsi,%rcx), %r9d
decq %rcx
movzbl (%rdi,%r9), %r9d
movb $0x3, %r10b
subb %r9b, %r10b
movzbl %r10b, %r10d
cmovbl %r9d, %r10d
movb %r10b, (%r8)
incq %r8
cmpq %rdx, %rcx
jg 0x1e941
jmp 0x1e9d1
testl %r8d, %r8d
jle 0x1e9d1
movslq %edi, %rcx
subl %r8d, %edi
movslq %edi, %rdx
leaq 0x17e91(%rip), %rdi     # 0x36810
movq %rax, %r8
movzbl (%rsi,%rdx), %r9d
movb (%rdi,%r9), %r9b
movb %r9b, (%r8)
incq %rdx
incq %r8
cmpq %rcx, %rdx
jl 0x1e982
jmp 0x1e9d1
testl %r8d, %r8d
jle 0x1e9d1
movl %r8d, %ecx
leaq 0x17e66(%rip), %rdx     # 0x36810
movq %rax, %rdi
movzbl -0x1(%rsi,%rcx), %r8d
movzbl (%rdx,%r8), %r8d
movb $0x3, %r9b
subb %r8b, %r9b
movzbl %r9b, %r9d
cmovbl %r8d, %r9d
movb %r9b, (%rdi)
incq %rdi
decq %rcx
jne 0x1e9ad
retq
nop
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/ksw2_dispatch.c
// Function: ksw_extz2_sse
void ksw_extz2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, int8_t q, int8_t e, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez)
{
	extern void ksw_extz2_sse2(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, int8_t q, int8_t e, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez);
	extern void ksw_extz2_sse41(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat, int8_t q, int8_t e, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez);
	if (ksw_simd < 0) ksw_simd = x86_simd();
	if (ksw_simd & SIMD_SSE4_1)
		ksw_extz2_sse41(km, qlen, query, tlen, target, m, mat, q, e, w, zdrop, end_bonus, flag, ez);
	else if (ksw_simd & SIMD_SSE2)
		ksw_extz2_sse2(km, qlen, query, tlen, target, m, mat, q, e, w, zdrop, end_bonus, flag, ez);
	else abort();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %r9d, %r12d
movl %esi, %r15d
movq %rdi, %r13
movq 0xa8(%rsp), %rax
movq %rax, 0x28(%rsp)
movl 0xa0(%rsp), %eax
movq %rax, 0x30(%rsp)
movl 0x98(%rsp), %ebp
movl 0x90(%rsp), %r14d
movl 0x88(%rsp), %ebx
movb 0x80(%rsp), %dil
movb 0x78(%rsp), %sil
movq 0x70(%rsp), %r11
movl 0x17a4e(%rip), %eax     # 0x36910
testl %eax, %eax
jns 0x1ef1d
movq %rbx, 0x20(%rsp)
movq %r11, 0x8(%rsp)
movq %rbp, 0x10(%rsp)
movq %r8, %rbp
movq %r14, 0x18(%rsp)
movl %ecx, 0x4(%rsp)
movq %rdx, %rbx
movb %sil, 0x3(%rsp)
movl %edi, %r14d
callq 0x1ef7e
movl %r14d, %edi
movb 0x3(%rsp), %sil
movq %rbx, %rdx
movl 0x4(%rsp), %ecx
movq 0x18(%rsp), %r14
movq %rbp, %r8
movq 0x10(%rsp), %rbp
movq 0x8(%rsp), %r11
movq 0x20(%rsp), %rbx
movl %eax, 0x179f3(%rip)     # 0x36910
testb $0x10, %al
jne 0x1ef5c
testb $0x2, %al
je 0x1ef79
movsbl %dil, %eax
movsbl %sil, %r10d
movsbl %r12b, %r9d
movq %r13, %rdi
movl %r15d, %esi
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq %rbp
pushq %r14
pushq %rbx
pushq %rax
pushq %r10
pushq %r11
callq 0x246e0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsbl %r12b, %r9d
movq %r13, %rdi
movl %r15d, %esi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1f2a4
callq 0x2050
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/ksw2_dispatch.c
// Function: x86_simd
static int x86_simd(void)
{
	int flag = 0, cpuid[4], max_id;
	__cpuidex(cpuid, 0, 0);
	max_id = cpuid[0];
	if (max_id == 0) return 0;
	__cpuidex(cpuid, 1, 0);
	if (cpuid[3]>>25&1) flag |= SIMD_SSE;
	if (cpuid[3]>>26&1) flag |= SIMD_SSE2;
	if (cpuid[2]>>0 &1) flag |= SIMD_SSE3;
	if (cpuid[2]>>9 &1) flag |= SIMD_SSSE3;
	if (cpuid[2]>>19&1) flag |= SIMD_SSE4_1;
	if (cpuid[2]>>20&1) flag |= SIMD_SSE4_2;
	if (cpuid[2]>>28&1) flag |= SIMD_AVX;
	if (max_id >= 7) {
		__cpuidex(cpuid, 7, 0);
		if (cpuid[1]>>5 &1) flag |= SIMD_AVX2;
		if (cpuid[1]>>16&1) flag |= SIMD_AVX512F;
	}
	return flag;
}

// Assembly:
pushq %rbx
xorl %esi, %esi
xorl %eax, %eax
xorl %ecx, %ecx
cpuid
testl %eax, %eax
je 0x1efe1
movl %eax, %edi
xorl %ecx, %ecx
movl $0x1, %eax
cpuid
movl %ecx, %esi
shrl $0x19, %edx
andl $0x3, %edx
movl %ecx, %eax
andl $0x1, %eax
leal (%rdx,%rax,4), %eax
shrl $0x6, %ecx
andl $0x8, %ecx
orl %eax, %ecx
movl %esi, %eax
shrl $0xf, %eax
andl $0x30, %eax
orl %ecx, %eax
shrl $0x16, %esi
andl $0x40, %esi
orl %eax, %esi
cmpl $0x7, %edi
jl 0x1efe1
xorl %ecx, %ecx
movl $0x7, %eax
cpuid
movl %ebx, %eax
andl $0x20, %eax
shrl $0x8, %ebx
andl $0x100, %ebx            # imm = 0x100
leal (%rbx,%rax,4), %eax
orl %eax, %esi
movl %esi, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/ksw2_dispatch.c
// Function: ksw_extd2_sse
void ksw_extd2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t e2, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez)
{
	extern void ksw_extd2_sse2(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t e2, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez);
	extern void ksw_extd2_sse41(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t e2, int w, int zdrop, int end_bonus, int flag, ksw_extz_t *ez);
	if (ksw_simd < 0) ksw_simd = x86_simd();
	if (ksw_simd & SIMD_SSE4_1)
		ksw_extd2_sse41(km, qlen, query, tlen, target, m, mat, q, e, q2, e2, w, zdrop, end_bonus, flag, ez);
	else if (ksw_simd & SIMD_SSE2)
		ksw_extd2_sse2(km, qlen, query, tlen, target, m, mat, q, e, q2, e2, w, zdrop, end_bonus, flag, ez);
	else abort();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq 0xc8(%rsp), %rax
movq %rax, 0x38(%rsp)
movl 0xc0(%rsp), %r12d
movl 0xb8(%rsp), %r15d
movl 0xb0(%rsp), %r14d
movl 0xa8(%rsp), %ebx
movb 0xa0(%rsp), %r10b
movb 0x98(%rsp), %r11b
movb 0x90(%rsp), %bpl
movb 0x88(%rsp), %r13b
movq 0x80(%rsp), %rax
movq %rax, 0x40(%rsp)
movl 0x178be(%rip), %eax     # 0x36910
testl %eax, %eax
jns 0x1f0cf
movq %rbx, 0x18(%rsp)
movq %r8, 0x8(%rsp)
movq %r15, 0x30(%rsp)
movq %r14, 0x20(%rsp)
movl %ecx, %r14d
movq %r12, 0x28(%rsp)
movq %rdx, %r12
movl %esi, %r15d
movb %bpl, 0x7(%rsp)
movl %r9d, %ebp
movq %rdi, 0x10(%rsp)
movl %r11d, %ebx
movb %r10b, 0x6(%rsp)
callq 0x1ef7e
movb 0x6(%rsp), %r10b
movl %ebx, %r11d
movq 0x10(%rsp), %rdi
movl %ebp, %r9d
movb 0x7(%rsp), %bpl
movl %r15d, %esi
movq %r12, %rdx
movq 0x28(%rsp), %r12
movl %r14d, %ecx
movq 0x20(%rsp), %r14
movq 0x30(%rsp), %r15
movq 0x8(%rsp), %r8
movq 0x18(%rsp), %rbx
movl %eax, 0x17841(%rip)     # 0x36910
testb $0x10, %al
jne 0x1f11a
testb $0x2, %al
je 0x1f131
movsbl %r10b, %r10d
movsbl %r11b, %r11d
movsbl %bpl, %ebp
movsbl %r13b, %eax
movsbl %r9b, %r9d
pushq 0x38(%rsp)
pushq %r12
pushq %r15
pushq %r14
pushq %rbx
pushq %r10
pushq %r11
pushq %rbp
pushq %rax
pushq 0x88(%rsp)
callq 0x25f0c
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsbl %r9b, %r9d
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x20970
callq 0x2050
// File: /workspace/github_c_makefile_star2_O3/lh3[P]minimap2/ksw2_dispatch.c
// Function: ksw_exts2_sse
void ksw_exts2_sse(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t noncan, int zdrop, int end_bonus, int8_t junc_bonus, int8_t junc_pen, int flag, const uint8_t *junc, ksw_extz_t *ez)
{
	extern void ksw_exts2_sse2(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t noncan, int zdrop, int end_bonus, int8_t junc_bonus, int8_t junc_pen, int flag, const uint8_t *junc, ksw_extz_t *ez);
	extern void ksw_exts2_sse41(void *km, int qlen, const uint8_t *query, int tlen, const uint8_t *target, int8_t m, const int8_t *mat,
				   int8_t q, int8_t e, int8_t q2, int8_t noncan, int zdrop, int end_bonus, int8_t junc_bonus, int8_t junc_pen, int flag, const uint8_t *junc, ksw_extz_t *ez);
	if (ksw_simd < 0) ksw_simd = x86_simd();
	if (ksw_simd & SIMD_SSE4_1)
		ksw_exts2_sse41(km, qlen, query, tlen, target, m, mat, q, e, q2, noncan, zdrop, end_bonus, junc_bonus, junc_pen, flag, junc, ez);
	else if (ksw_simd & SIMD_SSE2)
		ksw_exts2_sse2(km, qlen, query, tlen, target, m, mat, q, e, q2, noncan, zdrop, end_bonus, junc_bonus, junc_pen, flag, junc, ez);
	else abort();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq 0xd8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x20(%rsp)
movl 0xc8(%rsp), %eax
movq %rax, 0x28(%rsp)
movb 0xc0(%rsp), %r10b
movb 0xb8(%rsp), %r15b
movl 0xb0(%rsp), %eax
movq %rax, 0x30(%rsp)
movl 0xa8(%rsp), %eax
movq %rax, 0x38(%rsp)
movb 0xa0(%rsp), %r12b
movb 0x98(%rsp), %r14b
movb 0x90(%rsp), %bpl
movb 0x88(%rsp), %bl
movq 0x80(%rsp), %rax
movq %rax, 0x40(%rsp)
movl 0x1774c(%rip), %eax     # 0x36910
testl %eax, %eax
jns 0x1f227
movq %r8, 0x10(%rsp)
movb %bpl, 0xa(%rsp)
movl %ecx, %ebp
movb %r14b, 0x9(%rsp)
movq %rdx, %r14
movl %esi, 0xc(%rsp)
movl %r9d, %r13d
movb %r12b, 0x8(%rsp)
movq %rdi, %r12
movb %bl, 0xb(%rsp)
movl %r10d, %ebx
callq 0x1ef7e
movl %ebx, %r10d
movb 0xb(%rsp), %bl
movq %r12, %rdi
movb 0x8(%rsp), %r12b
movl %r13d, %r9d
movl 0xc(%rsp), %esi
movq %r14, %rdx
movb 0x9(%rsp), %r14b
movl %ebp, %ecx
movb 0xa(%rsp), %bpl
movq 0x10(%rsp), %r8
movl %eax, 0x176e9(%rip)     # 0x36910
testb $0x10, %al
jne 0x1f285
testb $0x2, %al
je 0x1f29c
movsbl %r10b, %r10d
movsbl %r15b, %r11d
movsbl %r12b, %eax
movsbl %r14b, %r14d
movsbl %bpl, %ebp
movsbl %bl, %ebx
movsbl %r9b, %r9d
pushq 0x18(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq %r10
pushq %r11
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq %rax
pushq %r14
pushq %rbp
pushq %rbx
pushq 0x98(%rsp)
callq 0x27eb0
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsbl %r9b, %r9d
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x22664
callq 0x2050
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/soso7885[P]OPCUA_example/demo_src/server.c
// Function: readTimeData
static UA_StatusCode
readTimeData(void *handle, const UA_NodeId nodeId, UA_Boolean sourceTimeStamp,
             const UA_NumericRange *range, UA_DataValue *value) {
    if(range) {
        value->hasStatus = true;
        value->status = UA_STATUSCODE_BADINDEXRANGEINVALID;
        return UA_STATUSCODE_GOOD;
    }
	UA_DateTime currentTime = UA_DateTime_now();
    UA_Variant_setScalarCopy(&value->value, &currentTime, &UA_TYPES[UA_TYPES_DATETIME]);
	value->hasValue = true;
	if(sourceTimeStamp) {
		value->hasSourceTimestamp = true;
		value->sourceTimestamp = currentTime;
	}
	return UA_STATUSCODE_GOOD;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rcx, %rbx
testq %rdx, %rdx
je 0x37e6
orb $0x2, (%rbx)
movl $0x80360000, 0x38(%rbx) # imm = 0x80360000
jmp 0x3824
movl %esi, %r14d
callq 0x2200
leaq -0x18(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rbx), %rdi
movl $0x1e0, %edx            # imm = 0x1E0
addq 0x27cb(%rip), %rdx      # 0x5fd0
callq 0x2170
movb (%rbx), %al
movl %eax, %ecx
orb $0x1, %cl
movb %cl, (%rbx)
testb %r14b, %r14b
je 0x3824
orb $0x5, %al
movb %al, (%rbx)
movq -0x18(%rbp), %rax
movq %rax, 0x40(%rbx)
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/soso7885[P]OPCUA_example/demo_src/server.c
// Function: readTemperature
static UA_StatusCode
readTemperature(void *handle, const UA_NodeId nodeId, UA_Boolean sourceTimeStamp,
                const UA_NumericRange *range, UA_DataValue *value) {
    if(range) {
        value->hasStatus = true;
        value->status = UA_STATUSCODE_BADINDEXRANGEINVALID;
        return UA_STATUSCODE_GOOD;
    }

	rewind(temperatureFile);
	fflush(temperatureFile);

	UA_Double currentTemperature;
	if(fscanf(temperatureFile, "%lf", &currentTemperature) != 1){
		UA_LOG_WARNING(logger, UA_LOGCATEGORY_USERLAND, "Can not parse temperature");
		exit(1);
	}

	currentTemperature /= 1000.0;

	value->sourceTimestamp = UA_DateTime_now();
	value->hasSourceTimestamp = true;
    UA_Variant_setScalarCopy(&value->value, &currentTemperature, &UA_TYPES[UA_TYPES_DOUBLE]);
	value->hasValue = true;
	return UA_STATUSCODE_GOOD;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rcx, %rbx
testq %rdx, %rdx
je 0x384e
orb $0x2, (%rbx)
movl $0x80360000, 0x38(%rbx) # imm = 0x80360000
jmp 0x38c1
movq 0x290b(%rip), %rdi      # 0x6160
callq 0x2110
movq 0x28ff(%rip), %rdi      # 0x6160
callq 0x21c0
movq 0x28f3(%rip), %rdi      # 0x6160
leaq 0x95b(%rip), %rsi       # 0x41cf
leaq -0x18(%rbp), %rdx
xorl %eax, %eax
callq 0x2070
cmpl $0x1, %eax
jne 0x38cc
leaq -0x18(%rbp), %r14
movsd (%r14), %xmm0
divsd 0x78b(%rip), %xmm0      # 0x4020
movsd %xmm0, (%r14)
callq 0x2200
movq %rax, 0x40(%rbx)
orb $0x4, (%rbx)
leaq 0x8(%rbx), %rdi
movl $0x190, %edx            # imm = 0x190
addq 0x271a(%rip), %rdx      # 0x5fd0
movq %r14, %rsi
callq 0x2170
orb $0x1, (%rbx)
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq 0x287d(%rip), %rcx      # 0x6150
testq %rcx, %rcx
je 0x38ed
leaq 0x8f4(%rip), %rdx       # 0x41d3
movl $0x3, %edi
movl $0x5, %esi
xorl %eax, %eax
callq *%rcx
movl $0x1, %edi
callq 0x2240
// File: /workspace/github_c_makefile_star2_O3/soso7885[P]OPCUA_example/demo_src/server.c
// Function: readLedStatus
static UA_StatusCode
readLedStatus(void *handle, UA_NodeId nodeid, UA_Boolean sourceTimeStamp,
              const UA_NumericRange *range, UA_DataValue *value) {
    if(range)
        return UA_STATUSCODE_BADINDEXRANGEINVALID;

    value->hasValue = true;
    UA_StatusCode retval = UA_Variant_setScalarCopy(&value->value, &ledStatus,
                                                    &UA_TYPES[UA_TYPES_BOOLEAN]);

    if(retval != UA_STATUSCODE_GOOD)
        return retval;
  
    if(sourceTimeStamp) {
        value->sourceTimestamp = UA_DateTime_now();
        value->hasSourceTimestamp = true;
    }
    return UA_STATUSCODE_GOOD;
}

// Assembly:
movl $0x80360000, %eax       # imm = 0x80360000
testq %rdx, %rdx
je 0x3902
retq
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rcx, %rbx
movl %esi, %r14d
orb $0x1, (%rcx)
leaq 0x8(%rcx), %rdi
leaq 0x285b(%rip), %rsi      # 0x6178
movq 0x26ac(%rip), %rdx      # 0x5fd0
callq 0x2170
testl %eax, %eax
setne %cl
xorb $0x1, %r14b
orb %cl, %r14b
jne 0x3945
callq 0x2200
movq %rax, 0x40(%rbx)
orb $0x4, (%rbx)
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/soso7885[P]OPCUA_example/demo_src/server.c
// Function: writeLedStatus
static UA_StatusCode
writeLedStatus(void *handle, const UA_NodeId nodeid,
               const UA_Variant *data, const UA_NumericRange *range) {
    if(range)
        return UA_STATUSCODE_BADINDEXRANGEINVALID;

#ifdef UA_ENABLE_MULTITHREADING
	pthread_rwlock_wrlock(&writeLock);
#endif
	if(data->data)
		ledStatus = *(UA_Boolean*)data->data;

	if(triggerFile)
		fseek(triggerFile, 0, SEEK_SET);

	if(ledFile) {
		if(ledStatus == 1)
			fprintf(ledFile, "%s", "1");
		else
			fprintf(ledFile, "%s", "0");
		fflush(ledFile);
	}
#ifdef UA_ENABLE_MULTITHREADING
	pthread_rwlock_unlock(&writeLock);
#endif
	return UA_STATUSCODE_GOOD;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movl $0x80360000, %ebx       # imm = 0x80360000
testq %rdx, %rdx
jne 0x39b8
movq 0x18(%rsi), %rax
testq %rax, %rax
je 0x396b
movb (%rax), %al
movb %al, 0x280d(%rip)       # 0x6178
movq 0x27f6(%rip), %rdi      # 0x6168
testq %rdi, %rdi
je 0x3980
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq 0x27e9(%rip), %rsi      # 0x6170
xorl %ebx, %ebx
testq %rsi, %rsi
je 0x39b8
leaq 0x720(%rip), %rax       # 0x40b5
leaq 0x80e(%rip), %rdi       # 0x41aa
cmpb $0x0, 0x27d5(%rip)      # 0x6178
cmovneq %rax, %rdi
callq 0x2120
movq 0x27bd(%rip), %rdi      # 0x6170
callq 0x21c0
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/soso7885[P]OPCUA_example/demo_src/server.c
// Function: getMonitoredItems
static UA_StatusCode
getMonitoredItems(void *methodHandle, const UA_NodeId objectId,
                  size_t inputSize, const UA_Variant *input,
                  size_t outputSize, UA_Variant *output) {
    UA_String tmp = UA_STRING("Hello World");
    UA_Variant_setScalarCopy(output, &tmp, &UA_TYPES[UA_TYPES_STRING]);
    printf("getMonitoredItems was called\n");
    return UA_STATUSCODE_GOOD;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %r8, %rdi
leaq -0x10(%rbp), %rsi
movq $0xb, (%rsi)
leaq 0x81c(%rip), %rax       # 0x421f
movq %rax, 0x8(%rsi)
movl $0x1b8, %edx            # imm = 0x1B8
addq 0x25bd(%rip), %rdx      # 0x5fd0
callq 0x2170
leaq 0x80c(%rip), %rdi       # 0x422b
callq 0x2080
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/mjosaarinen[P]brutus/crypto_aead/aes128n12t8clocv2/aesni/encrypt.c
// Function: load_partial_block
void load_partial_block(block* dst, const unsigned char* m, int len, unsigned choice)
{
    unsigned char temp[16];
    if(choice == ZERO_APPEND){
        memcpy(temp, m, len);
        memset(temp+len, 0, 16-len);
        *dst = LOAD(temp);
    }
    else if(choice == ONE_ZERO_PADDING){
        memcpy(temp, m, len);
        memset(temp+len, 0, STATE_LEN-len);
        if(len < STATE_LEN)
            temp[len] = 0x80;
        *dst = LOAD(temp);
    }
    else if(choice == ZERO_PREPEND){
        memcpy(temp+16-len, m, len);
        memset(temp, 0, 16-len);
        *dst = LOAD(temp);
    }
    else if(choice == PARAM_OZP){
        temp[0] = PARAM;
        memcpy(temp+1, m, len);
        memset(temp+len+1, 0, STATE_LEN-len-1);
        if(len < (STATE_LEN-1))
            temp[len+1] = 0x80;
        *dst = LOAD(temp);
    }
    else{
        // do nothing
    }
}

// Assembly:
cmpl $0x3, %ecx
ja 0x13ed
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %edx, %ebp
movq %rdi, %rbx
movl %ecx, %eax
leaq 0x1ce5(%rip), %rcx      # 0x3000
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movslq %ebp, %r14
movq %rsp, %rdi
movq %r14, %rdx
callq 0x1080
leaq (%rsp,%r14), %rdi
movl $0x10, %eax
subl %ebp, %eax
movslq %eax, %rdx
jmp 0x13d5
movslq %ebp, %r14
movq %rsp, %rdi
movq %r14, %rdx
callq 0x1080
addq %rsp, %r14
movl $0x10, %eax
subl %ebp, %eax
movslq %eax, %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1030
cmpl $0xf, %ebp
jg 0x13dc
movb $-0x80, (%r14)
jmp 0x13dc
leaq 0x1(%rsp), %rdi
movb $-0x40, -0x1(%rdi)
movslq %ebp, %r14
movq %r14, %rdx
callq 0x1080
leaq (%rsp,%r14), %rdi
incq %rdi
movl $0xf, %eax
subl %r14d, %eax
movslq %eax, %rdx
xorl %esi, %esi
callq 0x1030
cmpl $0xe, %r14d
jg 0x13dc
movq %rsp, %rax
movb $-0x80, 0x1(%r14,%rax)
jmp 0x13dc
movslq %ebp, %rdx
movq %rsp, %r14
movq %r14, %rdi
subq %rdx, %rdi
addq $0x10, %rdi
callq 0x1080
movl $0x10, %eax
subl %ebp, %eax
movslq %eax, %rdx
movq %r14, %rdi
xorl %esi, %esi
callq 0x1030
vmovaps (%rsp), %xmm0
vmovaps %xmm0, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/arachsys[P]init/daemon.c
// Function: execute
static void execute(char **argv) {
  if (gid > 0 && setgid(gid) < 0)
    err(EXIT_FAILURE, "setgid");
  if (uid > 0 && setuid(uid) < 0)
    err(EXIT_FAILURE, "setuid");
  execvp(argv[0], argv);
  err(EXIT_FAILURE, "exec");
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x290a(%rip), %edi      # 0x61fc
testl %edi, %edi
je 0x3908
callq 0x22a0
testl %eax, %eax
jns 0x3908
leaq 0xe76(%rip), %rsi       # 0x477c
jmp 0x3936
movl 0x28ea(%rip), %edi      # 0x61f8
testl %edi, %edi
je 0x3924
callq 0x2340
testl %eax, %eax
jns 0x3924
leaq 0xe61(%rip), %rsi       # 0x4783
jmp 0x3936
movq (%rbx), %rdi
movq %rbx, %rsi
callq 0x22f0
leaq 0x8b0(%rip), %rsi       # 0x41e6
movl $0x1, %edi
xorl %eax, %eax
callq 0x2210
// File: /workspace/github_c_makefile_star2_O3/arachsys[P]init/daemon.c
// Function: listen_add
static void listen_add(int fd) {
  if ((listeners & 15) == 0) {
    pollfd = realloc(pollfd, (listeners + 16) * sizeof(struct pollfd));
    if (pollfd == NULL)
      err(EXIT_FAILURE, "realloc");
  }
  pollfd[listeners++].fd = fd;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movl %edi, %ebx
movq 0x2864(%rip), %r14      # 0x6210
movq 0x2885(%rip), %rax      # 0x6238
testb $0xf, %r14b
jne 0x39d5
leaq 0x80(,%r14,8), %rsi
movq %rax, %rdi
callq 0x2270
movq %rax, 0x2868(%rip)      # 0x6238
testq %rax, %rax
je 0x39ec
leaq 0x1(%r14), %rcx
movq %rcx, 0x2830(%rip)      # 0x6210
movl %ebx, (%rax,%r14,8)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x82e(%rip), %rsi       # 0x4221
movl $0x1, %edi
xorl %eax, %eax
callq 0x2210
// File: /workspace/github_c_makefile_star2_O3/arachsys[P]init/daemon.c
// Function: signal_get
static int signal_get(void) {
  unsigned char signal = 0;
  while (read(signals[0], &signal, 1) < 0)
    if (errno != EINTR)
      break;
  return signal;
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
leaq 0xf(%rsp), %rbx
movb $0x0, (%rbx)
movl 0x2806(%rip), %edi      # 0x6218
movl $0x1, %edx
movq %rbx, %rsi
callq 0x2180
testq %rax, %rax
jns 0x3a2e
callq 0x2040
cmpl $0x4, (%rax)
je 0x3a0c
movzbl 0xf(%rsp), %eax
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/arachsys[P]init/daemon.c
// Function: reap
static pid_t reap(int *status) {
  pid_t child;

  while ((child = waitpid(-1, status, WNOHANG)) < 0)
    if (errno != EINTR)
      break;
  return child > 0 ? child : 0;
}

// Assembly:
pushq %rbx
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
xorl %esi, %esi
movl $0x1, %edx
callq 0x22b0
movl %eax, %ebx
testl %eax, %eax
jns 0x3a5b
callq 0x2040
cmpl $0x4, (%rax)
je 0x3a3a
xorl %eax, %eax
testl %ebx, %ebx
cmovgl %ebx, %eax
popq %rbx
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O3/antonblanchard[P]will-it-scale/tests/read3.c
// Function: testcase
void testcase(unsigned long long *iterations, unsigned long nr)
{
	char *buf;
	char tmpfile[] = "/tmp/willitscale.XXXXXX";
	int fd = mkostemp(tmpfile, O_DIRECT);
	char *p;

	buf = aligned_alloc(getpagesize(), FILESIZE);
	memset(buf, 0, FILESIZE);
	assert(fd >= 0);
	assert(write(fd, buf, FILESIZE) == FILESIZE);
	unlink(tmpfile);

	p = malloc(BUFLEN + getpagesize());
	p = (char *)(((unsigned long)p + getpagesize()-1) & ~(getpagesize()-1));

	while (1) {
		int ret = read(fd, p, BUFLEN);
		assert(ret >= 0);
		if (ret == 0)
			lseek(fd, 0, SEEK_SET);

		(*iterations)++;
	}
	free(buf);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movaps 0x5dc(%rip), %xmm0      # 0x3320
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movabsq $0x5858585858582e, %rax # imm = 0x5858585858582E
movq %rax, 0x10(%rdi)
movl $0x4000, %esi           # imm = 0x4000
callq 0x2130
movl %eax, %ebp
callq 0x2280
movslq %eax, %r14
movl $0x100000, %esi         # imm = 0x100000
movq %r14, %rdi
callq 0x22a0
movq %rax, %r15
movl $0x100000, %edx         # imm = 0x100000
movq %rax, %rdi
xorl %esi, %esi
callq 0x2160
testl %ebp, %ebp
js 0x2df0
movl $0x100000, %edx         # imm = 0x100000
movl %ebp, %edi
movq %r15, %rsi
callq 0x20d0
cmpq $0x100000, %rax         # imm = 0x100000
jne 0x2e0f
movq %rsp, %rdi
callq 0x2080
leal (%r14,%r14), %eax
movslq %eax, %rdi
callq 0x21f0
addq %r14, %rax
decq %rax
movl %r14d, %ecx
negl %ecx
movslq %ecx, %r15
andq %rax, %r15
movl %ebp, %edi
movq %r15, %rsi
movq %r14, %rdx
callq 0x2190
testl %eax, %eax
js 0x2e2e
testl %eax, %eax
jne 0x2deb
movl %ebp, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2140
incq (%rbx)
jmp 0x2dcb
leaq 0x4ad(%rip), %rdi       # 0x32a4
leaq 0x4ae(%rip), %rsi       # 0x32ac
leaq 0x4b5(%rip), %rcx       # 0x32ba
movl $0x16, %edx
callq 0x2150
leaq 0x4d7(%rip), %rdi       # 0x32ed
leaq 0x48f(%rip), %rsi       # 0x32ac
leaq 0x496(%rip), %rcx       # 0x32ba
movl $0x17, %edx
callq 0x2150
leaq 0x4dd(%rip), %rdi       # 0x3312
leaq 0x470(%rip), %rsi       # 0x32ac
leaq 0x477(%rip), %rcx       # 0x32ba
movl $0x1f, %edx
callq 0x2150
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/xtract.c
// Function: dump_lut
void
dump_lut(void)
{	int n;
	FILE *lf;
	char nlutfl[512];
	static char *prefs[] =
	{ "D: ", "C: ", "A: ", "F: ", "R: ", "case ", "", 0 };

	sprintf(nlutfl, "%s.%s", want, suffix);
	if (1 || Verbose_cmds)
		fprintf(stderr, "%s: writing %s\n", progname, nlutfl);

	if ((lf = fopen(nlutfl, MFLAGS)) == NULL)
	{	fprintf(stderr, "%s: cannot create %s\n", progname, nlutfl);
		return;
	}
if (debug_io) fprintf(stderr, "open %s -> %p\n", nlutfl, lf);
	fprintf(lf, "%s for target <%s>\n", Banner, want);
	dump_fct(lf);
	dump_substitute(lf);

	if (Verbose&2)
		dump_decls(stdout);

	for (n = 0; prefs[n]; n++)
		trav_lut(lf, prefs[n]);
if (debug_io) fprintf(stderr, "close v %p\n", lf);
	Fclose(lf);
	add_fnm(nlutfl);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x200, %rsp            # imm = 0x200
leaq 0x31d5f(%rip), %r12     # 0x361a8
movq (%r12), %rdx
leaq 0x31d44(%rip), %rax     # 0x36198
movq (%rax), %rcx
leaq 0x2068b(%rip), %rsi     # 0x24ae9
movq %rsp, %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x42a0
movq 0x31b86(%rip), %r14     # 0x35ff8
movq (%r14), %rdi
leaq 0x31d24(%rip), %r15     # 0x361a0
movq (%r15), %rdx
leaq 0x20669(%rip), %rsi     # 0x24aef
movq %rbx, %rcx
xorl %eax, %eax
callq 0x41d0
leaq 0x25448(%rip), %rsi     # 0x298df
movq %rbx, %rdi
callq 0x4270
testq %rax, %rax
je 0x454a
movq %rax, %rbx
leaq 0x34566(%rip), %r15     # 0x38a18
cmpl $0x0, (%r15)
jne 0x4563
movq (%r12), %rcx
leaq 0x1f493(%rip), %rsi     # 0x2395a
leaq 0x1f4a0(%rip), %rdx     # 0x2396e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x41d0
movq %rbx, %rdi
callq 0xc547
movq %rbx, %rdi
callq 0xfb87
leaq 0x3458d(%rip), %rax     # 0x38a7c
testb $0x2, (%rax)
je 0x4503
movq 0x31ad5(%rip), %rax     # 0x35fd0
movq (%rax), %rdi
callq 0xde1b
xorl %r12d, %r12d
leaq 0x30fe3(%rip), %r13     # 0x354f0
movq (%r12,%r13), %rsi
movq %rbx, %rdi
callq 0x111fe
addq $0x8, %r12
cmpq $0x38, %r12
jne 0x450d
cmpl $0x0, (%r15)
jne 0x457f
movq %rbx, %rdi
callq 0x77d0
movq %rsp, %rdi
callq 0xe5e3
addq $0x200, %rsp            # imm = 0x200
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq (%r14), %rdi
movq (%r15), %rdx
leaq 0x205a8(%rip), %rsi     # 0x24aff
movq %rsp, %rcx
xorl %eax, %eax
callq 0x41d0
jmp 0x4539
movq (%r14), %rdi
leaq 0x1fe96(%rip), %rsi     # 0x24403
movq %rsp, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x41d0
jmp 0x44bc
movq (%r14), %rdi
leaq 0x2058c(%rip), %rsi     # 0x24b15
movq %rbx, %rdx
xorl %eax, %eax
callq 0x41d0
jmp 0x4529
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/heap.c
// Function: CreateHeap
Heap *
CreateHeap( uint chunk_size, uint chnk_hunk_ratio )
{	Heap    *heap;
	uint     unit;

	heap = (Heap *) e_malloc(sizeof(Heap));

	unit  = max(chunk_size, MIN_SZE);
	if (unit % ALGN_SZE != 0)
		unit += ALGN_SZE - (unit % ALGN_SZE);
	heap->chnk_sze = unit;

	if (chnk_hunk_ratio)
		heap->ch_ratio = chnk_hunk_ratio; 
	else
		heap->ch_ratio = DEFLT_RATIO;

	heap->num_alloc = 0; 
	heap->num_free  = 0; 
	heap->num_hunks = 0; 

	heap->next_chunk = 0;
	heap->hunk_array_sze = MIN_HUNK_ARRY;
	heap->free_list = (void *) NULL;

	heap->hunks = (void **) e_malloc(MIN_HUNK_ARRY * PNTR_SZE);

	return(heap);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %ebx
movl %edi, %ebp
movl $0x30, %edi
callq 0x6321
movq %rax, %r14
cmpl $0x9, %ebp
movl $0x8, %eax
cmovael %ebp, %eax
addl $0x7, %eax
andl $-0x8, %eax
movl %eax, (%r14)
testl %ebx, %ebx
movl $0x100, %eax            # imm = 0x100
cmovnel %ebx, %eax
movl %eax, 0x4(%r14)
movl $0x0, 0x18(%r14)
movaps 0x1c07e(%rip), %xmm0    # 0x22010
movups %xmm0, 0x8(%r14)
movq $0x0, 0x20(%r14)
movl $0x40, %edi
callq 0x6321
movq %rax, 0x28(%r14)
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/heap.c
// Function: check_chunks
int
check_chunks(void *y)
{	FC *x;

	for (x = free_chunks; x; x = x->fc.nxt)
	{	if (x < (FC *) 1000)
		{	printf("memory corrupted \n");
			abort();
		}
		if (x == y)
		{	printf("double release %p\n", x);
		//	abort();
			return 0;
		}
	}
	return 1;
}

// Assembly:
pushq %rbx
leaq 0x309eb(%rip), %rsi     # 0x369a8
movq (%rsi), %rsi
testq %rsi, %rsi
je 0x5fe5
cmpq $0x3e7, %rsi            # imm = 0x3E7
jbe 0x5fee
cmpq %rdi, %rsi
jne 0x5fbd
leaq 0x1c046(%rip), %rdi     # 0x22020
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x4140
jmp 0x5fea
movl $0x1, %ebx
movl %ebx, %eax
popq %rbx
retq
leaq 0x1c03e(%rip), %rdi     # 0x22033
callq 0x40d0
callq 0x4060
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/heap.c
// Function: rel_chunk
void
rel_chunk(void *x)
{	FC *y;
#if 1
	if (!check_chunks(x)) exit(1);
#endif
	memset(x, 0, MX_NODE_SZE);
	y = (FC *) x;
	y->fc.nxt = free_chunks;
	free_chunks = y;
	gh_sz++;
if (0) printf("++ %p	-- %d\n", x, gh_sz);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq 0x5fb5
testl %eax, %eax
je 0x6040
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%rbx)
movups %xmm0, 0x28(%rbx)
movups %xmm0, 0x18(%rbx)
movups %xmm0, 0x8(%rbx)
movq $0x0, 0x48(%rbx)
movq 0x3097a(%rip), %rax     # 0x369a8
movq %rax, (%rbx)
movq %rbx, 0x30970(%rip)     # 0x369a8
incl 0x30972(%rip)           # 0x369b0
popq %rbx
retq
movl $0x1, %edi
callq 0x42b0
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/heap.c
// Function: DestroyHeap
void
DestroyHeap( Heap *heap )
{	int j, k;
	char *v;

	if (heap)
	{	for (j = 0; j < (int) heap->num_hunks; j++)
		for (k = 0; k < (int) heap->ch_ratio; k++)
		{	v = (char *) heap->hunks[j] + (k * (MX_NODE_SZE));
			rel_chunk((void *) v);
		}
		memset(heap, 0, sizeof(Heap));
	}
}

// Assembly:
testq %rdi, %rdi
je 0x60b8
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x10(%rdi), %ecx
testl %ecx, %ecx
jle 0x609f
movl 0x4(%rbx), %eax
xorl %r14d, %r14d
testl %eax, %eax
jle 0x6094
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x28(%rbx), %rax
movq (%rax,%r14,8), %rdi
addq %r15, %rdi
callq 0x5fff
incq %r12
movslq 0x4(%rbx), %rax
addq $0x50, %r15
cmpq %rax, %r12
jl 0x6071
movl 0x10(%rbx), %ecx
incq %r14
movslq %ecx, %rdx
cmpq %rdx, %r14
jl 0x6067
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rbx)
movups %xmm0, 0x10(%rbx)
movups %xmm0, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/heap.c
// Function: HeapAlloc_Gen
void *
HeapAlloc_Gen(Heap *heap)
{	int     asze, chnk;
	void   *avail, *pnt;

	if (!heap)
		return ((void *) NULL);

	if (free_chunks)
	{	if (0) printf("-- %p	%d\n", free_chunks, --gh_sz);
		avail = (void *) free_chunks;
		free_chunks = free_chunks->fc.nxt;
		memset(avail, 0, sizeof(void *));
		return avail;
	}

	if (heap->num_hunks)
	{	chnk = (heap->next_chunk)++;

		if (chnk == (int) heap->ch_ratio)
		{
			if (heap->num_hunks == heap->hunk_array_sze)
			{	asze = heap->hunk_array_sze * 2;	/* double array size */
				pnt = (void *) e_malloc(asze * PNTR_SZE);
	
				memcpy(pnt, (void *) heap->hunks, (heap->hunk_array_sze * PNTR_SZE));
	
				e_free(heap->hunks);
				heap->hunks = pnt;
				heap->hunk_array_sze = asze;
			}
	
			heap->hunks[heap->num_hunks] =
				(void *) e_malloc(heap->chnk_sze * heap->ch_ratio);
	
			if (0) printf("2 chunk allocate at %p -- %d * %d bytes\n",
				heap->hunks[heap->num_hunks],
				heap->chnk_sze, heap->ch_ratio);

			(heap->num_hunks)++;
			heap->next_chunk = 1;
			(heap->num_alloc)++;
			return (heap->hunks[(heap->num_hunks)-1]);
		} else
		{	(heap->num_alloc)++;
			return((void *) ((char*) (heap->hunks[(heap->num_hunks)-1])
				+ (heap->chnk_sze * chnk))); 
		}
	} else
	{	heap->hunks[0] = (void *) e_malloc(heap->chnk_sze * heap->ch_ratio);
		if (0) printf("1 chunk allocate at %p -- %d * %d bytes\n",
			heap->hunks[0], heap->chnk_sze, heap->ch_ratio);
		heap->num_hunks = 1;
		heap->next_chunk = 1;
		(heap->num_alloc)++;
		return (heap->hunks[0]);
	}
}

// Assembly:
testq %rdi, %rdi
je 0x60e4
pushq %rbp
pushq %r14
pushq %rbx
movq 0x308df(%rip), %rax     # 0x369a8
testq %rax, %rax
je 0x60e7
movq (%rax), %rcx
movq %rcx, 0x308d0(%rip)     # 0x369a8
movq $0x0, (%rax)
popq %rbx
popq %r14
popq %rbp
retq
xorl %eax, %eax
retq
movq %rdi, %rbx
movl 0x10(%rdi), %edi
testl %edi, %edi
je 0x616e
movl 0x18(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x18(%rbx)
cmpl 0x4(%rbx), %eax
jne 0x619a
cmpl 0x14(%rbx), %edi
jne 0x613c
leal (%rdi,%rdi), %ebp
shll $0x4, %edi
callq 0x6321
movq %rax, %r14
movq 0x28(%rbx), %rsi
movl 0x14(%rbx), %edx
shlq $0x3, %rdx
movq %rax, %rdi
callq 0x4200
movq 0x28(%rbx), %rdi
callq 0x6320
movq %r14, 0x28(%rbx)
movl %ebp, 0x14(%rbx)
movl 0x4(%rbx), %eax
imull (%rbx), %eax
movl %eax, %edi
callq 0x6321
movq 0x28(%rbx), %rcx
movl 0x10(%rbx), %edx
movq %rax, (%rcx,%rdx,8)
leal 0x1(%rdx), %eax
movl %eax, 0x10(%rbx)
movl $0x1, 0x18(%rbx)
incl 0x8(%rbx)
movq 0x28(%rbx), %rax
movq (%rax,%rdx,8), %rax
jmp 0x60df
movl 0x4(%rbx), %edi
imull (%rbx), %edi
callq 0x6321
movq 0x28(%rbx), %rcx
movq %rax, (%rcx)
movl $0x1, %eax
movl %eax, 0x10(%rbx)
movl %eax, 0x18(%rbx)
incl 0x8(%rbx)
movq 0x28(%rbx), %rax
movq (%rax), %rax
jmp 0x60df
incl 0x8(%rbx)
movq 0x28(%rbx), %rcx
decl %edi
imull (%rbx), %eax
addq (%rcx,%rdi,8), %rax
jmp 0x60df
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/nmetab.c
// Function: calc_hash
unsigned int
calc_hash(char *str)	/* pjw's hash */
{	unsigned int hsh = 0, i;

	while (*str)
	{	hsh = (hsh << ONE_EIGHTH) + *str++;
		if ((i = hsh & HIGH_BITS) != 0)
			hsh = (hsh ^ ( i >> THREE_QUARTERS)) & ~HIGH_BITS;
	}
	return hsh;
}

// Assembly:
movb (%rdi), %cl
testb %cl, %cl
je 0x6209
incq %rdi
xorl %eax, %eax
shll $0x4, %eax
movsbl %cl, %ecx
addl %eax, %ecx
movl %ecx, %edx
andl $0xf0000000, %edx       # imm = 0xF0000000
movl %edx, %esi
shrl $0x18, %esi
movl %ecx, %eax
andl $0xfffffff, %eax        # imm = 0xFFFFFFF
xorl %esi, %eax
testl %edx, %edx
cmovel %ecx, %eax
movb (%rdi), %cl
incq %rdi
testb %cl, %cl
jne 0x61dc
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/nmetab.c
// Function: nmelook
str_t *
nmelook(char *sym, int len)
{	HashItem *hptr;
	unsigned int hsh;
	int bckt;

	hsh  = calc_hash(sym);
	bckt = hsh % MAX_HASH_BCKTS;

	for (hptr=NmeTab[bckt]; hptr; hptr=hptr->next)
	{	if ((hptr->sym.hash == hsh)
		&&  (strcmp(sym, hptr->sym.str) == 0))
			return(&(hptr->sym));
	} 

	hptr = (HashItem *) e_malloc(HASH_ITEM_SZE);

	if (!len) len = strlen(sym);

	hptr->sym.str = e_malloc(len+1);
	hptr->sym.hash = hsh;
	strncpy(hptr->sym.str, sym, len);

	hptr->next = NmeTab[bckt];
	NmeTab[bckt] = hptr;

	return(&(hptr->sym));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %r14d
movq %rdi, %rbx
movb (%rdi), %cl
testb %cl, %cl
je 0x626b
leaq 0x1(%rbx), %rax
xorl %ebp, %ebp
shll $0x4, %ebp
movsbl %cl, %ecx
addl %ebp, %ecx
movl %ecx, %edx
andl $0xf0000000, %edx       # imm = 0xF0000000
movl %edx, %esi
shrl $0x18, %esi
movl %ecx, %ebp
andl $0xfffffff, %ebp        # imm = 0xFFFFFFF
xorl %esi, %ebp
testl %edx, %edx
cmovel %ecx, %ebp
movb (%rax), %cl
incq %rax
testb %cl, %cl
jne 0x623c
jmp 0x626d
xorl %ebp, %ebp
movl %ebp, %eax
imulq $0x401005, %rax, %rax   # imm = 0x401005
shrq $0x20, %rax
movl %ebp, %r12d
subl %eax, %r12d
shrl %r12d
addl %eax, %r12d
shrl $0x9, %r12d
movl %r12d, %eax
shll $0xa, %eax
subl %eax, %r12d
addl %ebp, %r12d
leaq 0x30723(%rip), %r13     # 0x369c0
movq (%r13,%r12,8), %r15
testq %r15, %r15
je 0x62c2
cmpl %ebp, (%r15)
jne 0x62bc
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq 0x41c0
testl %eax, %eax
je 0x630b
movq 0x10(%r15), %r15
jmp 0x62a2
movl $0x18, %edi
callq 0x6321
movq %rax, %r15
testl %r14d, %r14d
jne 0x62df
movq %rbx, %rdi
callq 0x4110
movq %rax, %r14
leal 0x1(%r14), %edi
callq 0x6321
movq %rax, 0x8(%r15)
movl %ebp, (%r15)
movslq %r14d, %rdx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4090
movq (%r13,%r12,8), %rax
movq %rax, 0x10(%r15)
movq %r15, (%r13,%r12,8)
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/symtab.c
// Function: e_malloc
void *
e_malloc(uint m)
{	char *tmp;
	long n = m + ALGN;	/* for possible alignment */

	assert(m != 0);

	tmp = not_malloc(n);

	if (((ulong) tmp)&(ALGN-1))
	{	tmp += (long) (ALGN  - (((ulong) tmp)&(ALGN-1)));
		memwaste += ALGN;
	} else
	{	left += ALGN;	/* return the extra bytes */
		have -= ALGN;
	}

	memcnt += m;

	return (void *) tmp;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testl %edi, %edi
je 0x63cc
movl %edi, %ebx
leal 0x8(%rbx), %r15d
movq 0x32685(%rip), %r14     # 0x389c0
cmpq %r15, %r14
jge 0x6371
cmpl $0x100001, %r15d        # imm = 0x100001
movl $0x100000, %eax         # imm = 0x100000
cmovael %r15d, %eax
movslq %eax, %r14
movl $0x1, %edi
movq %r14, %rsi
callq 0x41b0
movq %rax, 0x32661(%rip)     # 0x389c8
testq %rax, %rax
jne 0x6378
callq 0x4300
movq 0x32650(%rip), %rax     # 0x389c8
leaq (%rax,%r15), %rcx
movq %rcx, 0x32645(%rip)     # 0x389c8
subq %r15, %r14
movq %r14, 0x32633(%rip)     # 0x389c0
movq %rax, %rdx
andq $0x7, %rdx
je 0x63a7
subq %rdx, %rax
addq $0x8, %rax
addq $0x8, 0x32613(%rip)     # 0x389b8
jmp 0x63bd
addq $0x8, %r14
movq %r14, 0x3260e(%rip)     # 0x389c0
addq $-0x8, %rcx
movq %rcx, 0x3260b(%rip)     # 0x389c8
movl %ebx, %ecx
addq %rcx, 0x3260a(%rip)     # 0x389d0
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1bc85(%rip), %rdi     # 0x22058
leaq 0x1bc85(%rip), %rsi     # 0x2205f
leaq 0x1bc87(%rip), %rcx     # 0x22068
movl $0x54, %edx
callq 0x4160
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/symtab.c
// Function: hashtab_lookup
symentry_t *
hashtab_lookup(hashtab_t *that, str_t *nme)
{	symentry_t *curr;
	int j;
  
	if (!nme || !that) return NULL;

	j = nme->hash % that->tsize;
	for (curr = that->tab[j]; curr; curr = curr->next)
		if (curr->nme
		&&  strcmp(curr->nme->str, nme->str) == 0) 
			return curr;

	return NULL;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rsi, %rsi
sete %al
testq %rdi, %rdi
sete %cl
orb %al, %cl
jne 0x660f
movq %rsi, %rbx
movl (%rsi), %eax
xorl %edx, %edx
divl (%rdi)
movq 0x8(%rdi), %rax
movslq %edx, %rcx
movq (%rax,%rcx,8), %r14
testq %r14, %r14
je 0x660f
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x6609
movq 0x8(%rax), %rdi
movq 0x8(%rbx), %rsi
callq 0x41c0
testl %eax, %eax
je 0x6612
movq 0x38(%r14), %r14
jmp 0x65ea
xorl %r14d, %r14d
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/nimble-code[P]Modex/Src/symtab.c
// Function: show_hashtab
void
show_hashtab(hashtab_t *that, int tabs, FILE *fp)
{	symentry_t *t;
	int j;

	for (j = 0; j < that->tsize; j++)
	for (t = that->tab[j]; t; t = t->next)
		show_symentry(t, tabs, fp);
}

// Assembly:
movl (%rdi), %eax
testl %eax, %eax
jle 0x67aa
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %rbx
movl %esi, %r14d
leal 0x1(%r14), %ebp
xorl %edx, %edx
leaq 0x1bb31(%rip), %r12     # 0x221b9
movq %rdi, 0x8(%rsp)
movq 0x8(%rdi), %rcx
movq (%rcx,%rdx,8), %r13
testq %r13, %r13
je 0x678d
movq %rdx, 0x10(%rsp)
testl %r14d, %r14d
js 0x66c5
movl %ebp, %r15d
movl $0x2, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %rbx, %rcx
callq 0x42c0
decl %r15d
jne 0x66ab
movq 0x8(%r13), %rax
movq 0x8(%rax), %rdi
movq %rbx, %rsi
callq 0x4170
movq 0x10(%r13), %r15
movl $0x2, %esi
movl $0x1, %edx
leaq 0x1bad2(%rip), %rdi     # 0x221bc
movq %rbx, %rcx
callq 0x42c0
testq %r15, %r15
je 0x66fd
cmpl $0x3, (%r15)
jne 0x6718
movl $0x3, %esi
movl $0x1, %edx
leaq 0x1bab1(%rip), %rdi     # 0x221bf
movq %rbx, %rcx
callq 0x42c0
jmp 0x672b
movq %r15, %rdi
callq 0xac1c
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4170
movl $0x5d, %edi
movq %rbx, %rsi
callq 0x4190
movq 0x10(%r13), %rax
testq %rax, %rax
je 0x6767
cmpl $0x1, 0x1c(%rax)
je 0x6767
cmpb $0x0, 0x22(%r13)
jne 0x6767
movl $0x7, %esi
movl $0x1, %edx
leaq 0x1ba52(%rip), %rdi     # 0x221b1
movq %rbx, %rcx
callq 0x42c0
movl $0xa, %edi
movq %rbx, %rsi
callq 0x4190
movq 0x38(%r13), %r13
testq %r13, %r13
jne 0x66a3
movq 0x8(%rsp), %rdi
movl (%rdi), %eax
movq 0x10(%rsp), %rdx
incq %rdx
movslq %eax, %rcx
cmpq %rcx, %rdx
jl 0x668d
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq