// File: /workspace/github_c_makefile_star2_O0/gplessis[P]dotdeb-redis/deps/jemalloc/src/ctl.c
// Function: ctl_grow
static bool
ctl_grow(void)
{
	ctl_arena_stats_t *astats;

	/* Initialize new arena. */
	if (arena_init(ctl_stats.narenas) == NULL)
		return (true);

	/* Allocate extended arena stats. */
	astats = (ctl_arena_stats_t *)a0malloc((ctl_stats.narenas + 2) *
	    sizeof(ctl_arena_stats_t));
	if (astats == NULL)
		return (true);

	/* Initialize the new astats element. */
	memcpy(astats, ctl_stats.arenas, (ctl_stats.narenas + 1) *
	    sizeof(ctl_arena_stats_t));
	memset(&astats[ctl_stats.narenas + 1], 0, sizeof(ctl_arena_stats_t));
	if (ctl_arena_init(&astats[ctl_stats.narenas + 1])) {
		a0dalloc(astats);
		return (true);
	}
	/* Swap merged stats to their new location. */
	{
		ctl_arena_stats_t tstats;
		memcpy(&tstats, &astats[ctl_stats.narenas],
		    sizeof(ctl_arena_stats_t));
		memcpy(&astats[ctl_stats.narenas],
		    &astats[ctl_stats.narenas + 1], sizeof(ctl_arena_stats_t));
		memcpy(&astats[ctl_stats.narenas + 1], &tstats,
		    sizeof(ctl_arena_stats_t));
	}
	a0dalloc(ctl_stats.arenas);
	ctl_stats.arenas = astats;
	ctl_stats.narenas++;

	return (false);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xbe0, %rsp            # imm = 0xBE0
movl 0x49c07(%rip), %edi     # 0xa27d8
callq 0x25df0
cmpq $0x0, %rax
jne 0x58be5
movb $0x1, -0x1(%rbp)
jmp 0x58d3d
movl 0x49bed(%rip), %eax     # 0xa27d8
addl $0x2, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rdi      # imm = 0xBC8
callq 0x246c0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x58c10
movb $0x1, -0x1(%rbp)
jmp 0x58d3d
movq -0x10(%rbp), %rdi
movq 0x49bc5(%rip), %rsi     # 0xa27e0
movl 0x49bb7(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rdx      # imm = 0xBC8
callq 0x103b0
movq -0x10(%rbp), %rdi
movl 0x49b9c(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rdi
xorl %esi, %esi
movl $0xbc8, %edx            # imm = 0xBC8
callq 0x10250
movq -0x10(%rbp), %rdi
movl 0x49b77(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rdi
callq 0x53190
testb $0x1, %al
jne 0x58c7b
jmp 0x58c8d
movq -0x10(%rbp), %rdi
callq 0x25330
movb $0x1, -0x1(%rbp)
jmp 0x58d3d
movq -0x10(%rbp), %rsi
movl 0x49b41(%rip), %eax     # 0xa27d8
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rsi
leaq -0xbd8(%rbp), %rdi
movl $0xbc8, %edx            # imm = 0xBC8
callq 0x103b0
movq -0x10(%rbp), %rdi
movl 0x49b1c(%rip), %eax     # 0xa27d8
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movl 0x49b08(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rsi
movl $0xbc8, %edx            # imm = 0xBC8
callq 0x103b0
movq -0x10(%rbp), %rdi
movl 0x49ae5(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, %eax
imulq $0xbc8, %rax, %rax      # imm = 0xBC8
addq %rax, %rdi
leaq -0xbd8(%rbp), %rsi
movl $0xbc8, %edx            # imm = 0xBC8
callq 0x103b0
movq 0x49ac6(%rip), %rdi     # 0xa27e0
callq 0x25330
movq -0x10(%rbp), %rax
movq %rax, 0x49ab6(%rip)     # 0xa27e0
movl 0x49aa8(%rip), %eax     # 0xa27d8
addl $0x1, %eax
movl %eax, 0x49a9f(%rip)     # 0xa27d8
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xbe0, %rsp            # imm = 0xBE0
popq %rbp
retq
nopl (%rax,%rax)