LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/include/jemalloc/internal/rtree.h
// Function: huge_node_get
JEMALLOC_INLINE unsigned
rtree_start_level(rtree_t *rtree, uintptr_t key)
{
	unsigned start_level;

	if (unlikely(key == 0))
		return (rtree->height - 1);

	start_level = rtree->start_level[lg_floor(key) >>
	    LG_RTREE_BITS_PER_LEVEL];
	assert(start_level < rtree->height);
	return (start_level);
}

// Assembly:
testq %rdi, %rdi
je 0x36d2a
bsrq %rdi, %rax
shrq $0x4, %rax
leaq 0x249c2(%rip), %rcx     # 0x5b640
movl 0x14(%rcx,%rax,4), %eax
movl %eax, %ecx
shlq $0x4, %rcx
leaq 0x249b1(%rip), %rdx     # 0x5b640
leaq (%rdx,%rcx), %r8
addq $0x28, %r8
movq (%r8), %rsi
cmpq $0x1, %rsi
ja 0x36ca7
xorl %esi, %esi
lock
xaddq %rsi, (%r8)
xorl %ecx, %ecx
subb 0xc(%r8), %cl
movq %rdi, %r10
shrq %cl, %r10
movb 0x8(%r8), %cl
movq $-0x1, %r9
shlq %cl, %r9
notq %r9
andq %r10, %r9
movl 0x10(%rdx), %r8d
leal -0x1(%r8), %ecx
cmpl %ecx, %eax
jne 0x36cd8
movq %rsi, %r10
jmp 0x36d25
decl %eax
movq (%rsi,%r9,8), %r10
cmpq $0x1, %r10
ja 0x36cf1
xorl %r10d, %r10d
lock
xaddq %r10, (%rsi,%r9,8)
movl 0x10(%rdx), %r8d
leal 0x2(%rax), %esi
shlq $0x4, %rsi
xorl %ecx, %ecx
subb 0x34(%rdx,%rsi), %cl
movq %rdi, %r11
shrq %cl, %r11
movb 0x30(%rdx,%rsi), %cl
movq $-0x1, %r9
shlq %cl, %r9
notq %r9
andq %r11, %r9
leal -0x2(%r8), %ecx
incl %eax
movq %r10, %rsi
cmpl %ecx, %eax
jne 0x36cda
movq (%r10,%r9,8), %rax
retq
leaq 0x2490f(%rip), %rax     # 0x5b640
movl 0x10(%rax), %eax
decl %eax
jmp 0x36c82
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/huge.c
// Function: je_huge_salloc
size_t
huge_salloc(const void *ptr)
{
	size_t size;
	extent_node_t *node;
	arena_t *arena;

	node = huge_node_get(ptr);
	arena = extent_node_arena_get(node);
	malloc_mutex_lock(&arena->huge_mtx);
	size = extent_node_size_get(node);
	malloc_mutex_unlock(&arena->huge_mtx);

	return (size);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x36c66
movq %rax, %rbx
movl $0x1d8, %r14d           # imm = 0x1D8
addq (%rax), %r14
movq %r14, %rdi
callq 0x106d0
movq 0x10(%rbx), %rbx
movq %r14, %rdi
callq 0x10440
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/huge.c
// Function: je_huge_prof_tctx_get
prof_tctx_t *
huge_prof_tctx_get(const void *ptr)
{
	prof_tctx_t *tctx;
	extent_node_t *node;
	arena_t *arena;

	node = huge_node_get(ptr);
	arena = extent_node_arena_get(node);
	malloc_mutex_lock(&arena->huge_mtx);
	tctx = extent_node_prof_tctx_get(node);
	malloc_mutex_unlock(&arena->huge_mtx);

	return (tctx);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x36c66
movq %rax, %rbx
movl $0x1d8, %r14d           # imm = 0x1D8
addq (%rax), %r14
movq %r14, %rdi
callq 0x106d0
movq 0x20(%rbx), %rbx
movq %r14, %rdi
callq 0x10440
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/huge.c
// Function: je_huge_prof_tctx_set
void
huge_prof_tctx_set(const void *ptr, prof_tctx_t *tctx)
{
	extent_node_t *node;
	arena_t *arena;

	node = huge_node_get(ptr);
	arena = extent_node_arena_get(node);
	malloc_mutex_lock(&arena->huge_mtx);
	extent_node_prof_tctx_set(node, tctx);
	malloc_mutex_unlock(&arena->huge_mtx);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
callq 0x36c66
movq %rax, %r14
movl $0x1d8, %r15d           # imm = 0x1D8
addq (%rax), %r15
movq %r15, %rdi
callq 0x106d0
movq %rbx, 0x20(%r14)
movq %r15, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x10440
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/pages.c
// Function: je_pages_trim
void *
pages_trim(void *addr, size_t alloc_size, size_t leadsize, size_t size)
{
	void *ret = (void *)((uintptr_t)addr + leadsize);

	assert(alloc_size >= leadsize + size);
#ifdef _WIN32
	{
		void *new_addr;

		pages_unmap(addr, alloc_size);
		new_addr = pages_map(ret, size);
		if (new_addr == ret)
			return (ret);
		if (new_addr)
			pages_unmap(new_addr, size);
		return (NULL);
	}
#else
	{
		size_t trailsize = alloc_size - leadsize - size;

		if (leadsize != 0)
			pages_unmap(addr, leadsize);
		if (trailsize != 0)
			pages_unmap((void *)((uintptr_t)ret + size), trailsize);
		return (ret);
	}
#endif
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
leaq (%rcx,%rdx), %r13
testq %rdx, %rdx
je 0x36f9f
movq %rbx, %rdi
movq %r12, %rsi
callq 0x36f28
addq %r12, %rbx
cmpq %r13, %r15
je 0x36fb8
subq %r13, %r15
addq %rbx, %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x36f28
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_thread_active_init_get
bool
prof_thread_active_init_get(void)
{
	bool active_init;

	malloc_mutex_lock(&prof_thread_active_init_mtx);
	active_init = prof_thread_active_init;
	malloc_mutex_unlock(&prof_thread_active_init_mtx);
	return (active_init);
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
leaq 0x24463(%rip), %rbx     # 0x5bce8
movq %rbx, %rdi
callq 0x106d0
movb 0x2447c(%rip), %bpl     # 0x5bd10
movq %rbx, %rdi
callq 0x10440
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_reset
void
prof_reset(tsd_t *tsd, size_t lg_sample)
{
	prof_tdata_t *next;

	assert(lg_sample < (sizeof(uint64_t) << 3));

	malloc_mutex_lock(&prof_dump_mtx);
	malloc_mutex_lock(&tdatas_mtx);

	lg_prof_sample = lg_sample;

	next = NULL;
	do {
		prof_tdata_t *to_destroy = tdata_tree_iter(&tdatas, next,
		    prof_tdata_reset_iter, NULL);
		if (to_destroy != NULL) {
			next = tdata_tree_next(&tdatas, to_destroy);
			prof_tdata_destroy_locked(tsd, to_destroy, false);
		} else
			next = NULL;
	} while (next != NULL);

	malloc_mutex_unlock(&tdatas_mtx);
	malloc_mutex_unlock(&prof_dump_mtx);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x23b61(%rip), %rdi     # 0x5b7b0
callq 0x106d0
leaq 0x23b7d(%rip), %rdi     # 0x5b7d8
callq 0x106d0
movq %r14, 0x23b99(%rip)     # 0x5b800
xorl %r14d, %r14d
leaq 0x23b9f(%rip), %r15     # 0x5b810
leaq 0x23b90(%rip), %r12     # 0x5b808
movq 0x23b89(%rip), %rsi     # 0x5b808
testq %r14, %r14
je 0x37c8e
movq %r14, %rdi
callq 0x38ae7
jmp 0x37c96
movq %rsi, %rdi
callq 0x38b4c
cmpq %r15, %rax
je 0x37d18
testq %rax, %rax
je 0x37d18
movq 0x30(%rax), %rcx
andq $-0x2, %rcx
cmpq %r15, %rcx
jne 0x37cf3
movq 0x8(%rax), %rcx
movq %r12, %rsi
movq %r15, %r14
movq (%rsi), %rdx
xorl %esi, %esi
cmpq 0x8(%rdx), %rcx
seta %sil
sbbl $0x0, %esi
jne 0x37cda
movq 0x10(%rax), %rdi
xorl %esi, %esi
cmpq 0x10(%rdx), %rdi
seta %sil
sbbl $0x0, %esi
testl %esi, %esi
js 0x37cea
je 0x37cff
movq 0x30(%rdx), %rdx
andq $-0x2, %rdx
jmp 0x37cba
leaq 0x28(%rdx), %rsi
movq %rdx, %r14
jmp 0x37cb7
movq %rcx, %r14
movq 0x28(%rcx), %rcx
cmpq %r15, %rcx
jne 0x37cf3
movq %rbx, %rdi
movq %rax, %rsi
callq 0x37d8b
cmpq %r15, %r14
je 0x37d18
testq %r14, %r14
jne 0x37c78
leaq 0x23ab9(%rip), %rdi     # 0x5b7d8
callq 0x10440
leaq 0x23a85(%rip), %rdi     # 0x5b7b0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x10440
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_active_get
bool
prof_active_get(void)
{
	bool prof_active_current;

	malloc_mutex_lock(&prof_active_mtx);
	prof_active_current = prof_active;
	malloc_mutex_unlock(&prof_active_mtx);
	return (prof_active_current);
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
leaq 0x23521(%rip), %rbx     # 0x5bcb8
movq %rbx, %rdi
callq 0x106d0
movb 0x2353a(%rip), %bpl     # 0x5bce0
movq %rbx, %rdi
callq 0x10440
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_active_set
bool
prof_active_set(bool active)
{
	bool prof_active_old;

	malloc_mutex_lock(&prof_active_mtx);
	prof_active_old = prof_active;
	prof_active = active;
	malloc_mutex_unlock(&prof_active_mtx);
	return (prof_active_old);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebx
leaq 0x234f4(%rip), %r14     # 0x5bcb8
movq %r14, %rdi
callq 0x106d0
movb 0x2350d(%rip), %bpl     # 0x5bce0
movb %bl, 0x23507(%rip)      # 0x5bce0
movq %r14, %rdi
callq 0x10440
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_thread_name_get
const char *
prof_thread_name_get(void)
{
	tsd_t *tsd;
	prof_tdata_t *tdata;

	tsd = tsd_fetch();
	tdata = prof_tdata_get(tsd, true);
	if (tdata == NULL)
		return ("");
	return (tdata->thread_name != NULL ? tdata->thread_name : "");
}

// Assembly:
pushq %rax
movq 0x1f800(%rip), %rax     # 0x57ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
cmpl $0x2, %fs:(%rax)
je 0x38828
movl $0x1, %fs:(%rax)
leaq 0x23604(%rip), %rax     # 0x5be14
movl (%rax), %edi
callq 0x106f0
leaq 0xfb5b(%rip), %rdi      # 0x48379
callq 0x3d37c
callq 0x10090
movl $0x3, %fs:(%rax)
jmp 0x38809
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_thread_active_set
bool
prof_thread_active_set(bool active)
{
	tsd_t *tsd;
	prof_tdata_t *tdata;

	tsd = tsd_fetch();
	tdata = prof_tdata_get(tsd, true);
	if (tdata == NULL)
		return (true);
	tdata->active = active;
	return (false);
}

// Assembly:
pushq %rax
movq 0x1f76e(%rip), %rax     # 0x57ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
cmpl $0x2, %fs:(%rax)
je 0x388ba
movl $0x1, %fs:(%rax)
leaq 0x23572(%rip), %rax     # 0x5be14
movl (%rax), %edi
callq 0x106f0
leaq 0xfac9(%rip), %rdi      # 0x48379
callq 0x3d37c
callq 0x10090
movl $0x3, %fs:(%rax)
jmp 0x3889b
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_thread_active_init_set
bool
prof_thread_active_init_set(bool active_init)
{
	bool active_init_old;

	malloc_mutex_lock(&prof_thread_active_init_mtx);
	active_init_old = prof_thread_active_init;
	prof_thread_active_init = active_init;
	malloc_mutex_unlock(&prof_thread_active_init_mtx);
	return (active_init_old);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebx
leaq 0x23418(%rip), %r14     # 0x5bce8
movq %r14, %rdi
callq 0x106d0
movb 0x23431(%rip), %bpl     # 0x5bd10
movb %bl, 0x2342b(%rip)      # 0x5bd10
movq %r14, %rdi
callq 0x10440
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_gdump_get
bool
prof_gdump_get(void)
{
	bool prof_gdump_current;

	malloc_mutex_lock(&prof_gdump_mtx);
	prof_gdump_current = prof_gdump_val;
	malloc_mutex_unlock(&prof_gdump_mtx);
	return (prof_gdump_current);
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
leaq 0x2341a(%rip), %rbx     # 0x5bd18
movq %rbx, %rdi
callq 0x106d0
movb 0x23433(%rip), %bpl     # 0x5bd40
movq %rbx, %rdi
callq 0x10440
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_gdump_set
bool
prof_gdump_set(bool gdump)
{
	bool prof_gdump_old;

	malloc_mutex_lock(&prof_gdump_mtx);
	prof_gdump_old = prof_gdump_val;
	prof_gdump_val = gdump;
	malloc_mutex_unlock(&prof_gdump_mtx);
	return (prof_gdump_old);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebx
leaq 0x233ed(%rip), %r14     # 0x5bd18
movq %r14, %rdi
callq 0x106d0
movb 0x23406(%rip), %bpl     # 0x5bd40
movb %bl, 0x23400(%rip)      # 0x5bd40
movq %r14, %rdi
callq 0x10440
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_prefork
void
prof_prefork(void)
{

	if (opt_prof) {
		unsigned i;

		malloc_mutex_prefork(&tdatas_mtx);
		malloc_mutex_prefork(&bt2gctx_mtx);
		malloc_mutex_prefork(&next_thr_uid_mtx);
		malloc_mutex_prefork(&prof_dump_seq_mtx);
		for (i = 0; i < PROF_NCTX_LOCKS; i++)
			malloc_mutex_prefork(&gctx_locks[i]);
		for (i = 0; i < PROF_NTDATA_LOCKS; i++)
			malloc_mutex_prefork(&tdata_locks[i]);
	}
}

// Assembly:
cmpb $0x1, 0x22e1a(%rip)     # 0x5b770
jne 0x389b8
pushq %rbx
leaq 0x22e78(%rip), %rdi     # 0x5b7d8
callq 0x36e96
leaq 0x233dc(%rip), %rdi     # 0x5bd48
callq 0x36e96
leaq 0x23400(%rip), %rdi     # 0x5bd78
callq 0x36e96
leaq 0x22e04(%rip), %rdi     # 0x5b788
callq 0x36e96
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36e96
addq $0x28, %rbx
cmpq $0xa000, %rbx           # imm = 0xA000
jne 0x3898b
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36e96
addq $0x28, %rbx
cmpq $0x2800, %rbx           # imm = 0x2800
jne 0x389a2
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_postfork_parent
void
prof_postfork_parent(void)
{

	if (opt_prof) {
		unsigned i;

		for (i = 0; i < PROF_NTDATA_LOCKS; i++)
			malloc_mutex_postfork_parent(&tdata_locks[i]);
		for (i = 0; i < PROF_NCTX_LOCKS; i++)
			malloc_mutex_postfork_parent(&gctx_locks[i]);
		malloc_mutex_postfork_parent(&prof_dump_seq_mtx);
		malloc_mutex_postfork_parent(&next_thr_uid_mtx);
		malloc_mutex_postfork_parent(&bt2gctx_mtx);
		malloc_mutex_postfork_parent(&tdatas_mtx);
	}
}

// Assembly:
cmpb $0x1, 0x22db0(%rip)     # 0x5b770
jne 0x38a22
pushq %rbx
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36e9b
addq $0x28, %rbx
cmpq $0x2800, %rbx           # imm = 0x2800
jne 0x389c5
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36e9b
addq $0x28, %rbx
cmpq $0xa000, %rbx           # imm = 0xA000
jne 0x389dc
leaq 0x22d90(%rip), %rdi     # 0x5b788
callq 0x36e9b
leaq 0x23374(%rip), %rdi     # 0x5bd78
callq 0x36e9b
leaq 0x23338(%rip), %rdi     # 0x5bd48
callq 0x36e9b
leaq 0x22dbc(%rip), %rdi     # 0x5b7d8
popq %rbx
jmp 0x36e9b
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/prof.c
// Function: je_prof_postfork_child
void
prof_postfork_child(void)
{

	if (opt_prof) {
		unsigned i;

		for (i = 0; i < PROF_NTDATA_LOCKS; i++)
			malloc_mutex_postfork_child(&tdata_locks[i]);
		for (i = 0; i < PROF_NCTX_LOCKS; i++)
			malloc_mutex_postfork_child(&gctx_locks[i]);
		malloc_mutex_postfork_child(&prof_dump_seq_mtx);
		malloc_mutex_postfork_child(&next_thr_uid_mtx);
		malloc_mutex_postfork_child(&bt2gctx_mtx);
		malloc_mutex_postfork_child(&tdatas_mtx);
	}
}

// Assembly:
cmpb $0x1, 0x22d46(%rip)     # 0x5b770
jne 0x38a8c
pushq %rbx
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36ea0
addq $0x28, %rbx
cmpq $0x2800, %rbx           # imm = 0x2800
jne 0x38a2f
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x36ea0
addq $0x28, %rbx
cmpq $0xa000, %rbx           # imm = 0xA000
jne 0x38a46
leaq 0x22d26(%rip), %rdi     # 0x5b788
callq 0x36ea0
leaq 0x2330a(%rip), %rdi     # 0x5bd78
callq 0x36ea0
leaq 0x232ce(%rip), %rdi     # 0x5bd48
callq 0x36ea0
leaq 0x22d52(%rip), %rdi     # 0x5b7d8
popq %rbx
jmp 0x36ea0
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/quarantine.c
// Function: quarantine_drain_one
static void
quarantine_drain_one(tsd_t *tsd, quarantine_t *quarantine)
{
	quarantine_obj_t *obj = &quarantine->objs[quarantine->first];
	assert(obj->usize == isalloc(obj->ptr, config_prof));
	idalloctm(tsd, obj->ptr, NULL, false);
	quarantine->curbytes -= obj->usize;
	quarantine->curobjs--;
	quarantine->first = (quarantine->first + 1) & ((ZU(1) <<
	    quarantine->lg_maxobjs) - 1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq 0x10(%rsi), %rax
shlq $0x4, %rax
leaq (%rsi,%rax), %r14
addq $0x20, %r14
movq (%r14), %rdx
leaq 0x21f66(%rip), %rax     # 0x5b6b0
movq (%rax), %rsi
notq %rsi
andq %rdx, %rsi
movq %rdx, %rcx
subq %rsi, %rcx
je 0x397ac
shrq $0xc, %rcx
leaq 0x21df2(%rip), %rax     # 0x5b558
movq %rcx, %rdi
subq (%rax), %rdi
testb $0x2, 0x68(%rsi,%rdi,8)
movq (%rsi), %rdi
jne 0x397b8
callq 0x298af
movq 0x8(%r14), %rax
subq %rax, (%rbx)
decq 0x8(%rbx)
movq 0x10(%rbx), %rax
movb 0x18(%rbx), %cl
movq $-0x1, %rdx
shlq %cl, %rdx
incq %rax
notq %rdx
andq %rax, %rdx
movq %rdx, 0x10(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rdx, %rsi
xorl %edx, %edx
callq 0x36925
jmp 0x3977b
callq 0x299db
jmp 0x3977b
nop
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/rtree.c
// Function: je_rtree_new
bool
rtree_new(rtree_t *rtree, unsigned bits, rtree_node_alloc_t *alloc,
    rtree_node_dalloc_t *dalloc)
{
	unsigned bits_in_leaf, height, i;

	assert(bits > 0 && bits <= (sizeof(uintptr_t) << 3));

	bits_in_leaf = (bits % RTREE_BITS_PER_LEVEL) == 0 ? RTREE_BITS_PER_LEVEL
	    : (bits % RTREE_BITS_PER_LEVEL);
	if (bits > bits_in_leaf) {
		height = 1 + (bits - bits_in_leaf) / RTREE_BITS_PER_LEVEL;
		if ((height-1) * RTREE_BITS_PER_LEVEL + bits_in_leaf != bits)
			height++;
	} else
		height = 1;
	assert((height-1) * RTREE_BITS_PER_LEVEL + bits_in_leaf == bits);

	rtree->alloc = alloc;
	rtree->dalloc = dalloc;
	rtree->height = height;

	/* Root level. */
	rtree->levels[0].subtree = NULL;
	rtree->levels[0].bits = (height > 1) ? RTREE_BITS_PER_LEVEL :
	    bits_in_leaf;
	rtree->levels[0].cumbits = rtree->levels[0].bits;
	/* Interior levels. */
	for (i = 1; i < height-1; i++) {
		rtree->levels[i].subtree = NULL;
		rtree->levels[i].bits = RTREE_BITS_PER_LEVEL;
		rtree->levels[i].cumbits = rtree->levels[i-1].cumbits +
		    RTREE_BITS_PER_LEVEL;
	}
	/* Leaf level. */
	if (height > 1) {
		rtree->levels[height-1].subtree = NULL;
		rtree->levels[height-1].bits = bits_in_leaf;
		rtree->levels[height-1].cumbits = bits;
	}

	/* Compute lookup table to be used by rtree_start_level(). */
	for (i = 0; i < RTREE_HEIGHT_MAX; i++) {
		rtree->start_level[i] = hmin(RTREE_HEIGHT_MAX - 1 - i, height -
		    1);
	}

	return (false);
}

// Assembly:
pushq %rbx
movl %esi, %r10d
movl %r10d, %eax
andl $0xf, %eax
movl $0x10, %r9d
cmovel %r9d, %eax
movl $0x1, %r8d
movl %esi, %r11d
subl %eax, %r11d
jbe 0x39803
movl %r11d, %r8d
shrl $0x4, %r8d
andl $-0x10, %r11d
movl %eax, %ebx
addq %r11, %rbx
xorl %r11d, %r11d
cmpq %r10, %rbx
sete %r11b
subl %r11d, %r8d
addl $0x2, %r8d
movq %rdx, (%rdi)
movq %rcx, 0x8(%rdi)
movl %r8d, 0x10(%rdi)
movq $0x0, 0x28(%rdi)
cmpl $0x2, %r8d
cmovbl %eax, %r9d
movl %r9d, 0x30(%rdi)
movl %r9d, 0x34(%rdi)
leal -0x1(%r8), %ecx
movl %ecx, %edx
cmpl $0x2, %ecx
jb 0x3985d
leaq 0x44(%rdi), %r9
leaq -0x1(%rdx), %r10
movq $0x0, -0xc(%r9)
movl $0x10, -0x4(%r9)
movl -0x10(%r9), %r11d
addl $0x10, %r11d
movl %r11d, (%r9)
addq $0x10, %r9
decq %r10
jne 0x39839
cmpl $0x2, %r8d
jb 0x3987d
leaq 0x28(%rdi), %r8
shlq $0x4, %rdx
movq $0x0, (%r8,%rdx)
movl %eax, 0x8(%r8,%rdx)
movl %esi, 0xc(%r8,%rdx)
movd %ecx, %xmm0
pshufd $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movdqa 0xc792(%rip), %xmm1     # 0x46020
pxor %xmm0, %xmm1
movdqa 0xedb6(%rip), %xmm2     # 0x48650
pcmpgtd %xmm1, %xmm2
pand %xmm2, %xmm0
pandn 0xedb6(%rip), %xmm2     # 0x48660
por %xmm0, %xmm2
movdqu %xmm2, 0x14(%rdi)
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/rtree.c
// Function: je_rtree_delete
void
rtree_delete(rtree_t *rtree)
{
	unsigned i;

	for (i = 0; i < rtree->height; i++) {
		rtree_node_elm_t *subtree = rtree->levels[i].subtree;
		if (subtree != NULL)
			rtree_delete_subtree(rtree, subtree, i);
	}
}

// Assembly:
movl 0x10(%rdi), %eax
testl %eax, %eax
je 0x398f6
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x28(%rdi), %r15
xorl %r14d, %r14d
movq (%r15), %rsi
testq %rsi, %rsi
je 0x398e3
movq %rbx, %rdi
movl %r14d, %edx
callq 0x398f7
movl 0x10(%rbx), %eax
incq %r14
movl %eax, %ecx
addq $0x10, %r15
cmpq %rcx, %r14
jb 0x398cd
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/rtree.c
// Function: rtree_delete_subtree
static void
rtree_delete_subtree(rtree_t *rtree, rtree_node_elm_t *node, unsigned level)
{

	if (level + 1 < rtree->height) {
		size_t nchildren, i;

		nchildren = ZU(1) << rtree->levels[level].bits;
		for (i = 0; i < nchildren; i++) {
			rtree_node_elm_t *child = node[i].child;
			if (child != NULL)
				rtree_delete_subtree(rtree, child, level + 1);
		}
	}
	rtree->dalloc(node);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
leal 0x1(%rdx), %ebp
movq %rdi, %r12
cmpl 0x10(%rdi), %ebp
jae 0x39943
movl %edx, %eax
shlq $0x4, %rax
movl 0x30(%r12,%rax), %r14d
movl $0x1, %r15d
movq -0x8(%rbx,%r15,8), %rsi
testq %rsi, %rsi
je 0x39932
movq %r12, %rdi
movl %ebp, %edx
callq 0x398f7
movq %r15, %rax
movl %r14d, %ecx
shrq %cl, %rax
incq %r15
testq %rax, %rax
je 0x3991e
movq %rbx, %rdi
movq %r12, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *0x8(%rax)
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/rtree.c
// Function: rtree_node_init
static rtree_node_elm_t *
rtree_node_init(rtree_t *rtree, unsigned level, rtree_node_elm_t **elmp)
{
	rtree_node_elm_t *node;

	if (atomic_cas_p((void **)elmp, NULL, RTREE_NODE_INITIALIZING)) {
		/*
		 * Another thread is already in the process of initializing.
		 * Spin-wait until initialization is complete.
		 */
		do {
			CPU_SPINWAIT;
			node = atomic_read_p((void **)elmp);
		} while (node == RTREE_NODE_INITIALIZING);
	} else {
		node = rtree->alloc(ZU(1) << rtree->levels[level].bits);
		if (node == NULL)
			return (NULL);
		atomic_write_p((void **)elmp, node);
	}

	return (node);
}

// Assembly:
pushq %rbx
movq %rdx, %rbx
movq %rdi, %rdx
movl $0x1, %edi
xorl %eax, %eax
lock
cmpxchgq %rdi, (%rbx)
sete %al
testb %al, %al
je 0x3999a
movl %esi, %eax
shlq $0x4, %rax
movb 0x30(%rdx,%rax), %cl
shlq %cl, %rdi
callq *(%rdx)
testq %rax, %rax
je 0x399ab
movq %rax, %rcx
xchgq %rcx, (%rbx)
jmp 0x399ad
pause
xorl %eax, %eax
lock
xaddq %rax, (%rbx)
cmpq $0x1, %rax
je 0x3999a
jmp 0x399ad
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_event_hard
void
tcache_event_hard(tsd_t *tsd, tcache_t *tcache)
{
	szind_t binind = tcache->next_gc_bin;
	tcache_bin_t *tbin = &tcache->tbins[binind];
	tcache_bin_info_t *tbin_info = &tcache_bin_info[binind];

	if (tbin->low_water > 0) {
		/*
		 * Flush (ceiling) 3/4 of the objects below the low water mark.
		 */
		if (binind < NBINS) {
			tcache_bin_flush_small(tsd, tcache, tbin, binind,
			    tbin->ncached - tbin->low_water + (tbin->low_water
			    >> 2));
		} else {
			tcache_bin_flush_large(tsd, tbin, binind, tbin->ncached
			    - tbin->low_water + (tbin->low_water >> 2), tcache);
		}
		/*
		 * Reduce fill count by 2X.  Limit lg_fill_div such that the
		 * fill count is always at least 1.
		 */
		if ((tbin_info->ncached_max >> (tbin->lg_fill_div+1)) >= 1)
			tbin->lg_fill_div++;
	} else if (tbin->low_water < 0) {
		/*
		 * Increase fill count by 2X.  Make sure lg_fill_div stays
		 * greater than 0.
		 */
		if (tbin->lg_fill_div > 1)
			tbin->lg_fill_div--;
	}
	tbin->low_water = tbin->ncached;

	tcache->next_gc_bin++;
	if (tcache->next_gc_bin == nhbins)
		tcache->next_gc_bin = 0;
	tcache->ev_cnt = 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movl 0x1c(%rsi), %r15d
movq %r15, %rax
shlq $0x5, %rax
leaq (%rsi,%rax), %r14
addq $0x20, %r14
movl 0x8(%r14), %eax
testl %eax, %eax
jle 0x3c82f
movq 0x1f5a2(%rip), %r12     # 0x5bdb0
movl %eax, %r8d
shrl $0x2, %r8d
subl %eax, %r8d
addl 0x10(%r14), %r8d
cmpl $0x26, %r15d
ja 0x3c842
movq %r14, %rdx
movl %r15d, %ecx
callq 0x3c88f
jmp 0x3c850
jns 0x3c864
movl 0xc(%r14), %eax
cmpl $0x2, %eax
jb 0x3c864
decl %eax
movl %eax, 0xc(%r14)
jmp 0x3c864
movq %r14, %rsi
movl %r15d, %edx
movl %r8d, %ecx
callq 0x3ca47
movl (%r12,%r15,4), %eax
movl 0xc(%r14), %ecx
incl %ecx
shrl %cl, %eax
testl %eax, %eax
je 0x3c864
movl %ecx, 0xc(%r14)
movl 0x10(%r14), %eax
movl %eax, 0x8(%r14)
movl 0x1c(%rbx), %eax
incl %eax
xorl %ecx, %ecx
cmpq %rax, 0x1f53e(%rip)     # 0x5bdb8
cmovel %ecx, %eax
movl %eax, 0x1c(%rbx)
movl %ecx, 0x18(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_alloc_small_hard
void *
tcache_alloc_small_hard(tsd_t *tsd, arena_t *arena, tcache_t *tcache,
    tcache_bin_t *tbin, szind_t binind)
{
	void *ret;

	arena_tcache_fill_small(arena, tbin, binind, config_prof ?
	    tcache->prof_accumbytes : 0);
	if (config_prof)
		tcache->prof_accumbytes = 0;
	ret = tcache_alloc_easy(tbin);

	return (ret);
}

// Assembly:
pushq %rbx
movl %r8d, %edx
movq %rcx, %rbx
movq %rsi, %rdi
movq %rcx, %rsi
xorl %ecx, %ecx
callq 0x27e92
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x3cc02
decl %eax
movl %eax, 0x10(%rbx)
cmpl 0x8(%rbx), %eax
jl 0x3cc0d
movq 0x18(%rbx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %rax
popq %rbx
retq
movl $0xffffffff, 0x8(%rbx)  # imm = 0xFFFFFFFF
xorl %eax, %eax
jmp 0x3cc00
movl %eax, 0x8(%rbx)
jmp 0x3cbf6
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_arena_dissociate
void
tcache_arena_dissociate(tcache_t *tcache, arena_t *arena)
{

	if (config_stats) {
		/* Unlink from list of extant tcaches. */
		malloc_mutex_lock(&arena->lock);
		if (config_debug) {
			bool in_ql = false;
			tcache_t *iter;
			ql_foreach(iter, &arena->tcache_ql, link) {
				if (iter == tcache) {
					in_ql = true;
					break;
				}
			}
			assert(in_ql);
		}
		ql_remove(&arena->tcache_ql, tcache, link);
		tcache_stats_merge(tcache, arena);
		malloc_mutex_unlock(&arena->lock);
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x8(%rsi), %rbx
movq %rbx, %rdi
callq 0x106d0
movq 0xa8(%r14), %rax
cmpq %r15, %rax
jne 0x3ccb3
movq (%rax), %rax
movq %rax, 0xa8(%r14)
cmpq %r15, %rax
je 0x3cccf
movq (%r15), %rax
movq 0x8(%r15), %rcx
movq %rax, (%rcx)
movq %rcx, 0x8(%rax)
movq %r15, (%r15)
movq %r15, 0x8(%r15)
jmp 0x3ccda
movq $0x0, 0xa8(%r14)
movq %r15, %rdi
movq %r14, %rsi
callq 0x3ccf2
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x10440
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_stats_merge
void
tcache_stats_merge(tcache_t *tcache, arena_t *arena)
{
	unsigned i;

	cassert(config_stats);

	/* Merge and reset tcache stats. */
	for (i = 0; i < NBINS; i++) {
		arena_bin_t *bin = &arena->bins[i];
		tcache_bin_t *tbin = &tcache->tbins[i];
		malloc_mutex_lock(&bin->lock);
		bin->stats.nrequests += tbin->tstats.nrequests;
		malloc_mutex_unlock(&bin->lock);
		tbin->tstats.nrequests = 0;
	}

	for (; i < nhbins; i++) {
		malloc_large_stats_t *lstats = &arena->stats.lstats[i - NBINS];
		tcache_bin_t *tbin = &tcache->tbins[i];
		arena->stats.nrequests_large += tbin->tstats.nrequests;
		lstats->nrequests += tbin->tstats.nrequests;
		tbin->tstats.nrequests = 0;
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x450(%rsi), %r15
leaq 0x20(%rdi), %r12
movl $0x20, %r13d
movq %r15, %rdi
callq 0x106d0
movq (%r14,%r13), %rax
addq %rax, 0xa8(%r15)
movq %r15, %rdi
callq 0x10440
movq $0x0, (%r14,%r13)
addq $0xe0, %r15
addq $0x20, %r13
cmpq $0x500, %r13            # imm = 0x500
jne 0x3cd12
cmpq $0x28, 0x1f067(%rip)    # 0x5bdb8
jb 0x3cd98
movq 0x78(%rbx), %rax
movq 0x98(%rbx), %rcx
movl $0x27, %edx
movl $0x28, %esi
leal -0x28(%rsi), %edi
shlq $0x5, %rdx
movq (%r12,%rdx), %r8
addq %r8, %rax
shlq $0x5, %rdi
addq %r8, 0x10(%rcx,%rdi)
movq $0x0, (%r12,%rdx)
movl %esi, %edx
incl %esi
cmpq %rdx, 0x1f026(%rip)     # 0x5bdb8
ja 0x3cd68
movq %rax, 0x78(%rbx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_get_hard
tcache_t *
tcache_get_hard(tsd_t *tsd)
{
	arena_t *arena;

	if (!tcache_enabled_get()) {
		if (tsd_nominal(tsd))
			tcache_enabled_set(false); /* Memoize. */
		return (NULL);
	}
	arena = arena_choose(tsd, NULL);
	if (unlikely(arena == NULL))
		return (NULL);
	return (tcache_create(tsd, arena));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r14
movq 0x1b23f(%rip), %r15     # 0x57ff0
movq %fs:0x0, %rbx
addq %r15, %rbx
movl %fs:(%r15), %eax
testl %eax, %eax
je 0x3ce5b
cmpl $0x2, %eax
je 0x3ce65
movl %fs:0x40(%r15), %eax
cmpl $0x2, %eax
jne 0x3cde8
movzbl 0x1d5fd(%rip), %eax     # 0x5a3e0
movl %eax, %fs:0x40(%r15)
testl %eax, %eax
je 0x3ce02
movq 0x28(%r14), %rsi
testq %rsi, %rsi
je 0x3ce49
movq %r14, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x12ffe
cmpl $0x1, (%r14)
jne 0x3ce41
movl %fs:(%r15), %eax
testl %eax, %eax
je 0x3cea7
cmpl $0x2, %eax
je 0x3ceb1
movl $0x0, %fs:0x40(%r15)
movq %fs:0x8(%r15), %rsi
testq %rsi, %rsi
je 0x3ce41
movq %rbx, %rdi
callq 0x3cf0c
movq $0x0, %fs:0x8(%r15)
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
movq %r14, %rdi
callq 0x22135
testq %rax, %rax
je 0x3ce41
movq %rax, %rsi
jmp 0x3cdf5
movl $0x1, %fs:(%r15)
jmp 0x3ce6d
movl $0x3, %fs:(%r15)
leaq 0x1efa0(%rip), %rax     # 0x5be14
movl (%rax), %edi
movq %rbx, %rsi
callq 0x106f0
testl %eax, %eax
je 0x3cdd2
leaq 0xb4ec(%rip), %rdi      # 0x48379
callq 0x3d37c
leaq 0x1d787(%rip), %rax     # 0x5a620
cmpb $0x1, (%rax)
jne 0x3cdd2
callq 0x10090
movl $0x1, %fs:(%r15)
jmp 0x3ceb9
movl $0x3, %fs:(%r15)
leaq 0x1ef54(%rip), %rax     # 0x5be14
movl (%rax), %edi
movq %rbx, %rsi
callq 0x106f0
testl %eax, %eax
je 0x3ce1d
leaq 0xb4a0(%rip), %rdi      # 0x48379
callq 0x3d37c
leaq 0x1d73b(%rip), %rax     # 0x5a620
cmpb $0x1, (%rax)
jne 0x3ce1d
jmp 0x3cea2
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcaches_create
bool
tcaches_create(tsd_t *tsd, unsigned *r_ind)
{
	tcache_t *tcache;
	tcaches_t *elm;

	if (tcaches == NULL) {
		tcaches = base_alloc(sizeof(tcache_t *) *
		    (MALLOCX_TCACHE_MAX+1));
		if (tcaches == NULL)
			return (true);
	}

	if (tcaches_avail == NULL && tcaches_past > MALLOCX_TCACHE_MAX)
		return (true);
	tcache = tcache_create(tsd, a0get());
	if (tcache == NULL)
		return (true);

	if (tcaches_avail != NULL) {
		elm = tcaches_avail;
		tcaches_avail = tcaches_avail->next;
		elm->tcache = tcache;
		*r_ind = elm - tcaches;
	} else {
		elm = &tcaches[tcaches_past];
		elm->tcache = tcache;
		*r_ind = tcaches_past;
		tcaches_past++;
	}

	return (false);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq $0x0, 0x1ec6d(%rip)     # 0x5bdc8
jne 0x3d173
movl $0x7ff0, %edi           # imm = 0x7FF0
callq 0x2dd78
movq %rax, 0x1ec5a(%rip)     # 0x5bdc8
testq %rax, %rax
je 0x3d197
cmpq $0x0, 0x1ec55(%rip)     # 0x5bdd0
jne 0x3d19b
movb $0x1, %al
cmpl $0xffd, 0x1ec4f(%rip)   # imm = 0xFFD
jbe 0x3d19b
andb $0x1, %al
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movb $0x1, %al
jmp 0x3d18b
leaq 0xf(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x132d3
movb (%r15), %al
jmp 0x3d18b
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcaches_destroy
void
tcaches_destroy(tsd_t *tsd, unsigned ind)
{
	tcaches_t *elm = &tcaches[ind];
	tcaches_elm_flush(tsd, elm);
	elm->next = tcaches_avail;
	tcaches_avail = elm;
}

// Assembly:
pushq %rbx
movq 0x1ebe1(%rip), %rax     # 0x5bdc8
movl %esi, %ecx
leaq (%rax,%rcx,8), %rbx
movq (%rbx), %rsi
testq %rsi, %rsi
je 0x3d1fa
callq 0x3cf0c
movq 0x1ebcf(%rip), %rax     # 0x5bdd0
movq %rax, (%rbx)
movq %rbx, 0x1ebc5(%rip)     # 0x5bdd0
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tcache.c
// Function: je_tcache_boot
bool
tcache_boot(void)
{
	unsigned i;

	/*
	 * If necessary, clamp opt_lg_tcache_max, now that large_maxclass is
	 * known.
	 */
	if (opt_lg_tcache_max < 0 || (1U << opt_lg_tcache_max) < SMALL_MAXCLASS)
		tcache_maxclass = SMALL_MAXCLASS;
	else if ((1U << opt_lg_tcache_max) > large_maxclass)
		tcache_maxclass = large_maxclass;
	else
		tcache_maxclass = (1U << opt_lg_tcache_max);

	nhbins = size2index(tcache_maxclass) + 1;

	/* Initialize tcache_bin_info. */
	tcache_bin_info = (tcache_bin_info_t *)base_alloc(nhbins *
	    sizeof(tcache_bin_info_t));
	if (tcache_bin_info == NULL)
		return (true);
	stack_nelms = 0;
	for (i = 0; i < NBINS; i++) {
		if ((arena_bin_info[i].nregs << 1) <= TCACHE_NSLOTS_SMALL_MIN) {
			tcache_bin_info[i].ncached_max =
			    TCACHE_NSLOTS_SMALL_MIN;
		} else if ((arena_bin_info[i].nregs << 1) <=
		    TCACHE_NSLOTS_SMALL_MAX) {
			tcache_bin_info[i].ncached_max =
			    (arena_bin_info[i].nregs << 1);
		} else {
			tcache_bin_info[i].ncached_max =
			    TCACHE_NSLOTS_SMALL_MAX;
		}
		stack_nelms += tcache_bin_info[i].ncached_max;
	}
	for (; i < nhbins; i++) {
		tcache_bin_info[i].ncached_max = TCACHE_NSLOTS_LARGE;
		stack_nelms += tcache_bin_info[i].ncached_max;
	}

	return (false);
}

// Assembly:
pushq %rax
movq 0x1d1d3(%rip), %rcx     # 0x5a3e8
testq %rcx, %rcx
js 0x3d21f
cmpl $0xd, %ecx
ja 0x3d238
movq $0x3800, 0x1ebb6(%rip) # imm = 0x3800
movl $0x3800, %edi           # imm = 0x3800
callq 0x3d320
movl %eax, %edi
jmp 0x3d272
movl $0x1, %edi
shll %cl, %edi
leaq 0x1e2fa(%rip), %rax     # 0x5b540
movq (%rax), %rax
cmpq %rdi, %rax
cmovbq %rax, %rdi
movq %rdi, 0x1eb89(%rip)     # 0x5bde0
cmpq $0x1000, %rdi           # imm = 0x1000
ja 0x3d22f
decq %rdi
shrq $0x3, %rdi
leaq 0xad52(%rip), %rax      # 0x47fc0
movzbl (%rax,%rdi), %edi
incl %edi
movq %rdi, 0x1eb3d(%rip)     # 0x5bdb8
shlq $0x2, %rdi
callq 0x2dd78
movq %rax, 0x1eb25(%rip)     # 0x5bdb0
testq %rax, %rax
je 0x3d318
leaq 0x1d405(%rip), %rdx     # 0x5a6a0
addq $0x20, %rdx
xorl %esi, %esi
xorl %ecx, %ecx
movl (%rdx), %edi
addl %edi, %edi
cmpl $0x14, %edi
ja 0x3d2ba
movl $0x14, (%rax,%rsi,4)
movl $0x14, %edi
jmp 0x3d2d3
cmpl $0xc8, %edi
ja 0x3d2c7
movl %edi, (%rax,%rsi,4)
jmp 0x3d2d3
movl $0xc8, (%rax,%rsi,4)
movl $0xc8, %edi
addl %edi, %ecx
incq %rsi
addq $0x60, %rdx
cmpq $0x27, %rsi
jne 0x3d2a3
movl %ecx, 0x1ead8(%rip)     # 0x5bdc0
movq 0x1eac9(%rip), %rdx     # 0x5bdb8
cmpq $0x28, %rdx
jb 0x3d318
movl $0x27, %edi
movl $0x28, %esi
movl $0x14, (%rax,%rdi,4)
addl $0x14, %ecx
movl %esi, %edi
incl %esi
cmpq %rdi, %rdx
ja 0x3d2ff
movl %ecx, 0x1eaa8(%rip)     # 0x5bdc0
testq %rax, %rax
sete %al
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/util.c
// Function: je_buferror
int
buferror(int err, char *buf, size_t buflen)
{

#ifdef _WIN32
	FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0,
	    (LPSTR)buf, buflen, NULL);
	return (0);
#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
	char *b = strerror_r(err, buf, buflen);
	if (b != buf) {
		strncpy(buf, b, buflen);
		buf[buflen-1] = '\0';
	}
	return (0);
#else
	return (strerror_r(err, buf, buflen));
#endif
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
callq 0x10430
cmpq %r14, %rax
je 0x3d400
movq %r14, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x100b0
movb $0x0, -0x1(%r14,%rbx)
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/util.c
// Function: je_malloc_cprintf
void
malloc_cprintf(void (*write_cb)(void *, const char *), void *cbopaque,
    const char *format, ...)
{
	va_list ap;

	va_start(ap, format);
	malloc_vcprintf(write_cb, cbopaque, format, ap);
	va_end(ap);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10d0, %rsp           # imm = 0x10D0
movq %rsi, %rbx
leaq 0x20(%rsp), %rsi
movq %rcx, 0x18(%rsi)
movq %r8, 0x20(%rsi)
movq %r9, 0x28(%rsi)
testb %al, %al
je 0x3e439
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq %rsp, %rcx
movq %rsi, 0x10(%rcx)
leaq 0x10f0(%rsp), %rax
movq %rax, 0x8(%rcx)
movabsq $0x3000000018, %rax     # imm = 0x3000000018
movq %rax, (%rcx)
movq 0x1d988(%rip), %rax     # 0x5bde8
testq %rax, %rax
leaq -0x10b6(%rip), %r15     # 0x3d3b4
cmovneq %rax, %r15
testq %rdi, %rdi
cmoveq %rdi, %rbx
cmovneq %rdi, %r15
leaq 0xd0(%rsp), %r14
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
callq 0x3d58b
movq %rbx, %rdi
movq %r14, %rsi
callq *%r15
addq $0x10d0, %rsp           # imm = 0x10D0
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/util.c
// Function: je_malloc_printf
void
malloc_printf(const char *format, ...)
{
	va_list ap;

	va_start(ap, format);
	malloc_vcprintf(NULL, NULL, format, ap);
	va_end(ap);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x10d8, %rsp           # imm = 0x10D8
movq %rdi, %r10
leaq 0x20(%rsp), %rdi
movq %rsi, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movq %r8, 0x20(%rdi)
movq %r9, 0x28(%rdi)
testb %al, %al
je 0x3e505
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq %rsp, %rcx
movq %rdi, 0x10(%rcx)
leaq 0x10f0(%rsp), %rax
movq %rax, 0x8(%rcx)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rcx)
movq 0x1d8bc(%rip), %rax     # 0x5bde8
testq %rax, %rax
leaq -0x1182(%rip), %r14     # 0x3d3b4
cmovneq %rax, %r14
leaq 0xd0(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
movq %r10, %rdx
callq 0x3d58b
xorl %edi, %edi
movq %rbx, %rsi
callq *%r14
addq $0x10d8, %rsp           # imm = 0x10D8
popq %rbx
popq %r14
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tsd.c
// Function: je_tsd_cleanup
void
tsd_cleanup(void *arg)
{
	tsd_t *tsd = (tsd_t *)arg;

	switch (tsd->state) {
	case tsd_state_uninitialized:
		/* Do nothing. */
		break;
	case tsd_state_nominal:
#define O(n, t)								\
		n##_cleanup(tsd);
MALLOC_TSD
#undef O
		tsd->state = tsd_state_purgatory;
		tsd_set(tsd);
		break;
	case tsd_state_purgatory:
		/*
		 * The previous time this destructor was called, we set the
		 * state to tsd_state_purgatory so that other destructors
		 * wouldn't cause re-creation of the tsd.  This time, do
		 * nothing, and do not request another callback.
		 */
		break;
	case tsd_state_reincarnated:
		/*
		 * Another destructor deallocated memory after this destructor
		 * was called.  Reset state to tsd_state_purgatory and request
		 * another callback.
		 */
		tsd->state = tsd_state_purgatory;
		tsd_set(tsd);
		break;
	default:
		not_reached();
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl (%rdi), %eax
leaq 0xb48b(%rip), %rcx      # 0x49a2c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x3cef0
movq %rbx, %rdi
callq 0x2221b
movq %rbx, %rdi
callq 0x2221c
movq %rbx, %rdi
callq 0x3878c
movq %rbx, %rdi
callq 0x2221d
movq %rbx, %rdi
callq 0x22264
movq %rbx, %rdi
callq 0x22283
movq %rbx, %rdi
callq 0x22284
movq %rbx, %rdi
callq 0x3d143
movq %rbx, %rdi
callq 0x39408
movl $0x2, (%rbx)
movq %fs:0x0, %rax
leaq -0x50(%rax), %rax
movl $0xa, %ecx
movq %rax, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0x1d7f0(%rip), %edi     # 0x5be14
movq %rax, %rsi
callq 0x106f0
testl %eax, %eax
je 0x3e648
leaq 0x9d42(%rip), %rdi      # 0x48379
callq 0x3d37c
leaq 0x1bfdd(%rip), %rax     # 0x5a620
cmpb $0x1, (%rax)
je 0x3e64a
popq %rbx
retq
callq 0x10090
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/tsd.c
// Function: je_malloc_tsd_boot0
bool
malloc_tsd_boot0(void)
{

	ncleanups = 0;
	if (tsd_boot0())
		return (true);
	*tsd_arenas_cache_bypassp_get(tsd_fetch()) = true;
	return (false);
}

// Assembly:
pushq %rbx
movl $0x0, 0x1d7b6(%rip)     # 0x5be10
leaq 0x1d7b3(%rip), %rdi     # 0x5be14
leaq -0xd4(%rip), %rsi       # 0x3e594
callq 0x10260
movl %eax, %ebx
testl %eax, %eax
jne 0x3e6a4
movb $0x1, 0x1d776(%rip)     # 0x5bdf0
movq %fs:0x0, %rax
leaq -0x50(%rax), %rsi
movl %fs:-0x50, %eax
testl %eax, %eax
je 0x3e6ab
cmpl $0x2, %eax
je 0x3e6b9
movb $0x1, %fs:-0x14
testl %ebx, %ebx
setne %al
popq %rbx
retq
movl $0x1, %fs:-0x50
jmp 0x3e6c5
movl $0x3, %fs:-0x50
movl 0x1d749(%rip), %edi     # 0x5be14
callq 0x106f0
testl %eax, %eax
je 0x3e69b
leaq 0x9c9e(%rip), %rdi      # 0x48379
callq 0x3d37c
leaq 0x1bf39(%rip), %rax     # 0x5a620
cmpb $0x1, (%rax)
jne 0x3e69b
callq 0x10090
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/ckh.c
// Function: je_ckh_iter
bool
ckh_iter(ckh_t *ckh, size_t *tabind, void **key, void **data)
{
	size_t i, ncells;

	for (i = *tabind, ncells = (ZU(1) << (ckh->lg_curbuckets +
	    LG_CKH_BUCKET_CELLS)); i < ncells; i++) {
		if (ckh->tab[i].key != NULL) {
			if (key != NULL)
				*key = (void *)ckh->tab[i].key;
			if (data != NULL)
				*data = (void *)ckh->tab[i].data;
			*tabind = i + 1;
			return (false);
		}
	}

	return (true);
}

// Assembly:
movq %rcx, %r8
movq (%rsi), %r9
movl 0x14(%rdi), %ecx
addl $0x2, %ecx
movq %r9, %r10
shrq %cl, %r10
movb $0x1, %al
testq %r10, %r10
je 0x3edaa
retq
pushq %rbx
movq 0x28(%rdi), %r11
movq %r9, %r10
shlq $0x4, %r10
incq %r9
movq (%r11,%r10), %rbx
testq %rbx, %rbx
jne 0x3edd6
movq %r9, %rbx
shrq %cl, %rbx
addq $0x10, %r10
incq %r9
testq %rbx, %rbx
je 0x3edb9
jmp 0x3edf4
testq %rdx, %rdx
je 0x3edde
movq %rbx, (%rdx)
testq %r8, %r8
je 0x3edef
movq 0x28(%rdi), %rax
movq 0x8(%rax,%r10), %rax
movq %rax, (%r8)
movq %r9, (%rsi)
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/ckh.c
// Function: je_ckh_search
bool
ckh_search(ckh_t *ckh, const void *searchkey, void **key, void **data)
{
	size_t cell;

	assert(ckh != NULL);

	cell = ckh_isearch(ckh, searchkey);
	if (cell != SIZE_T_MAX) {
		if (key != NULL)
			*key = (void *)ckh->tab[cell].key;
		if (data != NULL)
			*data = (void *)ckh->tab[cell].data;
		return (false);
	}

	return (true);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, 0x8(%rsp)
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
leaq 0x10(%rsp), %r13
movq %rsi, %rdi
movq %r13, %rsi
callq *0x18(%r14)
movb 0x14(%r14), %cl
movq $-0x1, %rbp
shlq %cl, %rbp
notq %rbp
andq (%r13), %rbp
leaq (,%rbp,4), %r13
shlq $0x6, %rbp
xorl %ebx, %ebx
movq 0x28(%r14), %rax
movq (%rax,%rbp), %rsi
testq %rsi, %rsi
je 0x3f0bf
movq %r12, %rdi
callq *0x20(%r14)
testb %al, %al
jne 0x3f0ce
decq %rbx
addq $0x10, %rbp
cmpq $-0x4, %rbx
jne 0x3f0a7
jmp 0x3f0d7
leaq 0x1(%r13), %rax
cmpq %rbx, %rax
jne 0x3f12f
movb 0x14(%r14), %cl
movq $-0x1, %rbp
shlq %cl, %rbp
notq %rbp
andq 0x18(%rsp), %rbp
leaq (,%rbp,4), %r13
shlq $0x6, %rbp
xorl %ebx, %ebx
movq 0x28(%r14), %rax
movq (%rax,%rbp), %rsi
testq %rsi, %rsi
je 0x3f113
movq %r12, %rdi
callq *0x20(%r14)
testb %al, %al
jne 0x3f124
decq %rbx
addq $0x10, %rbp
cmpq $-0x4, %rbx
jne 0x3f0fb
movb $0x1, %al
jmp 0x3f165
leaq 0x1(%r13), %rcx
movb $0x1, %al
cmpq %rbx, %rcx
je 0x3f165
subq %rbx, %r13
testq %r15, %r15
je 0x3f149
movq 0x28(%r14), %rax
movq %r13, %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq %rax, (%r15)
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
je 0x3f163
movq 0x28(%r14), %rax
shlq $0x4, %r13
movq 0x8(%rax,%r13), %rax
movq %rax, (%rcx)
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/annot-tsv.c
// Function: cols_split
cols_t *cols_split(const char *line, cols_t *cols, char delim)
{
    if ( !cols ) cols = (cols_t*) calloc(1,sizeof(cols_t));
    if ( !cols ) error("Out of memory, failed to allocate %zu bytes\n",sizeof(cols_t));
    if ( cols->rmme ) free(cols->rmme);
    cols->n = 0;
    cols->rmme = strdup(line);
    if ( !cols->rmme ) error("Out of memory\n");
    char *ss = cols->rmme;
    while (1)
    {
        char *se = ss;
        while ( *se && *se!=delim ) se++;
        char tmp = *se;
        *se = 0;
        cols->n++;
        if ( cols->n > cols->m )
        {
            cols->m += 10;
            cols->off = realloc(cols->off, sizeof(*cols->off)*cols->m);
            if ( !cols->off ) error("Out of memory, failed to allocate %zu bytes\n",sizeof(*cols->off)*cols->m);
        }
        cols->off[ cols->n - 1 ] = ss;
        if ( !tmp ) break;
        ss = se + 1;
    }
    return cols;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edx, %ebx
movq %rsi, %r14
movq %rdi, %r15
testq %rsi, %rsi
jne 0x5e1c
movl $0x1, %edi
movl $0x18, %esi
callq 0x4300
movq %rax, %r14
testq %rax, %rax
je 0x5ece
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x5e2a
callq 0x45c0
movl $0x0, (%r14)
movq %r15, %rdi
callq 0x4930
movq %rax, 0x10(%r14)
testq %rax, %rax
je 0x5ec0
movq %rax, %r15
movq %r15, %r12
movb (%r15), %bpl
incq %r15
testb %bpl, %bpl
je 0x5e58
cmpb %bl, %bpl
jne 0x5e48
movb $0x0, -0x1(%r15)
movl (%r14), %ecx
movl 0x4(%r14), %esi
leal 0x1(%rcx), %edx
movl %edx, (%r14)
movq 0x8(%r14), %rax
cmpl %esi, %edx
jbe 0x5e93
addl $0xa, %esi
movl %esi, 0x4(%r14)
shlq $0x3, %rsi
movq %rax, %rdi
callq 0x4840
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0x5eaa
movl (%r14), %ecx
decl %ecx
movl %ecx, %ecx
movq %r12, (%rax,%rcx,8)
testb %bpl, %bpl
jne 0x5e45
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl 0x4(%r14), %esi
shlq $0x3, %rsi
leaq 0x8d2f7(%rip), %rdi     # 0x931b0
xorl %eax, %eax
callq 0x5edc
leaq 0x8d316(%rip), %rdi     # 0x931dd
xorl %eax, %eax
callq 0x5edc
leaq 0x8d2db(%rip), %rdi     # 0x931b0
movl $0x18, %esi
jmp 0x5eb9
// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/annot-tsv.c
// Function: error
static void HTS_FORMAT(HTS_PRINTF_FMT, 1, 2) HTS_NORETURN
error(const char *format, ...)
{
    va_list ap;
    fflush(stdout);
    va_start(ap, format);
    vfprintf(stderr, format, ap);
    va_end(ap);
    fflush(stderr);
    exit(EXIT_FAILURE);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %r14
movq %rsi, 0x8(%r14)
movq %rdx, 0x10(%r14)
movq %rcx, 0x18(%r14)
movq %r8, 0x20(%r14)
movq %r9, 0x28(%r14)
testb %al, %al
je 0x5f3d
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq 0xb006c(%rip), %rax     # 0xb5fb0
movq (%rax), %rdi
callq 0x45a0
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rsp, %rdx
movq %rax, (%rdx)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rdx)
movq %r14, 0x10(%rdx)
movq 0xb0065(%rip), %r14     # 0xb5fd8
movq (%r14), %rdi
movq %rbx, %rsi
callq 0x4690
movq (%r14), %rdi
callq 0x45a0
movl $0x1, %edi
callq 0x45e0
// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/annot-tsv.c
// Function: cols_clear
void cols_clear(cols_t *cols)
{
    if ( !cols ) return;
    free(cols->rmme);
    free(cols->off);
    cols->rmme = NULL;
    cols->off  = NULL;
}

// Assembly:
testq %rdi, %rdi
je 0x6177
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rdi
callq 0x45c0
movq 0x8(%rbx), %rdi
callq 0x45c0
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
popq %rbx
retq