// File: /workspace/github_c_makefile_star2_O1/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/ckh.c
// Function: je_ckh_remove
bool
ckh_remove(tsd_t *tsd, ckh_t *ckh, const void *searchkey, void **key,
    void **data)
{
	size_t cell;

	assert(ckh != NULL);

	cell = ckh_isearch(ckh, searchkey);
	if (cell != SIZE_T_MAX) {
		if (key != NULL)
			*key = (void *)ckh->tab[cell].key;
		if (data != NULL)
			*data = (void *)ckh->tab[cell].data;
		ckh->tab[cell].key = NULL;
		ckh->tab[cell].data = NULL; /* Not necessary. */

		ckh->count--;
		/* Try to halve the table if it is less than 1/4 full. */
		if (ckh->count < (ZU(1) << (ckh->lg_curbuckets
		    + LG_CKH_BUCKET_CELLS - 2)) && ckh->lg_curbuckets
		    > ckh->lg_minbuckets) {
			/* Ignore error due to OOM. */
			ckh_shrink(tsd, ckh);
		}

		return (false);
	}

	return (true);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %r8, 0x10(%rsp)
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, 0x8(%rsp)
leaq 0x20(%rsp), %rbp
movq %rdx, %rdi
movq %rbp, %rsi
callq *0x18(%r14)
movb 0x14(%r14), %cl
pushq $-0x1
popq %rbx
shlq %cl, %rbx
notq %rbx
andq (%rbp), %rbx
leaq (,%rbx,4), %rbp
shlq $0x6, %rbx
xorl %r15d, %r15d
movq 0x28(%r14), %rax
movq (%rax,%rbx), %rsi
testq %rsi, %rsi
je 0x11ece
movq %r13, %rdi
callq *0x20(%r14)
testb %al, %al
jne 0x11ee0
incq %r15
addq $0x10, %rbx
cmpq $0x4, %r15
jne 0x11eb6
pushq $-0x1
popq %rbx
jmp 0x11ee6
addq %r15, %rbp
movq %rbp, %rbx
cmpq $-0x1, %rbx
jne 0x11f3d
movb 0x14(%r14), %cl
pushq $-0x1
popq %rbx
shlq %cl, %rbx
notq %rbx
andq 0x28(%rsp), %rbx
leaq (,%rbx,4), %rbp
shlq $0x6, %rbx
xorl %r15d, %r15d
movq 0x28(%r14), %rax
movq (%rax,%rbx), %rsi
testq %rsi, %rsi
je 0x11f25
movq %r13, %rdi
callq *0x20(%r14)
testb %al, %al
jne 0x11f37
incq %r15
addq $0x10, %rbx
cmpq $0x4, %r15
jne 0x11f0d
pushq $-0x1
popq %rbx
jmp 0x11f3d
addq %r15, %rbp
movq %rbp, %rbx
cmpq $-0x1, %rbx
je 0x123cd
testq %r12, %r12
je 0x11f5f
movq 0x28(%r14), %rax
movq %rbx, %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq %rax, (%r12)
movq 0x10(%rsp), %rdx
testq %rdx, %rdx
je 0x11f7c
movq 0x28(%r14), %rax
movq %rbx, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %rax
movq %rax, (%rdx)
movq 0x28(%r14), %rax
movq %rbx, %rcx
shlq $0x4, %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rcx)
movq 0x8(%r14), %rax
decq %rax
movq %rax, 0x8(%r14)
movl 0x14(%r14), %r13d
movl %r13d, %ecx
shrq %cl, %rax
testq %rax, %rax
jne 0x123cd
cmpl 0x10(%r14), %r13d
jbe 0x123cd
leal 0x1(%r13), %eax
pushq $0x10
popq %rdx
movl %eax, %ecx
shlq %cl, %rdx
pushq $0x7
popq %rsi
cmpq $0x3800, %rdx           # imm = 0x3800
ja 0x1200e
leal 0x3f(%rdx), %edi
andl $0x7fc0, %edi           # imm = 0x7FC0
cmpl $0x1000, %edi           # imm = 0x1000
ja 0x1242c
leaq -0x1(%rdi), %rcx
shrq $0x3, %rcx
leaq 0x29dce(%rip), %rdi     # 0x3bdc0
movzbl (%rdi,%rcx), %ecx
leaq 0x29643(%rip), %rdi     # 0x3b640
movq (%rdi,%rcx,8), %r12
cmpq $0x4000, %r12           # imm = 0x4000
jb 0x120fb
leaq 0x3af8b(%rip), %rcx     # 0x4cfa0
leaq 0x3b0ac(%rip), %rdi     # 0x4d0c8
movq (%rdi), %rdi
pushq $-0x41
popq %r8
movabsq $0x7000000000000000, %r10 # imm = 0x7000000000000000
pushq $0x20
popq %r9
cmpq %rdx, (%rcx)
jb 0x120a0
cmpq $0x41, %rdi
jb 0x120a0
movl $0x4000, %r12d          # imm = 0x4000
cmpq $0x4001, %rdx           # imm = 0x4001
jb 0x12085
cmpq %r10, %rdx
ja 0x12504
movq %r9, %r8
movl %eax, %ecx
shlq %cl, %r8
decq %r8
bsrq %r8, %r8
movl %r8d, %ecx
addb $-0x3, %cl
pushq $-0x1
popq %r12
shlq %cl, %r12
cmpl $0x6, %r8d
notq %r12
cmovbq %rsi, %r12
leaq (%r12,%rdx), %rcx
notq %r12
andq %rcx, %r12
leaq 0x1000(%r12), %rcx
leaq 0x3af3c(%rip), %r11     # 0x4cfd0
movq $-0x1001, %r8           # imm = 0xEFFF
cmpq (%r11), %rcx
jbe 0x120fb
leaq 0x3b029(%rip), %rcx     # 0x4d0d0
movq (%rcx), %r11
cmpq %rdx, %rdi
jae 0x120e4
cmpq $0x1000, %rdx           # imm = 0x1000
ja 0x1250c
leaq -0x1(%rdx), %rax
shrq $0x3, %rax
leaq 0x29cf5(%rip), %rcx     # 0x3bdc0
movzbl (%rcx,%rax), %eax
leaq 0x2956a(%rip), %rcx     # 0x3b640
movq (%rcx,%rax,8), %rdi
cmpq %rdx, %rdi
jae 0x120e4
xorl %r12d, %r12d
jmp 0x120fb
subq %r11, %r8
orq %r11, %r8
addq $0x1000, %r8            # imm = 0x1000
xorl %r12d, %r12d
cmpq %rdi, %r8
cmovaeq %rdi, %r12
movabsq $-0x7000000000000001, %rax # imm = 0x8FFFFFFFFFFFFFFF
leaq (%r12,%rax), %rcx
incq %rax
cmpq %rax, %rcx
jb 0x123cd
movq 0x8(%rsp), %r15
movq 0x28(%r15), %rsi
testq %rsi, %rsi
je 0x123e3
pushq $0x40
popq %rcx
pushq $0x1
popq %r8
movq %r15, %rdi
movq %r12, %rdx
xorl %r9d, %r9d
callq 0xd4f0
testq %rax, %rax
je 0x123cd
movq %rax, %rbp
movq %r13, 0x10(%rsp)
movq %rax, %r13
leaq 0x3af79(%rip), %r15     # 0x4d0d0
movq (%r15), %rax
notq %rax
andq %rbp, %rax
cmpq %rax, %rbp
je 0x123f6
movq (%rax), %r12
movq (%r15), %rax
notq %rax
andq %rbp, %rax
subq %rax, %rbp
je 0x12406
shrq $0xc, %rbp
leaq 0x3ae37(%rip), %rcx     # 0x4cfc0
subq (%rcx), %rbp
movq 0x78(%rax,%rbp,8), %rax
movl %eax, %ecx
shrl $0x5, %ecx
movl $0xff, %edx
andl %edx, %ecx
cmpl %edx, %ecx
je 0x12418
movl %ecx, %eax
leaq 0x29492(%rip), %rcx     # 0x3b640
movq (%rcx,%rax,8), %rax
lock
xaddq %rax, 0x90(%r12)
movq 0x28(%r14), %rcx
movq %r13, 0x28(%r14)
movq 0x10(%rsp), %rax
decl %eax
movl %eax, 0x14(%r14)
movq 0x8(%r14), %r12
andq $0x0, 0x8(%r14)
testq %r12, %r12
setne %r13b
movq %rcx, 0x18(%rsp)
je 0x1222e
leaq 0x8(%rcx), %r15
xorl %ebp, %ebp
movq -0x8(%r15), %rax
testq %rax, %rax
je 0x1221b
movq %rax, 0x20(%rsp)
movq (%r15), %rax
movq %rax, 0x30(%rsp)
movq %r14, %rdi
leaq 0x20(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x378f8
testb %al, %al
jne 0x1222a
incq %rbp
addq $0x10, %r15
cmpq %r12, %rbp
setb %r13b
jb 0x121ec
jmp 0x1222e
movq %r12, 0x8(%r14)
testb $0x1, %r13b
je 0x12305
movq 0x28(%r14), %r13
leaq 0x3ae8d(%rip), %r15     # 0x4d0d0
movq (%r15), %rax
notq %rax
andq %r13, %rax
cmpq %rax, %r13
je 0x1245f
movq (%rax), %rbp
movq (%r15), %rax
notq %rax
andq %r13, %rax
movq %r13, %rcx
subq %rax, %rcx
je 0x1246f
shrq $0xc, %rcx
leaq 0x3ad48(%rip), %rdx     # 0x4cfc0
subq (%rdx), %rcx
movq 0x78(%rax,%rcx,8), %rax
movl %eax, %ecx
shrl $0x5, %ecx
movl $0xff, %edx
andl %edx, %ecx
cmpl %edx, %ecx
je 0x124c8
movl %ecx, %eax
leaq 0x293a3(%rip), %rcx     # 0x3b640
movq (%rcx,%rax,8), %rax
negq %rax
lock
xaddq %rax, 0x90(%rbp)
movq (%r15), %rdx
notq %rdx
andq %r13, %rdx
movq %r13, %r8
subq %rdx, %r8
je 0x12481
shrq $0xc, %r8
leaq 0x3acf3(%rip), %rax     # 0x4cfc0
movq %r8, %rcx
subq (%rax), %rcx
testb $0x2, 0x78(%rdx,%rcx,8)
movq (%rdx), %rsi
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %r15
movq %r13, %rcx
jne 0x124dc
callq 0xdf6b
movq %r15, 0x28(%r14)
movq 0x10(%rsp), %rax
movl %eax, 0x14(%r14)
jmp 0x123cd
leaq 0x3adc4(%rip), %rax     # 0x4d0d0
movq (%rax), %rax
notq %rax
movq 0x18(%rsp), %r12
andq %r12, %rax
cmpq %rax, %r12
movq 0x8(%rsp), %r15
je 0x12498
movq (%rax), %r14
leaq 0x3ad9e(%rip), %rax     # 0x4d0d0
movq (%rax), %rax
notq %rax
andq %r12, %rax
movq %r12, %rcx
subq %rax, %rcx
je 0x124a8
shrq $0xc, %rcx
leaq 0x3ac6e(%rip), %rdx     # 0x4cfc0
subq (%rdx), %rcx
movq 0x78(%rax,%rcx,8), %rax
movl %eax, %ecx
shrl $0x5, %ecx
movl $0xff, %edx
andl %edx, %ecx
cmpl %edx, %ecx
je 0x124e6
movl %ecx, %eax
leaq 0x292c9(%rip), %rcx     # 0x3b640
movq (%rcx,%rax,8), %rax
negq %rax
lock
xaddq %rax, 0x90(%r14)
leaq 0x3ad42(%rip), %rax     # 0x4d0d0
movq (%rax), %rdx
notq %rdx
andq %r12, %rdx
movq %r12, %r8
subq %rdx, %r8
je 0x124b8
shrq $0xc, %r8
leaq 0x3ac12(%rip), %rax     # 0x4cfc0
movq %r8, %rcx
subq (%rax), %rcx
testb $0x2, 0x78(%rdx,%rcx,8)
movq (%rdx), %rsi
movq %r15, %rdi
movq %r12, %rcx
jne 0x124fa
callq 0xdf6b
cmpq $-0x1, %rbx
sete %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x1
popq %rsi
movq %r15, %rdi
callq 0x1b0d1
movq %rax, %rsi
jmp 0x12127
movq %r13, %rdi
callq 0x2e39f
movq %rax, %r12
jmp 0x1216c
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x2e4e2
jmp 0x121b2
shrq %rax
andq $-0x1000, %rax          # imm = 0xF000
addq $-0x1000, %rax          # imm = 0xF000
jmp 0x121b2
leaq -0x1(,%rdi,2), %rcx
bsrq %rcx, %r8
movl %r8d, %ecx
addb $-0x3, %cl
pushq $-0x1
popq %r12
shlq %cl, %r12
cmpl $0x6, %r8d
notq %r12
cmovbq %rsi, %r12
leaq (%r12,%rdi), %rcx
notq %r12
andq %rcx, %r12
jmp 0x12001
movq %r13, %rdi
callq 0x2e39f
movq %rax, %rbp
jmp 0x12258
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x2e4e2
jmp 0x122a1
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x11227
movq 0x18(%rsp), %r15
jmp 0x122f3
movq %r12, %rdi
callq 0x2e39f
movq %rax, %r14
jmp 0x1232b
movq %r15, %rdi
movq %r12, %rsi
callq 0x2e4e2
jmp 0x1237b
movq %r15, %rdi
movq %r12, %rsi
callq 0x11227
jmp 0x123cd
shrq %rax
andq $-0x1000, %rax          # imm = 0xF000
addq $-0x1000, %rax          # imm = 0xF000
jmp 0x122a1
callq 0xdfd3
jmp 0x122f3
shrq %rax
andq $-0x1000, %rax          # imm = 0xF000
addq $-0x1000, %rax          # imm = 0xF000
jmp 0x1237b
callq 0xdfd3
jmp 0x123cd
xorl %r12d, %r12d
jmp 0x12085
cmpq %r10, %rdx
ja 0x12541
movl %eax, %ecx
shlq %cl, %r9
decq %r9
bsrq %r9, %rax
movl %eax, %ecx
addb $-0x3, %cl
pushq $-0x1
popq %rdi
shlq %cl, %rdi
cmpl $0x6, %eax
notq %rdi
cmovbq %rsi, %rdi
leaq (%rdi,%rdx), %rax
notq %rdi
andq %rax, %rdi
jmp 0x120da
xorl %edi, %edi
jmp 0x120da