// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/jemalloc/src/ctl.c
// Function: arena_i_dss_ctl
static int
arena_i_dss_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp,
    void *newp, size_t newlen)
{
	int ret;
	const char *dss = NULL;
	unsigned arena_ind = mib[1];
	dss_prec_t dss_prec_old = dss_prec_limit;
	dss_prec_t dss_prec = dss_prec_limit;

	malloc_mutex_lock(&ctl_mtx);
	WRITE(dss, const char *);
	if (dss != NULL) {
		int i;
		bool match = false;

		for (i = 0; i < dss_prec_limit; i++) {
			if (strcmp(dss_prec_names[i], dss) == 0) {
				dss_prec = i;
				match = true;
				break;
			}
		}

		if (!match) {
			ret = EINVAL;
			goto label_return;
		}
	}

	if (arena_ind < ctl_stats.narenas) {
		arena_t *arena = arena_get(tsd_fetch(), arena_ind, false, true);
		if (arena == NULL || (dss_prec != dss_prec_limit &&
		    arena_dss_prec_set(arena, dss_prec))) {
			ret = EFAULT;
			goto label_return;
		}
		dss_prec_old = arena_dss_prec_get(arena);
	} else {
		if (dss_prec != dss_prec_limit &&
		    chunk_dss_prec_set(dss_prec)) {
			ret = EFAULT;
			goto label_return;
		}
		dss_prec_old = chunk_dss_prec_get();
	}

	dss = dss_prec_names[dss_prec_old];
	READ(dss, const char *);

	ret = 0;
label_return:
	malloc_mutex_unlock(&ctl_mtx);
	return (ret);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, %r12
movq %r8, %rbx
movq %rcx, %r14
movq %rdx, %r13
movq 0x8(%rdi), %r15
leaq 0x2a09c(%rip), %rdi     # 0x5b708
callq 0x106d0
testq %rbx, %rbx
je 0x316bf
movl $0x16, %ebp
cmpq $0x8, %r12
jne 0x317cc
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x316bf
movq %r13, 0x8(%rsp)
xorl %r12d, %r12d
leaq 0x28d04(%rip), %r13     # 0x5a3a0
movq (%r13,%r12,8), %rdi
movq %rbx, %rsi
callq 0x10380
testl %eax, %eax
je 0x31750
incq %r12
cmpq $0x3, %r12
jne 0x3169c
jmp 0x317cc
movl $0x3, %r12d
cmpl %r15d, 0x2a08c(%rip)    # 0x5b758
jbe 0x31779
movq %r13, %rbp
movq 0x26914(%rip), %rbx     # 0x57ff0
movq %fs:0x0, %r13
addq %rbx, %r13
movl %fs:(%rbx), %eax
testl %eax, %eax
je 0x31809
cmpl $0x2, %eax
je 0x31812
movq %fs:0x30(%rbx), %rax
testq %rax, %rax
je 0x317e9
cmpl %r15d, %fs:0x38(%rbx)
jbe 0x317e9
movl %r15d, %ecx
movq (%rax,%rcx,8), %rbx
testq %rbx, %rbx
je 0x317e9
cmpl $0x3, %r12d
movq %rbp, %r13
je 0x31746
movq %rbx, %rdi
movl %r12d, %esi
callq 0x2a8b8
movl $0xe, %ebp
testb %al, %al
jne 0x317cc
movq %rbx, %rdi
callq 0x2a88d
jmp 0x3177e
cmpl %r15d, 0x2a001(%rip)    # 0x5b758
jbe 0x31763
movq 0x8(%rsp), %r13
jmp 0x316d2
movl %r12d, %edi
callq 0x2f215
movl $0xe, %ebp
testb %al, %al
movq 0x8(%rsp), %r13
jne 0x317cc
callq 0x2f1ec
movl %eax, %eax
leaq 0x28c19(%rip), %rcx     # 0x5a3a0
movq (%rcx,%rax,8), %rax
movq %rax, 0x10(%rsp)
testq %r13, %r13
sete %cl
testq %r14, %r14
sete %dl
xorl %ebp, %ebp
orb %cl, %dl
jne 0x317cc
movq (%r14), %rcx
cmpq $0x8, %rcx
jne 0x317b1
movq %rax, (%r13)
jmp 0x317cc
movl $0x8, %edx
cmovbq %rcx, %rdx
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x10400
movl $0x16, %ebp
leaq 0x29f35(%rip), %rdi     # 0x5b708
callq 0x10440
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r13, %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x21fbc
movq %rax, %rbx
testq %rax, %rax
jne 0x31725
movl $0xe, %ebp
jmp 0x317cc
movl $0x1, %fs:(%rbx)
jmp 0x31819
movl $0x3, %fs:(%rbx)
leaq 0x2a5f4(%rip), %rax     # 0x5be14
movl (%rax), %edi
movq %r13, %rsi
callq 0x106f0
testl %eax, %eax
je 0x316fc
leaq 0x16b40(%rip), %rdi     # 0x48379
callq 0x3d37c
leaq 0x28ddb(%rip), %rax     # 0x5a620
cmpb $0x1, (%rax)
jne 0x316fc
callq 0x10090