// File: /workspace/github_c_makefile_star2_O0/gplessis[P]dotdeb-redis/deps/jemalloc/src/huge.c
// Function: je_huge_ralloc_no_move
bool
huge_ralloc_no_move(void *ptr, size_t oldsize, size_t usize_min,
    size_t usize_max, bool zero)
{

	assert(s2u(oldsize) == oldsize);

	/* Both allocations must be huge to avoid a move. */
	if (oldsize < chunksize || usize_max < chunksize)
		return (true);

	if (CHUNK_CEILING(usize_max) > CHUNK_CEILING(oldsize)) {
		/* Attempt to expand the allocation in-place. */
		if (!huge_ralloc_no_move_expand(ptr, oldsize, usize_max, zero))
			return (false);
		/* Try again, this time with usize_min. */
		if (usize_min < usize_max && CHUNK_CEILING(usize_min) >
		    CHUNK_CEILING(oldsize) && huge_ralloc_no_move_expand(ptr,
		    oldsize, usize_min, zero))
			return (false);
	}

	/*
	 * Avoid moving the allocation if the existing chunk size accommodates
	 * the new size.
	 */
	if (CHUNK_CEILING(oldsize) >= CHUNK_CEILING(usize_min)
	    && CHUNK_CEILING(oldsize) <= CHUNK_CEILING(usize_max)) {
		huge_ralloc_no_move_similar(ptr, oldsize, usize_min, usize_max,
		    zero);
		return (false);
	}

	/* Attempt to shrink the allocation in-place. */
	if (CHUNK_CEILING(oldsize) > CHUNK_CEILING(usize_max))
		return (huge_ralloc_no_move_shrink(ptr, oldsize, usize_max));
	return (true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %r8b, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x61e02
movq -0x18(%rbp), %rax
leaq 0x4091b(%rip), %rcx     # 0xa2728
cmpq (%rcx), %rax
jb 0x61e22
movq -0x28(%rbp), %rax
leaq 0x4090b(%rip), %rcx     # 0xa2728
cmpq (%rcx), %rax
jae 0x61e2b
movb $0x1, -0x1(%rbp)
jmp 0x62018
movq -0x28(%rbp), %rax
leaq 0x408fa(%rip), %rcx     # 0xa2730
addq (%rcx), %rax
leaq 0x408f0(%rip), %rcx     # 0xa2730
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x18(%rbp), %rcx
leaq 0x408db(%rip), %rdx     # 0xa2730
addq (%rdx), %rcx
leaq 0x408d1(%rip), %rdx     # 0xa2730
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x61f0f
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %ecx
callq 0x62030
testb $0x1, %al
jne 0x61e98
movb $0x0, -0x1(%rbp)
jmp 0x62018
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x61f0d
movq -0x20(%rbp), %rax
leaq 0x40883(%rip), %rcx     # 0xa2730
addq (%rcx), %rax
leaq 0x40879(%rip), %rcx     # 0xa2730
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x18(%rbp), %rcx
leaq 0x40864(%rip), %rdx     # 0xa2730
addq (%rdx), %rcx
leaq 0x4085a(%rip), %rdx     # 0xa2730
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x61f0d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %ecx
callq 0x62030
testb $0x1, %al
jne 0x61f04
jmp 0x61f0d
movb $0x0, -0x1(%rbp)
jmp 0x62018
jmp 0x61f0f
movq -0x18(%rbp), %rax
leaq 0x40816(%rip), %rcx     # 0xa2730
addq (%rcx), %rax
leaq 0x4080c(%rip), %rcx     # 0xa2730
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x20(%rbp), %rcx
leaq 0x407f7(%rip), %rdx     # 0xa2730
addq (%rdx), %rcx
leaq 0x407ed(%rip), %rdx     # 0xa2730
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jb 0x61fb9
movq -0x18(%rbp), %rax
leaq 0x407d3(%rip), %rcx     # 0xa2730
addq (%rcx), %rax
leaq 0x407c9(%rip), %rcx     # 0xa2730
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x28(%rbp), %rcx
leaq 0x407b4(%rip), %rdx     # 0xa2730
addq (%rdx), %rcx
leaq 0x407aa(%rip), %rdx     # 0xa2730
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
ja 0x61fb9
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movb -0x29(%rbp), %al
andb $0x1, %al
movzbl %al, %r8d
callq 0x621f0
movb $0x0, -0x1(%rbp)
jmp 0x62018
movq -0x18(%rbp), %rax
leaq 0x4076c(%rip), %rcx     # 0xa2730
addq (%rcx), %rax
leaq 0x40762(%rip), %rcx     # 0xa2730
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq -0x28(%rbp), %rcx
leaq 0x4074d(%rip), %rdx     # 0xa2730
addq (%rdx), %rcx
leaq 0x40743(%rip), %rdx     # 0xa2730
movq (%rdx), %rdx
xorq $-0x1, %rdx
andq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x62014
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x625f0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x62018
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)