// File: /workspace/github_c_makefile_star2_O2/gplessis[P]dotdeb-redis/deps/jemalloc/src/arena.c
// Function: je_arena_palloc
void *
arena_palloc(tsd_t *tsd, arena_t *arena, size_t usize, size_t alignment,
    bool zero, tcache_t *tcache)
{
	void *ret;

	if (usize <= SMALL_MAXCLASS && (alignment < PAGE || (alignment == PAGE
	    && (usize & PAGE_MASK) == 0))) {
		/* Small; alignment doesn't require special run placement. */
		ret = arena_malloc(tsd, arena, usize, zero, tcache);
	} else if (usize <= large_maxclass && alignment <= PAGE) {
		/*
		 * Large; alignment doesn't require special run placement.
		 * However, the cached pointer may be at a random offset from
		 * the base of the run, so do some bit manipulation to retrieve
		 * the base.
		 */
		ret = arena_malloc(tsd, arena, usize, zero, tcache);
		if (config_cache_oblivious)
			ret = (void *)((uintptr_t)ret & ~PAGE_MASK);
	} else {
		if (likely(usize <= large_maxclass)) {
			ret = arena_palloc_large(tsd, arena, usize, alignment,
			    zero);
		} else if (likely(alignment <= chunksize))
			ret = huge_malloc(tsd, arena, usize, zero, tcache);
		else {
			ret = huge_palloc(tsd, arena, usize, alignment, zero,
			    tcache);
		}
	}
	return (ret);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %r14
movl %r8d, (%rsp)
movq %rcx, %r13
movq %rdx, %r12
movq %rdi, %r15
cmpq $0x3800, %rdx           # imm = 0x3800
ja 0x23a7b
cmpq $0x1000, %r13           # imm = 0x1000
jb 0x239a2
movq %r13, %rax
xorq $0x1000, %rax           # imm = 0x1000
movl %r12d, %ecx
andl $0xfff, %ecx            # imm = 0xFFF
orq %rax, %rcx
jne 0x23a7b
movq %r15, %rdi
callq 0x285b4
testq %rax, %rax
je 0x23c5a
movq %rax, %rbp
testq %r14, %r14
je 0x23ea7
cmpq $0x1000, %r12           # imm = 0x1000
ja 0x23ec4
decq %r12
shrq $0x3, %r12
leaq 0x1f126(%rip), %rax     # 0x42b00
movzbl (%rax,%r12), %eax
movl %eax, %r12d
movq %r12, %rax
shlq $0x5, %rax
leaq (%r14,%rax), %rbx
addq $0x20, %rbx
leaq 0x1e988(%rip), %rax     # 0x42380
movq (%rax,%r12,8), %rdx
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x23ed1
decl %eax
movl %eax, 0x10(%rbx)
cmpl 0x8(%rbx), %eax
jl 0x23f0f
movq 0x18(%rbx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %r13
testq %r13, %r13
je 0x23ed5
leaq 0x32bf2(%rip), %rax     # 0x56621
movb (%rax), %al
cmpb $0x0, (%rsp)
jne 0x23f00
testb %al, %al
jne 0x23f17
leaq 0x32be9(%rip), %rax     # 0x56633
cmpb $0x1, (%rax)
je 0x23f08
incq (%rbx)
movl 0x18(%r14), %eax
incl %eax
movl %eax, 0x18(%r14)
cmpl $0xd3, %eax
jne 0x23e95
movq %r15, %rdi
movq %r14, %rsi
callq 0x36f85
jmp 0x23e95
movq 0x33abe(%rip), %rax     # 0x57540
cmpq %r12, %rax
setb %cl
cmpq $0x1001, %r13           # imm = 0x1001
setae %dl
orb %cl, %dl
jne 0x23b83
movq %r15, %rdi
callq 0x285b4
testq %rax, %rax
je 0x24067
movq %rax, %rbx
cmpq $0x3800, %r12           # imm = 0x3800
ja 0x23f6e
testq %r14, %r14
je 0x2400a
cmpq $0x1000, %r12           # imm = 0x1000
ja 0x2402e
decq %r12
shrq $0x3, %r12
leaq 0x1f021(%rip), %rax     # 0x42b00
movzbl (%rax,%r12), %eax
movl %eax, %ebp
movq %rbp, %rax
shlq $0x5, %rax
leaq (%r14,%rax), %r12
addq $0x20, %r12
leaq 0x1e884(%rip), %rax     # 0x42380
movq (%rax,%rbp,8), %rdx
movl 0x10(%r12), %eax
testl %eax, %eax
je 0x2403b
decl %eax
movl %eax, 0x10(%r12)
cmpl 0x8(%r12), %eax
jl 0x2407e
movq 0x18(%r12), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %r13
testq %r13, %r13
je 0x24041
leaq 0x32ae7(%rip), %rax     # 0x56621
movb (%rax), %al
cmpb $0x0, (%rsp)
jne 0x2406f
testb %al, %al
jne 0x24088
leaq 0x32ade(%rip), %rax     # 0x56633
cmpb $0x1, (%rax)
je 0x24077
incq (%r12)
movl 0x18(%r14), %eax
incl %eax
movl %eax, 0x18(%r14)
cmpl $0xd3, %eax
je 0x2401e
andq $-0x1000, %r13          # imm = 0xF000
jmp 0x23e95
cmpq %r12, %rax
jb 0x23f3e
movq %r15, %rdi
callq 0x285b4
testq %rax, %rax
je 0x23c5a
movq %rax, %r15
addq $0xfff, %r13            # imm = 0xFFF
andq $-0x1000, %r13          # imm = 0xF000
leaq (%r12,%r13), %r14
movq %rax, %rbx
addq $0x8, %rbx
movq %rbx, %rdi
callq 0x106d0
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x238de
testq %rax, %rax
je 0x23c52
movq %rax, %rbp
movq %rbx, 0x10(%rsp)
leaq 0x33ace(%rip), %rax     # 0x576b0
movq (%rax), %rbx
notq %rbx
leaq -0x10(%rbp), %r9
movq %r9, %r8
andq %rbx, %r8
andq %rbp, %rbx
movq 0x33964(%rip), %rdi     # 0x57560
leaq (%r8,%rdi), %rax
negq %rax
addq %rbp, %rax
addq $-0x10, %rax
pushq $0x60
popq %rcx
xorl %edx, %edx
divq %rcx
movq 0x3393f(%rip), %rsi     # 0x57558
leaq (%rax,%rsi), %rcx
movq %rcx, %rdx
shlq $0xc, %rdx
addq %r8, %rdx
leaq (%rdx,%r13), %r8
decq %r8
negq %r13
andq %r8, %r13
movq %r13, %r8
subq %rdx, %r8
subq %r8, %r14
movq %r14, %r8
subq %r12, %r8
subq %rdx, %r13
jne 0x23c62
movq %r9, 0x8(%rsp)
jmp 0x23d30
movq %rbx, %rdi
callq 0x10440
xorl %r13d, %r13d
jmp 0x23e95
movq %r13, %rdx
shrq $0xc, %rdx
addq %rcx, %rdx
addq %rbx, %rdi
movq %r8, 0x20(%rsp)
imulq $0x60, %rdx, %r8
addq %rdi, %r8
movq %rsi, %rdi
negq %rdi
imulq $0x60, %rdi, %rdi
leaq (%r8,%rdi), %r9
movq %r9, 0x8(%rsp)
addq %r8, %rdi
addq $0x10, %rdi
movq %rdi, 0x18(%rsp)
movq 0x68(%rbx,%rax,8), %r9
movl %r9d, %eax
andl $0x10, %eax
movl %r9d, %r8d
andl $0x4, %r8d
xorl %edi, %edi
testb $0x14, %r9b
sete %dil
shll $0x3, %edi
notq %rsi
addq %rdx, %rsi
movl 0x68(%rbx,%rsi,8), %r9d
andl %edi, %r9d
orq %rax, %r9
movl $0x1fe3, %r10d          # imm = 0x1FE3
orq %r10, %r9
movq %r9, 0x68(%rbx,%rsi,8)
subq 0x33879(%rip), %rcx     # 0x57558
movl 0x68(%rbx,%rcx,8), %esi
andl %edi, %esi
addq %r13, %r13
orq %rax, %r13
orq %r10, %r13
orq %rsi, %r13
movq %r13, 0x68(%rbx,%rcx,8)
subq 0x3385b(%rip), %rdx     # 0x57558
andl 0x68(%rbx,%rdx,8), %edi
leaq (%r14,%r14), %rcx
orq %rax, %rcx
orq %r10, %rcx
orq %rdi, %rcx
movq %rcx, 0x68(%rbx,%rdx,8)
shrl $0x2, %r8d
movq %r15, %rdi
movq %rbp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x2761e
movq 0x20(%rsp), %r8
movq 0x18(%rsp), %rbp
leaq 0x1000(%r12), %r13
cmpq $0x1000, %r8            # imm = 0x1000
je 0x23d58
movq %r15, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
movq %r14, %rcx
movq %r13, %r8
xorl %r9d, %r9d
callq 0x285ca
movl (%rsp), %r14d
movzbl %r14b, %r8d
movq %r15, %rdi
movq %rbp, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x26d10
movq 0x337e9(%rip), %rcx     # 0x57560
testb %al, %al
je 0x23dc9
leaq -0x10(%rbp), %rax
leaq 0x3392a(%rip), %rdx     # 0x576b0
andq (%rdx), %rax
subq %rcx, %rax
xorl %r13d, %r13d
xorl %edx, %edx
pushq $0x60
popq %rcx
divq %rcx
movl 0x68(%rbx,%rax,8), %r8d
movl %r8d, %edx
andl $0x10, %edx
shrl $0x4, %edx
andl $0x4, %r8d
shrl $0x2, %r8d
movq %r15, %rdi
movq %rbp, %rsi
xorl %ecx, %ecx
callq 0x2761e
movq 0x10(%rsp), %rdi
callq 0x10440
jmp 0x23e95
leaq 0x338e0(%rip), %rax     # 0x576b0
movq (%rax), %rbx
notq %rbx
movq 0x8(%rsp), %rax
andq %rax, %rbx
addq %rbx, %rcx
subq %rcx, %rax
xorl %edx, %edx
pushq $0x60
popq %rcx
divq %rcx
movq %rax, %r13
addq 0x33762(%rip), %r13     # 0x57558
shlq $0xc, %r13
cmpq $0x1000, %r12           # imm = 0x1000
ja 0x240c6
leaq -0x1(%r12), %rax
shrq $0x3, %rax
leaq 0x1ece9(%rip), %rcx     # 0x42b00
movzbl (%rcx,%rax), %eax
addq %rbx, %r13
incq 0x78(%r15)
addl $-0x27, %eax
movq %r12, %xmm0
shufpd $0x2, 0x1f0ad(%rip), %xmm0 # xmm0 = xmm0[0],mem[1]
movdqu 0x60(%r15), %xmm1
paddq %xmm1, %xmm0
movdqu %xmm0, 0x60(%r15)
movq 0x98(%r15), %rcx
shlq $0x5, %rax
incq (%rcx,%rax)
movdqu 0x10(%rcx,%rax), %xmm0
pcmpeqd %xmm1, %xmm1
psubq %xmm1, %xmm0
movdqu %xmm0, 0x10(%rcx,%rax)
movq 0x10(%rsp), %rdi
callq 0x10440
testb %r14b, %r14b
jne 0x23e95
leaq 0x327a5(%rip), %rax     # 0x56621
cmpb $0x1, (%rax)
je 0x240d3
leaq 0x327a7(%rip), %rax     # 0x56633
cmpb $0x1, (%rax)
je 0x240dd
movq %r13, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movzbl (%rsp), %edx
movq %rbp, %rdi
movq %r12, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2351e
movq %r12, %rdi
callq 0x284a4
jmp 0x239df
orl $-0x1, 0x8(%rbx)
movq %r15, %rdi
movq %rbp, %rsi
movq %rdx, %r13
movq %r14, %rdx
movq %rbx, %rcx
movl %r12d, %r8d
callq 0x37313
movq %r13, %rdx
movq %rax, %r13
testq %rax, %rax
jne 0x23a28
jmp 0x23c5a
testb %al, %al
jne 0x240f8
movq %r13, %rdi
xorl %esi, %esi
jmp 0x23f34
movl %eax, 0x8(%rbx)
jmp 0x23a15
imulq $0x60, %r12, %rax
leaq 0x3277e(%rip), %rcx     # 0x566a0
movq %r13, %rdi
subq 0x8(%rax,%rcx), %rdi
movq 0x10(%rax,%rcx), %rdx
movl $0xa5, %esi
callq 0x10270
jmp 0x23a53
leaq 0x33763(%rip), %rax     # 0x576a8
cmpq %r13, (%rax)
jb 0x24144
movzbl (%rsp), %ecx
movq %r15, %rdi
movq %r12, %rdx
movq %r14, %r8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2fd7c
cmpq %r12, 0x335cb(%rip)     # 0x57540
jb 0x24168
testq %r14, %r14
je 0x240af
leaq 0x33e55(%rip), %rax     # 0x57de0
cmpq %r12, (%rax)
jb 0x240af
movq %r12, %rdi
callq 0x284a4
movl %eax, %eax
leaq 0x1e3db(%rip), %rcx     # 0x42380
movq (%rcx,%rax,8), %rdx
shlq $0x5, %rax
leaq (%r14,%rax), %r12
addq $0x20, %r12
movl 0x10(%r12), %eax
testl %eax, %eax
je 0x241ce
decl %eax
movl %eax, 0x10(%r12)
cmpl 0x8(%r12), %eax
jl 0x241f6
movq 0x18(%r12), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %r13
testq %r13, %r13
je 0x241d4
cmpb $0x0, (%rsp)
jne 0x24077
leaq 0x32628(%rip), %rax     # 0x56621
cmpb $0x1, (%rax)
jne 0x23b4e
movq %r13, %rdi
jmp 0x240a0
movzbl (%rsp), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2351e
jmp 0x240be
movq %r15, %rdi
movq %r14, %rsi
callq 0x36f85
jmp 0x23b77
movq %r12, %rdi
callq 0x284a4
jmp 0x23ae4
orl $-0x1, 0x8(%r12)
movq %r15, %rdi
movq %rbx, %rsi
movq %rdx, %rbx
movq %r14, %rdx
movq %r12, %rcx
movl %ebp, %r8d
callq 0x37313
movq %rbx, %rdx
movq %rax, %r13
testq %rax, %rax
jne 0x23b33
xorl %r13d, %r13d
jmp 0x23b77
testb %al, %al
jne 0x24182
movq %r13, %rdi
xorl %esi, %esi
jmp 0x240a5
movl %eax, 0x8(%r12)
jmp 0x23b1f
imulq $0x60, %rbp, %rax
leaq 0x3260d(%rip), %rcx     # 0x566a0
movq %r13, %rdi
subq 0x8(%rax,%rcx), %rdi
movq 0x10(%rax,%rcx), %rdx
movl $0xa5, %esi
callq 0x10270
jmp 0x23b5e
movzbl (%rsp), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x236e4
movq %rax, %r13
jmp 0x23b77
movq %r12, %rdi
callq 0x284a4
jmp 0x23e1b
movq %r13, %rdi
movl $0xa5, %esi
jmp 0x240e2
movq %r13, %rdi
xorl %esi, %esi
movq %r12, %rdx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x10270
imulq $0x60, %r12, %rbp
leaq 0x3259d(%rip), %rax     # 0x566a0
movq 0x8(%rbp,%rax), %r12
movq %r13, %rdi
subq %r12, %rdi
movl $0xa5, %esi
movq %rdx, (%rsp)
movq %r12, %rdx
callq 0x10270
leaq 0x3257a(%rip), %rax     # 0x566a0
movq (%rbp,%rax), %rdi
addq %r13, %rdi
movl $0xa5, %esi
movq %r12, %rdx
callq 0x10270
movq (%rsp), %rdx
jmp 0x23f08
movzbl (%rsp), %r8d
movq %r15, %rdi
movq %r12, %rdx
movq %r13, %rcx
movq %r14, %r9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2fe11
movzbl (%rsp), %ecx
movq %r15, %rdi
movq %rbx, %rsi
movq %r12, %rdx
movq %r14, %r8
callq 0x2fd7c
jmp 0x240be
imulq $0x60, %rbp, %rbp
leaq 0x32513(%rip), %rax     # 0x566a0
movq 0x8(%rbp,%rax), %rbx
movq %r13, %rdi
subq %rbx, %rdi
movl $0xa5, %esi
movq %rdx, (%rsp)
movq %rbx, %rdx
callq 0x10270
leaq 0x324f0(%rip), %rax     # 0x566a0
movq (%rbp,%rax), %rdi
addq %r13, %rdi
movl $0xa5, %esi
movq %rbx, %rdx
callq 0x10270
movq (%rsp), %rdx
jmp 0x24077
orl $-0x1, 0x8(%r12)
movzbl (%rsp), %eax
movq %rbx, %rdi
movq %rdx, %rsi
movl %eax, %edx
callq 0x236e4
movq %rax, %r13
testq %rax, %rax
jne 0x23b62
jmp 0x24067
movl %eax, 0x8(%r12)
jmp 0x23fd4