// File: /workspace/github_c_makefile_star2_O0/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/ctl.c
// Function: je_ctl_bymib
int
ctl_bymib(tsd_t *tsd, const size_t *mib, size_t miblen, void *oldp,
    size_t *oldlenp, void *newp, size_t newlen)
{
	int ret;
	const ctl_named_node_t *node;
	size_t i;

	if (!ctl_initialized && ctl_init(tsd_tsdn(tsd))) {
		ret = EAGAIN;
		goto label_return;
	}

	/* Iterate down the tree. */
	node = super_root_node;
	for (i = 0; i < miblen; i++) {
		assert(node);
		assert(node->nchildren > 0);
		if (ctl_named_node(node->children) != NULL) {
			/* Children are named. */
			if (node->nchildren <= (unsigned)mib[i]) {
				ret = ENOENT;
				goto label_return;
			}
			node = ctl_named_children(node, mib[i]);
		} else {
			const ctl_indexed_node_t *inode;

			/* Indexed element. */
			inode = ctl_indexed_node(node->children);
			node = inode->index(tsd_tsdn(tsd), mib, miblen, mib[i]);
			if (node == NULL) {
				ret = ENOENT;
				goto label_return;
			}
		}
	}

	/* Call the ctl function. */
	if (node && node->ctl)
		ret = node->ctl(tsd, mib, miblen, oldp, oldlenp, newp, newlen);
	else {
		/* Partial MIB. */
		ret = ENOENT;
	}

label_return:
	return(ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq 0x10(%rbp), %rax
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
testb $0x1, 0x4fd7d(%rip)     # 0xa40d8
jne 0x54380
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x53e00
testb $0x1, %al
jne 0x54374
jmp 0x54380
movl $0xb, -0x44(%rbp)
jmp 0x544a8
leaq 0x4cf69(%rip), %rax     # 0xa12f0
movq %rax, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x5445e
jmp 0x543a3
jmp 0x543a5
jmp 0x543a7
jmp 0x543a9
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x542a0
cmpq $0x0, %rax
je 0x543fa
movq -0x50(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl %ecx, %eax
ja 0x543df
movl $0x2, -0x44(%rbp)
jmp 0x544a8
movq -0x50(%rbp), %rdi
movq -0x20(%rbp), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x544c0
movq %rax, -0x50(%rbp)
jmp 0x5444b
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x54510
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movq %rcx, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq (%rcx,%r8,8), %rcx
callq *%rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0x54449
movl $0x2, -0x44(%rbp)
jmp 0x544a8
jmp 0x5444b
jmp 0x5444d
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x54393
cmpq $0x0, -0x50(%rbp)
je 0x5449f
movq -0x50(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x5449f
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq 0x10(%rbp), %r10
movq %r10, (%rsp)
callq *%rax
movl %eax, -0x44(%rbp)
jmp 0x544a6
movl $0x2, -0x44(%rbp)
jmp 0x544a8
movl -0x44(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)