// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/jemalloc.c
// Function: malloc_init_hard
static bool
malloc_init_hard(void)
{

#if defined(_WIN32) && _WIN32_WINNT < 0x0600
	_init_init_lock();
#endif
	malloc_mutex_lock(&init_lock);
	if (!malloc_init_hard_needed()) {
		malloc_mutex_unlock(&init_lock);
		return (false);
	}

	if (malloc_init_state != malloc_init_a0_initialized &&
	    malloc_init_hard_a0_locked()) {
		malloc_mutex_unlock(&init_lock);
		return (true);
	}
	if (malloc_tsd_boot0()) {
		malloc_mutex_unlock(&init_lock);
		return (true);
	}
	if (config_prof && prof_boot2()) {
		malloc_mutex_unlock(&init_lock);
		return (true);
	}

	malloc_init_hard_recursible();

	if (malloc_init_hard_finish()) {
		malloc_mutex_unlock(&init_lock);
		return (true);
	}

	malloc_mutex_unlock(&init_lock);
	malloc_tsd_boot1();
	return (false);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
leaq 0x3352c(%rip), %rdi     # 0x5a360
callq 0x106d0
movl 0x33519(%rip), %ebx     # 0x5a358
testl %ebx, %ebx
je 0x26ff7
movq 0x3384a(%rip), %r14     # 0x5a698
callq 0x10560
cmpq %rax, %r14
sete %cl
cmpl $0x1, %ebx
sete %dl
testb %cl, %dl
jne 0x26ff7
cmpq %rax, %r14
sete %al
testq %r14, %r14
sete %cl
orb %al, %cl
je 0x26fd5
cmpl $0x2, %ebx
je 0x26e8d
callq 0x2615c
testb %al, %al
jne 0x2700f
callq 0x3e64f
testb %al, %al
jne 0x2700f
movl $0x1, %ebx
movl %ebx, 0x334b3(%rip)     # 0x5a358
leaq 0x334b4(%rip), %rdi     # 0x5a360
callq 0x10440
movl $0x54, %edi
callq 0x105c0
cmpq $-0x1, %rax
cmovel %ebx, %eax
movl %eax, 0x337c8(%rip)     # 0x5a690
leaq -0xeab(%rip), %rdi      # 0x26024
leaq -0xe58(%rip), %rsi      # 0x2607e
leaq -0xe05(%rip), %rdx      # 0x260d8
callq 0x3f4f0
testl %eax, %eax
je 0x26eff
leaq 0x21439(%rip), %rdi     # 0x48326
callq 0x3d37c
cmpb $0x1, 0x33727(%rip)     # 0x5a620
je 0x2701f
leaq 0x3345a(%rip), %rdi     # 0x5a360
callq 0x106d0
callq 0x36ecb
testb %al, %al
jne 0x2700f
movq 0x33719(%rip), %rax     # 0x5a638
testq %rax, %rax
jne 0x26f43
movl 0x33766(%rip), %eax     # 0x5a690
leal (,%rax,4), %ecx
cmpl $0x2, %eax
movl $0x1, %eax
cmovael %ecx, %eax
movq %rax, 0x336f5(%rip)     # 0x5a638
movl %eax, 0x33737(%rip)     # 0x5a680
movl %eax, %ecx
leaq 0x34756(%rip), %rdx     # 0x5b6a8
movq (%rdx), %rsi
shrq $0x3, %rsi
cmpq %rsi, %rcx
jbe 0x26f78
movl %esi, 0x3371c(%rip)     # 0x5a680
leaq 0x213e2(%rip), %rdi     # 0x4834d
xorl %eax, %eax
callq 0x3e4a4
movl 0x33708(%rip), %eax     # 0x5a680
movl %eax, 0x336f2(%rip)     # 0x5a670
movl %eax, %edi
shlq $0x3, %rdi
callq 0x2dd78
movq %rax, 0x336e8(%rip)     # 0x5a678
testq %rax, %rax
je 0x2700f
movq %rax, %r14
movl 0x336d2(%rip), %edx     # 0x5a670
shlq $0x3, %rdx
xorl %ebx, %ebx
movq %rax, %rdi
xorl %esi, %esi
callq 0x10270
movq 0x3368b(%rip), %rax     # 0x5a640
movq %rax, (%r14)
movl $0x0, 0x33396(%rip)     # 0x5a358
leaq 0x33397(%rip), %rdi     # 0x5a360
callq 0x10440
callq 0x3e6f1
jmp 0x27005
leaq 0x33384(%rip), %rbx     # 0x5a360
movq %rbx, %rdi
callq 0x10440
pause
movq %rbx, %rdi
callq 0x106d0
cmpl $0x0, 0x33363(%rip)     # 0x5a358
jne 0x26fdc
leaq 0x33362(%rip), %rdi     # 0x5a360
callq 0x10440
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x3334a(%rip), %rdi     # 0x5a360
callq 0x10440
movb $0x1, %bl
jmp 0x27005
callq 0x10090