// File: /workspace/github_c_makefile_star2_O0/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/jemalloc.c
// Function: je_jemalloc_prefork
void
jemalloc_prefork(void)
#else
JEMALLOC_EXPORT void
_malloc_prefork(void)
#endif
{
	tsd_t *tsd;
	unsigned i, j, narenas;
	arena_t *arena;

#ifdef JEMALLOC_MUTEX_INIT_CB
	if (!malloc_initialized())
		return;
#endif
	assert(malloc_initialized());

	tsd = tsd_fetch();

	narenas = narenas_total_get();

	witness_prefork(tsd);
	/* Acquire all mutexes in a safe order. */
	ctl_prefork(tsd_tsdn(tsd));
	malloc_mutex_prefork(tsd_tsdn(tsd), &arenas_lock);
	prof_prefork0(tsd_tsdn(tsd));
	for (i = 0; i < 3; i++) {
		for (j = 0; j < narenas; j++) {
			if ((arena = arena_get(tsd_tsdn(tsd), j, false)) !=
			    NULL) {
				switch (i) {
				case 0:
					arena_prefork0(tsd_tsdn(tsd), arena);
					break;
				case 1:
					arena_prefork1(tsd_tsdn(tsd), arena);
					break;
				case 2:
					arena_prefork2(tsd_tsdn(tsd), arena);
					break;
				default: not_reached();
				}
			}
		}
	}
	base_prefork(tsd_tsdn(tsd));
	for (i = 0; i < narenas; i++) {
		if ((arena = arena_get(tsd_tsdn(tsd), i, false)) != NULL)
			arena_prefork3(tsd_tsdn(tsd), arena);
	}
	prof_prefork1(tsd_tsdn(tsd));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
jmp 0x373ad
movb $0x1, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
movq 0x6bc30(%rip), %rcx     # 0xa2ff0
movq %fs:0x0, %rax
addq %rcx, %rax
movq %rax, -0x30(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x373f2
xorl %eax, %eax
testb $0x1, %al
jne 0x373de
jmp 0x373f2
cmpq $0x0, -0x30(%rbp)
jne 0x373f2
movq $0x0, -0x20(%rbp)
jmp 0x37516
movq -0x30(%rbp), %rax
cmpl $0x1, (%rax)
setne %al
testb $0x1, %al
jne 0x37405
jmp 0x3750e
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x37488
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x6bbc9(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rdi
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movl $0x68, %edx
callq 0xb310
leaq 0x6d0ec(%rip), %rax     # 0xa4534
movl (%rax), %edi
movq 0x6bb9f(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
callq 0xb590
cmpl $0x0, %eax
je 0x37483
leaq 0x59a0c(%rip), %rdi     # 0x90e7a
callq 0x828c0
testb $0x1, 0x6c086(%rip)     # 0xa3500
je 0x37481
callq 0xb050
jmp 0x37483
jmp 0x3750c
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x37508
movq -0x30(%rbp), %rax
movl $0x3, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movq 0x6bb46(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rdi
addq %rax, %rdi
movq -0x8(%rbp), %rsi
movl $0x68, %edx
callq 0xb310
leaq 0x6d069(%rip), %rax     # 0xa4534
movl (%rax), %edi
movq 0x6bb1c(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
callq 0xb590
cmpl $0x0, %eax
je 0x37506
leaq 0x59989(%rip), %rdi     # 0x90e7a
callq 0x828c0
testb $0x1, 0x6c003(%rip)     # 0xa3500
je 0x37504
callq 0xb050
jmp 0x37506
jmp 0x3750a
jmp 0x3750a
jmp 0x3750c
jmp 0x3750e
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
callq 0x19e40
movl %eax, -0x9c(%rbp)
movq -0x90(%rbp), %rdi
callq 0x85ee0
movq -0x90(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x54590
movq -0x90(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
leaq 0x6bfc6(%rip), %rsi     # 0xa3528
callq 0x66b40
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0x6bff0
movl $0x0, -0x94(%rbp)
cmpl $0x3, -0x94(%rbp)
jae 0x3768e
movl $0x0, -0x98(%rbp)
movl -0x98(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jae 0x37678
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
movl -0x98(%rbp), %esi
xorl %edx, %edx
callq 0x1a080
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x37662
movl -0x94(%rbp), %eax
movl %eax, -0xac(%rbp)
testl %eax, %eax
je 0x37607
jmp 0x375ed
movl -0xac(%rbp), %eax
subl $0x1, %eax
je 0x37624
jmp 0x375fa
movl -0xac(%rbp), %eax
subl $0x2, %eax
je 0x37641
jmp 0x3765e
movq -0x90(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x44500
jmp 0x37660
movq -0x90(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x44530
jmp 0x37660
movq -0x90(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x44560
jmp 0x37660
jmp 0x37660
jmp 0x37662
jmp 0x37664
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x3759c
jmp 0x3767a
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x37585
movq -0x90(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
callq 0x509b0
movl $0x0, -0x94(%rbp)
movl -0x94(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jae 0x37711
movq -0x90(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
movl -0x94(%rbp), %esi
xorl %edx, %edx
callq 0x1a080
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x376fe
movq -0x90(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x44590
jmp 0x37700
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x376ac
movq -0x90(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0x6c0b0
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)