// File: /workspace/github_c_makefile_star2_O2/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 0x34487(%rip), %rdi     # 0x56360
callq 0x106d0
movl 0x34474(%rip), %ebx     # 0x56358
testl %ebx, %ebx
je 0x22093
movq 0x347a5(%rip), %r14     # 0x56698
callq 0x10560
cmpq %rax, %r14
sete %cl
cmpl $0x1, %ebx
sete %dl
testb %cl, %dl
jne 0x22093
cmpq %rax, %r14
sete %al
testq %r14, %r14
sete %cl
orb %al, %cl
je 0x22071
cmpl $0x2, %ebx
je 0x21f32
callq 0x212f8
testb %al, %al
jne 0x220ab
callq 0x38e15
testb %al, %al
jne 0x220ab
pushq $0x1
popq %rbx
movl %ebx, 0x34410(%rip)     # 0x56358
leaq 0x34411(%rip), %rdi     # 0x56360
callq 0x10440
pushq $0x54
popq %rdi
callq 0x105c0
cmpq $-0x1, %rax
cmovel %ebx, %eax
movl %eax, 0x34727(%rip)     # 0x56690
leaq -0xd6b(%rip), %rdi      # 0x21205
leaq -0xd21(%rip), %rsi      # 0x21256
leaq -0xcd7(%rip), %rdx      # 0x212a7
callq 0x3aeb0
testl %eax, %eax
je 0x21fa0
leaq 0x20ed8(%rip), %rdi     # 0x42e66
callq 0x37d1c
cmpb $0x1, 0x34686(%rip)     # 0x56620
je 0x220bb
leaq 0x343b9(%rip), %rdi     # 0x56360
callq 0x106d0
callq 0x31341
testb %al, %al
jne 0x220ab
movq 0x34678(%rip), %rax     # 0x56638
testq %rax, %rax
jne 0x21fe2
movl 0x346c5(%rip), %eax     # 0x56690
leal (,%rax,4), %ecx
cmpl $0x2, %eax
cmovael %ecx, %ebx
movq %rbx, 0x34659(%rip)     # 0x56638
movq %rbx, %rax
movl %eax, 0x34698(%rip)     # 0x56680
movl %eax, %ecx
leaq 0x356b7(%rip), %rdx     # 0x576a8
movq (%rdx), %rsi
shrq $0x3, %rsi
cmpq %rsi, %rcx
jbe 0x22017
movl %esi, 0x3467d(%rip)     # 0x56680
leaq 0x20e83(%rip), %rdi     # 0x42e8d
xorl %eax, %eax
callq 0x38c9e
movl 0x34669(%rip), %eax     # 0x56680
movl %eax, 0x34653(%rip)     # 0x56670
movl %eax, %edi
shlq $0x3, %rdi
callq 0x287c8
movq %rax, 0x34649(%rip)     # 0x56678
testq %rax, %rax
je 0x220ab
movq %rax, %r14
movl 0x34633(%rip), %edx     # 0x56670
shlq $0x3, %rdx
xorl %ebx, %ebx
movq %rax, %rdi
xorl %esi, %esi
callq 0x10270
movq 0x345ec(%rip), %rax     # 0x56640
movq %rax, (%r14)
andl $0x0, 0x342fa(%rip)     # 0x56358
leaq 0x342fb(%rip), %rdi     # 0x56360
callq 0x10440
callq 0x38eb4
jmp 0x220a1
leaq 0x342e8(%rip), %rbx     # 0x56360
movq %rbx, %rdi
callq 0x10440
pause
movq %rbx, %rdi
callq 0x106d0
cmpl $0x0, 0x342c7(%rip)     # 0x56358
jne 0x22078
leaq 0x342c6(%rip), %rdi     # 0x56360
callq 0x10440
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x342ae(%rip), %rdi     # 0x56360
callq 0x10440
movb $0x1, %bl
jmp 0x220a1
callq 0x10090