// File: /workspace/github_c_makefile_star2_O1/erikdubbelboer[P]discnt/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, %r15
movq %rcx, %rbp
movq %rdx, %r13
movq %rsi, %r14
cmpq $0x3800, %rdx           # imm = 0x3800
ja 0x13f3a
cmpq $0x1000, %rbp           # imm = 0x1000
jb 0x13e5e
movq %rbp, %rax
xorq $0x1000, %rax           # imm = 0x1000
movl %r13d, %ecx
andl $0xfff, %ecx            # imm = 0xFFF
orq %rax, %rcx
jne 0x13f3a
testq %r14, %r14
jne 0x13e70
movq 0x28(%rdi), %r14
testq %r14, %r14
je 0x14662
testq %r14, %r14
je 0x14127
testq %r15, %r15
je 0x14356
cmpq $0x1000, %r13           # imm = 0x1000
ja 0x14373
decq %r13
shrq $0x3, %r13
leaq 0x45963(%rip), %rax     # 0x59800
movzbl (%rax,%r13), %eax
movl %eax, %r12d
movq %r12, %rax
shlq $0x5, %rax
leaq (%r15,%rax), %rbx
addq $0x20, %rbx
leaq 0x451c5(%rip), %rax     # 0x59080
movq (%rax,%r12,8), %r13
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x1438c
decl %eax
movl %eax, 0x10(%rbx)
cmpl 0x8(%rbx), %eax
jl 0x14414
movq 0x18(%rbx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %rbp
testq %rbp, %rbp
je 0x14397
leaq 0x6f83f(%rip), %rax     # 0x83731
movb (%rax), %al
testb %r8b, %r8b
jne 0x143c5
testb %al, %al
jne 0x1441c
leaq 0x6f837(%rip), %rax     # 0x83743
cmpb $0x1, (%rax)
je 0x1443e
incq (%rbx)
movl 0x18(%r15), %eax
incl %eax
movl %eax, 0x18(%r15)
cmpl $0xe4, %eax
jne 0x14344
movq %r15, %rsi
callq 0x4e7cd
jmp 0x14344
movq 0x705ef(%rip), %rax     # 0x84530
cmpq %r13, %rax
setb %cl
cmpq $0x1001, %rbp           # imm = 0x1001
setae %dl
orb %cl, %dl
jne 0x14041
testq %r14, %r14
jne 0x13f6b
movq 0x28(%rdi), %r14
testq %r14, %r14
je 0x1467b
testq %r14, %r14
je 0x145b3
cmpq $0x3800, %r13           # imm = 0x3800
ja 0x14486
testq %r15, %r15
je 0x14552
cmpq $0x1000, %r13           # imm = 0x1000
ja 0x14566
decq %r13
shrq $0x3, %r13
leaq 0x4585b(%rip), %rax     # 0x59800
movzbl (%rax,%r13), %eax
movl %eax, %r12d
movq %r12, %rax
shlq $0x5, %rax
leaq (%r15,%rax), %rbx
addq $0x20, %rbx
leaq 0x450bd(%rip), %rax     # 0x59080
movq (%rax,%r12,8), %r13
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x1457f
decl %eax
movl %eax, 0x10(%rbx)
cmpl 0x8(%rbx), %eax
jl 0x14609
movq 0x18(%rbx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %rbp
testq %rbp, %rbp
je 0x1458a
leaq 0x6f737(%rip), %rax     # 0x83731
movb (%rax), %al
testb %r8b, %r8b
jne 0x145ba
testb %al, %al
jne 0x14611
leaq 0x6f72f(%rip), %rax     # 0x83743
cmpb $0x1, (%rax)
je 0x14633
incq (%rbx)
movl 0x18(%r15), %eax
incl %eax
movl %eax, 0x18(%r15)
cmpl $0xe4, %eax
je 0x14545
andq $-0x1000, %rbp          # imm = 0xF000
jmp 0x14344
cmpq %r13, %rax
jb 0x14456
testq %r14, %r14
jne 0x1405c
movq 0x28(%rdi), %r14
testq %r14, %r14
je 0x14694
testq %r14, %r14
je 0x14127
movl %r8d, (%rsp)
addq $0xfff, %rbp            # imm = 0xFFF
andq $-0x1000, %rbp          # imm = 0xF000
movq %rbp, %rbx
addq %r13, %rbx
leaq 0x8(%r14), %r15
movq %r15, %rdi
callq 0x12960
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x3b615
testq %rax, %rax
je 0x1411f
movq %rax, %r12
movq %r15, 0x8(%rsp)
leaq 0x705f2(%rip), %rax     # 0x846a0
movq (%rax), %r15
notq %r15
leaq -0x10(%r12), %r9
movq %r9, %r8
andq %r15, %r8
andq %r12, %r15
movq 0x70487(%rip), %rdi     # 0x84550
leaq (%r8,%rdi), %rax
negq %rax
addq %r12, %rax
addq $-0x10, %rax
pushq $0x60
popq %rcx
xorl %edx, %edx
divq %rcx
movq 0x70462(%rip), %rsi     # 0x84548
leaq (%rax,%rsi), %rcx
movq %rcx, %rdx
shlq $0xc, %rdx
addq %r8, %rdx
leaq (%rdx,%rbp), %r8
decq %r8
negq %rbp
andq %r8, %rbp
movq %rbp, %r8
subq %rdx, %r8
subq %r8, %rbx
movq %rbx, %r8
subq %r13, %r8
subq %rdx, %rbp
jne 0x1412e
movq %r9, 0x10(%rsp)
jmp 0x141fe
movq %r15, %rdi
callq 0x125c0
xorl %ebp, %ebp
jmp 0x14344
movq %rbp, %rdx
shrq $0xc, %rdx
addq %rcx, %rdx
addq %r15, %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, 0x10(%rsp)
addq %r8, %rdi
addq $0x10, %rdi
movq %rdi, 0x18(%rsp)
movq 0x68(%r15,%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(%r15,%rsi,8), %r9d
andl %edi, %r9d
orq %rax, %r9
movl $0x1fe3, %r10d          # imm = 0x1FE3
orq %r10, %r9
movq %r9, 0x68(%r15,%rsi,8)
subq 0x7039d(%rip), %rcx     # 0x84548
movl 0x68(%r15,%rcx,8), %esi
andl %edi, %esi
addq %rbp, %rbp
orq %rax, %rbp
orq %r10, %rbp
orq %rsi, %rbp
movq %rbp, 0x68(%r15,%rcx,8)
subq 0x7037e(%rip), %rdx     # 0x84548
andl 0x68(%r15,%rdx,8), %edi
leaq (%rbx,%rbx), %rcx
orq %rax, %rcx
orq %r10, %rcx
orq %rdi, %rcx
movq %rcx, 0x68(%r15,%rdx,8)
shrl $0x2, %r8d
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3eaa3
movq 0x20(%rsp), %r8
movq 0x18(%rsp), %r12
movl (%rsp), %eax
leaq 0x1000(%r13), %rbp
cmpq $0x1000, %r8            # imm = 0x1000
je 0x1422b
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %rbp, %r8
xorl %r9d, %r9d
callq 0x3fc0e
movl (%rsp), %eax
movzbl %al, %r8d
movq %r14, %rdi
movq %r12, %rsi
movq %rbp, %rdx
xorl %ecx, %ecx
callq 0x3e02e
movq 0x7030a(%rip), %rcx     # 0x84550
testb %al, %al
je 0x14298
leaq -0x10(%r12), %rax
leaq 0x7044a(%rip), %rdx     # 0x846a0
andq (%rdx), %rax
subq %rcx, %rax
xorl %ebp, %ebp
xorl %edx, %edx
pushq $0x60
popq %rcx
divq %rcx
movl 0x68(%r15,%rax,8), %r8d
movl %r8d, %edx
andl $0x10, %edx
shrl $0x4, %edx
andl $0x4, %r8d
shrl $0x2, %r8d
movq %r14, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x3eaa3
movq 0x8(%rsp), %rdi
callq 0x125c0
jmp 0x14344
leaq 0x70401(%rip), %rax     # 0x846a0
movq (%rax), %rbx
notq %rbx
movq 0x10(%rsp), %rax
andq %rax, %rbx
addq %rbx, %rcx
subq %rcx, %rax
xorl %edx, %edx
pushq $0x60
popq %rcx
divq %rcx
movq %rax, %rbp
addq 0x70283(%rip), %rbp     # 0x84548
shlq $0xc, %rbp
cmpq $0x1000, %r13           # imm = 0x1000
ja 0x146a7
leaq -0x1(%r13), %rax
shrq $0x3, %rax
leaq 0x4551b(%rip), %rcx     # 0x59800
movzbl (%rcx,%rax), %eax
movq 0x8(%rsp), %rdi
incq 0x68(%r14)
addl $-0x24, %eax
incq 0x78(%r14)
addq %r13, 0x60(%r14)
movq 0x98(%r14), %rcx
shlq $0x5, %rax
incq (%rcx,%rax)
incq 0x10(%rcx,%rax)
addq %rbx, %rbp
incq 0x18(%rcx,%rax)
callq 0x125c0
cmpb $0x0, (%rsp)
jne 0x14344
leaq 0x6f406(%rip), %rax     # 0x83731
cmpb $0x1, (%rax)
je 0x146b4
leaq 0x6f408(%rip), %rax     # 0x83743
cmpb $0x1, (%rax)
je 0x146be
movq %rbp, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movzbl %r8b, %edx
movq %r14, %rdi
movq %r13, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3b19e
movq %rdi, %r12
movq %r13, %rdi
movl %r8d, %ebx
callq 0x3fb29
movq %r12, %rdi
movl %ebx, %r8d
jmp 0x13ea2
orl $-0x1, 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x13ee2
movq %rdi, %rbp
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movl %r8d, %r14d
movl %r12d, %r8d
callq 0x4ebc2
movq %rbp, %rdi
movl %r14d, %r8d
movq %rax, %rbp
testq %rax, %rax
jne 0x13eeb
jmp 0x14127
movq %rdi, %r14
testb %al, %al
je 0x14441
imulq $0x60, %r12, %rax
movq %rax, (%rsp)
leaq 0x6f3d5(%rip), %rcx     # 0x837b0
movq 0x8(%rax,%rcx), %r12
movq %rbp, %rdi
subq %r12, %rdi
movl $0xa5, %esi
movq %r12, %rdx
callq 0x12380
leaq 0x6f3b6(%rip), %rax     # 0x837b0
movq (%rsp), %rcx
movq (%rcx,%rax), %rdi
addq %rbp, %rdi
movl $0xa5, %esi
movq %r12, %rdx
callq 0x12380
jmp 0x14441
movl %eax, 0x8(%rbx)
jmp 0x13ed8
imulq $0x60, %r12, %rax
leaq 0x6f389(%rip), %rcx     # 0x837b0
movq %rdi, %r14
movq %rbp, %rdi
subq 0x8(%rax,%rcx), %rdi
movq 0x10(%rax,%rcx), %rdx
movl $0xa5, %esi
jmp 0x14449
movq %rdi, %r14
movq %rbp, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x12380
movq %r14, %rdi
jmp 0x13f15
leaq 0x7023b(%rip), %rax     # 0x84698
cmpq %rbp, (%rax)
jb 0x146d9
movzbl %r8b, %ecx
movq %r14, %rsi
movq %r13, %rdx
movq %r15, %r8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x48064
cmpq %r13, 0x700a3(%rip)     # 0x84530
jb 0x146fc
movq %rdi, (%rsp)
testq %r15, %r15
je 0x1464b
leaq 0x70929(%rip), %rax     # 0x84dd0
cmpq %r13, (%rax)
jb 0x1464b
movl %r8d, %r12d
movq %r13, %rdi
callq 0x3fb29
movl %eax, %eax
leaq 0x44bbc(%rip), %rcx     # 0x59080
movq (%rcx,%rax,8), %rdx
shlq $0x5, %rax
leaq (%r15,%rax), %rbx
addq $0x20, %rbx
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x1471a
decl %eax
movl %eax, 0x10(%rbx)
cmpl 0x8(%rbx), %eax
jl 0x14747
movq 0x18(%rbx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %rbp
testq %rbp, %rbp
je 0x14725
testb %r12b, %r12b
jne 0x14713
leaq 0x6f221(%rip), %rax     # 0x83731
cmpb $0x1, (%rax)
je 0x1474f
leaq 0x6f223(%rip), %rax     # 0x83743
cmpb $0x1, (%rax)
je 0x14713
incq (%rbx)
movl 0x18(%r15), %eax
incl %eax
movl %eax, 0x18(%r15)
cmpl $0xe4, %eax
jne 0x14035
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x4e7cd
jmp 0x14035
movzbl %r8b, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3b19e
jmp 0x1465a
movq %rdi, %r12
movq %r13, %rdi
movl %r8d, %ebx
callq 0x3fb29
movq %r12, %rdi
movl %ebx, %r8d
jmp 0x13faa
orl $-0x1, 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x13fea
movq %rdi, %rbp
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
movl %r8d, %r14d
movl %r12d, %r8d
callq 0x4ebc2
movq %rbp, %rdi
movl %r14d, %r8d
movq %rax, %rbp
testq %rax, %rax
jne 0x13ff3
xorl %ebp, %ebp
jmp 0x14035
movq %rdi, %r14
testb %al, %al
je 0x14636
imulq $0x60, %r12, %rax
movq %rax, (%rsp)
leaq 0x6f1e0(%rip), %rcx     # 0x837b0
movq 0x8(%rax,%rcx), %r12
movq %rbp, %rdi
subq %r12, %rdi
movl $0xa5, %esi
movq %r12, %rdx
callq 0x12380
leaq 0x6f1c1(%rip), %rax     # 0x837b0
movq (%rsp), %rcx
movq (%rcx,%rax), %rdi
addq %rbp, %rdi
movl $0xa5, %esi
movq %r12, %rdx
callq 0x12380
jmp 0x14636
movl %eax, 0x8(%rbx)
jmp 0x13fe0
imulq $0x60, %r12, %rax
leaq 0x6f194(%rip), %rcx     # 0x837b0
movq %rdi, %r14
movq %rbp, %rdi
subq 0x8(%rax,%rcx), %rdi
movq 0x10(%rax,%rcx), %rdx
movl $0xa5, %esi
jmp 0x1463e
movq %rdi, %r14
movq %rbp, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x12380
movq %r14, %rdi
jmp 0x1401d
movzbl %r8b, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3b463
movq %rax, %rbp
jmp 0x14035
movq %rdi, %r14
movl %r8d, %ebx
callq 0x34a5f
movq %r14, %rdi
movl %ebx, %r8d
movq %rax, %r14
jmp 0x13e70
movq %rdi, %r14
movl %r8d, %ebx
callq 0x34a5f
movq %r14, %rdi
movl %ebx, %r8d
movq %rax, %r14
jmp 0x13f6b
movl %r8d, %ebx
callq 0x34a5f
movl %ebx, %r8d
movq %rax, %r14
jmp 0x1405c
movq %r13, %rdi
callq 0x3fb29
jmp 0x142e9
movq %rbp, %rdi
movl $0xa5, %esi
jmp 0x146c3
movq %rbp, %rdi
xorl %esi, %esi
movq %r13, %rdx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x12380
movzbl %r8b, %r8d
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movq %r15, %r9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x14d1b
movzbl %r8b, %ecx
movq %r14, %rsi
movq %r13, %rdx
movq %r15, %r8
callq 0x48064
jmp 0x1465a
movq %rbp, %rdi
xorl %esi, %esi
jmp 0x14757
orl $-0x1, 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x144f7
movzbl %r12b, %eax
movq %r14, %rdi
movq %rdx, %rsi
movl %eax, %edx
callq 0x3b463
movq %rax, %rbp
testq %rax, %rax
jne 0x1452c
jmp 0x145b3
movl %eax, 0x8(%rbx)
jmp 0x144ed
movq %rbp, %rdi
movl $0xa5, %esi
callq 0x12380
jmp 0x14529