// File: /workspace/github_c_makefile_star2_O2/gplessis[P]dotdeb-redis/deps/jemalloc/src/arena.c
// Function: je_arena_boot
bool
arena_boot(void)
{
	unsigned i;

	arena_lg_dirty_mult_default_set(opt_lg_dirty_mult);

	/*
	 * Compute the header size such that it is large enough to contain the
	 * page map.  The page map is biased to omit entries for the header
	 * itself, so some iteration is necessary to compute the map bias.
	 *
	 * 1) Compute safe header_size and map_bias values that include enough
	 *    space for an unbiased page map.
	 * 2) Refine map_bias based on (1) to omit the header pages in the page
	 *    map.  The resulting map_bias may be one too small.
	 * 3) Refine map_bias based on (2).  The result will be >= the result
	 *    from (2), and will always be correct.
	 */
	map_bias = 0;
	for (i = 0; i < 3; i++) {
		size_t header_size = offsetof(arena_chunk_t, map_bits) +
		    ((sizeof(arena_chunk_map_bits_t) +
		    sizeof(arena_chunk_map_misc_t)) * (chunk_npages-map_bias));
		map_bias = (header_size + PAGE_MASK) >> LG_PAGE;
	}
	assert(map_bias > 0);

	map_misc_offset = offsetof(arena_chunk_t, map_bits) +
	    sizeof(arena_chunk_map_bits_t) * (chunk_npages-map_bias);

	arena_maxrun = chunksize - (map_bias << LG_PAGE);
	assert(arena_maxrun > 0);
	large_maxclass = index2size(size2index(chunksize)-1);
	if (large_maxclass > arena_maxrun) {
		/*
		 * For small chunk sizes it's possible for there to be fewer
		 * non-header pages available than are necessary to serve the
		 * size classes just below chunksize.
		 */
		large_maxclass = arena_maxrun;
	}
	assert(large_maxclass > 0);
	nlclasses = size2index(large_maxclass) - size2index(SMALL_MAXCLASS);
	nhclasses = NSIZES - nlclasses - NBINS;

	bin_info_init();
	return (small_run_size_init());
}

// Assembly:
movq 0x30781(%rip), %rax     # 0x56388
leaq -0x40(%rax), %rcx
cmpq $-0x41, %rcx
jb 0x25c18
xchgq %rax, 0x31930(%rip)     # 0x57548
leaq 0x31a99(%rip), %rax     # 0x576b8
movq (%rax), %rcx
pushq $0x3
popq %rdx
xorl %eax, %eax
subl $0x1, %edx
jb 0x25c42
movq %rcx, %rsi
subq %rax, %rsi
imulq $0x68, %rsi, %rax
addq $0x1067, %rax           # imm = 0x1067
shrq $0xc, %rax
jmp 0x25c27
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rax, 0x31907(%rip)     # 0x57558
subq %rax, %rcx
leaq 0x68(,%rcx,8), %rcx
movq %rcx, 0x318fd(%rip)     # 0x57560
leaq 0x31a3e(%rip), %rcx     # 0x576a8
movq (%rcx), %rdi
shlq $0xc, %rax
movq %rdi, %rbx
subq %rax, %rbx
movq %rbx, 0x318ea(%rip)     # 0x57568
cmpq $0x1000, %rdi           # imm = 0x1000
ja 0x26592
decq %rdi
shrq $0x3, %rdi
leaq 0x1ce67(%rip), %rax     # 0x42b00
movzbl (%rax,%rdi), %eax
decl %eax
leaq 0x1c6da(%rip), %rcx     # 0x42380
movq (%rcx,%rax,8), %rax
cmpq %rbx, %rax
cmovbq %rax, %rbx
movq %rbx, 0x31888(%rip)     # 0x57540
cmpq $0x1000, %rbx           # imm = 0x1000
ja 0x2659c
decq %rbx
shrq $0x3, %rbx
leaq 0x1ce2d(%rip), %rax     # 0x42b00
movzbl (%rax,%rbx), %ebx
movl $0x3800, %edi           # imm = 0x3800
callq 0x284a4
subl %eax, %ebx
movl %ebx, 0x31867(%rip)     # 0x57550
movl $0xc8, %eax
subl %ebx, %eax
movl %eax, 0x3185e(%rip)     # 0x57554
movq $0x8, 0x3099f(%rip) # 0x566a0
leaq 0x30998(%rip), %rbx     # 0x566a0
movq %rbx, %rdi
callq 0x286d5
movl 0x309aa(%rip), %esi     # 0x566c0
leaq 0x309ab(%rip), %rdi     # 0x566c8
callq 0x28ad0
movq $0x10, 0x309d3(%rip) # 0x56700
leaq 0x309cc(%rip), %rdi     # 0x56700
callq 0x286d5
movl 0x309e1(%rip), %esi     # 0x56720
leaq 0x309e2(%rip), %rdi     # 0x56728
callq 0x28ad0
movl $0xc0, %r12d
leaq (%rbx,%r12), %rdi
movq $0x18, 0x30a00(%rip) # 0x56760
callq 0x286d5
movl 0x30a15(%rip), %esi     # 0x56780
leaq 0x30a16(%rip), %rdi     # 0x56788
callq 0x28ad0
movq $0x20, 0x30a3e(%rip) # 0x567c0
leaq 0x30a37(%rip), %rdi     # 0x567c0
callq 0x286d5
movl 0x30a4c(%rip), %esi     # 0x567e0
leaq 0x30a4d(%rip), %rdi     # 0x567e8
callq 0x28ad0
movl $0x180, %r14d           # imm = 0x180
leaq (%rbx,%r14), %rdi
movq $0x28, 0x30a6b(%rip) # 0x56820
callq 0x286d5
movl 0x30a80(%rip), %esi     # 0x56840
leaq 0x30a81(%rip), %rdi     # 0x56848
callq 0x28ad0
movq $0x30, 0x30aa9(%rip) # 0x56880
leaq 0x30aa2(%rip), %rdi     # 0x56880
callq 0x286d5
movl 0x30ab7(%rip), %esi     # 0x568a0
leaq 0x30ab8(%rip), %rdi     # 0x568a8
callq 0x28ad0
movq $0x38, 0x30ae0(%rip) # 0x568e0
leaq 0x30ad9(%rip), %rdi     # 0x568e0
callq 0x286d5
movl 0x30aee(%rip), %esi     # 0x56900
leaq 0x30aef(%rip), %rdi     # 0x56908
callq 0x28ad0
movq $0x40, 0x30b17(%rip) # 0x56940
leaq 0x30b10(%rip), %rdi     # 0x56940
callq 0x286d5
movl 0x30b25(%rip), %esi     # 0x56960
leaq 0x30b26(%rip), %rdi     # 0x56968
callq 0x28ad0
movl $0x300, %r15d           # imm = 0x300
leaq (%rbx,%r15), %rdi
movq $0x50, 0x30b44(%rip) # 0x569a0
callq 0x286d5
movl 0x30b59(%rip), %esi     # 0x569c0
leaq 0x30b5a(%rip), %rdi     # 0x569c8
callq 0x28ad0
movq $0x60, 0x30b82(%rip) # 0x56a00
leaq 0x30b7b(%rip), %rdi     # 0x56a00
callq 0x286d5
movl 0x30b90(%rip), %esi     # 0x56a20
leaq 0x30b91(%rip), %rdi     # 0x56a28
callq 0x28ad0
movq $0x70, 0x30bb9(%rip) # 0x56a60
leaq 0x30bb2(%rip), %rdi     # 0x56a60
callq 0x286d5
movl 0x30bc7(%rip), %esi     # 0x56a80
leaq 0x30bc8(%rip), %rdi     # 0x56a88
callq 0x28ad0
movl $0x80, %eax
movq %rax, 0x30bef(%rip)     # 0x56ac0
leaq 0x30be8(%rip), %rdi     # 0x56ac0
callq 0x286d5
movl 0x30bfd(%rip), %esi     # 0x56ae0
leaq 0x30bfe(%rip), %rdi     # 0x56ae8
callq 0x28ad0
movq $0xa0, 0x30c26(%rip) # 0x56b20
leaq 0x30c1f(%rip), %rdi     # 0x56b20
callq 0x286d5
movl 0x30c34(%rip), %esi     # 0x56b40
leaq 0x30c35(%rip), %rdi     # 0x56b48
callq 0x28ad0
movq %r12, 0x30c61(%rip)     # 0x56b80
leaq 0x30c5a(%rip), %rdi     # 0x56b80
callq 0x286d5
movl 0x30c6f(%rip), %esi     # 0x56ba0
leaq 0x30c70(%rip), %rdi     # 0x56ba8
callq 0x28ad0
movl $0xe0, %eax
movq %rax, 0x30c97(%rip)     # 0x56be0
leaq 0x30c90(%rip), %rdi     # 0x56be0
callq 0x286d5
movl 0x30ca5(%rip), %esi     # 0x56c00
leaq 0x30ca6(%rip), %rdi     # 0x56c08
callq 0x28ad0
movq $0x100, 0x30cce(%rip) # imm = 0x100
leaq 0x30cc7(%rip), %rdi     # 0x56c40
callq 0x286d5
movl 0x30cdc(%rip), %esi     # 0x56c60
leaq 0x30cdd(%rip), %rdi     # 0x56c68
callq 0x28ad0
movl $0x140, %eax            # imm = 0x140
movq %rax, 0x30d04(%rip)     # 0x56ca0
movl $0x600, %r12d           # imm = 0x600
leaq (%rbx,%r12), %rdi
callq 0x286d5
movl 0x30d0f(%rip), %esi     # 0x56cc0
leaq 0x30d10(%rip), %rdi     # 0x56cc8
callq 0x28ad0
movq %r14, 0x30d3c(%rip)     # 0x56d00
leaq 0x30d35(%rip), %rdi     # 0x56d00
callq 0x286d5
movl 0x30d4a(%rip), %esi     # 0x56d20
leaq 0x30d4b(%rip), %rdi     # 0x56d28
callq 0x28ad0
movq $0x1c0, 0x30d73(%rip) # imm = 0x1C0
leaq 0x30d6c(%rip), %rdi     # 0x56d60
callq 0x286d5
movl 0x30d81(%rip), %esi     # 0x56d80
leaq 0x30d82(%rip), %rdi     # 0x56d88
callq 0x28ad0
movl $0x200, %eax            # imm = 0x200
movq %rax, 0x30da9(%rip)     # 0x56dc0
leaq 0x30da2(%rip), %rdi     # 0x56dc0
callq 0x286d5
movl 0x30db7(%rip), %esi     # 0x56de0
leaq 0x30db8(%rip), %rdi     # 0x56de8
callq 0x28ad0
movq $0x280, 0x30de0(%rip) # imm = 0x280
leaq 0x30dd9(%rip), %rdi     # 0x56e20
callq 0x286d5
movl 0x30dee(%rip), %esi     # 0x56e40
leaq 0x30def(%rip), %rdi     # 0x56e48
callq 0x28ad0
movq %r15, 0x30e1b(%rip)     # 0x56e80
leaq 0x30e14(%rip), %rdi     # 0x56e80
callq 0x286d5
movl 0x30e29(%rip), %esi     # 0x56ea0
leaq 0x30e2a(%rip), %rdi     # 0x56ea8
callq 0x28ad0
movl $0x380, %eax            # imm = 0x380
movq %rax, 0x30e51(%rip)     # 0x56ee0
leaq 0x30e4a(%rip), %rdi     # 0x56ee0
callq 0x286d5
movl 0x30e5f(%rip), %esi     # 0x56f00
leaq 0x30e60(%rip), %rdi     # 0x56f08
callq 0x28ad0
movq $0x400, 0x30e88(%rip) # imm = 0x400
leaq 0x30e81(%rip), %rdi     # 0x56f40
callq 0x286d5
movl 0x30e96(%rip), %esi     # 0x56f60
leaq 0x30e97(%rip), %rdi     # 0x56f68
callq 0x28ad0
movl $0x500, %eax            # imm = 0x500
movq %rax, 0x30ebe(%rip)     # 0x56fa0
leaq 0x30eb7(%rip), %rdi     # 0x56fa0
callq 0x286d5
movl 0x30ecc(%rip), %esi     # 0x56fc0
leaq 0x30ecd(%rip), %rdi     # 0x56fc8
callq 0x28ad0
movq %r12, 0x30ef9(%rip)     # 0x57000
leaq 0x30ef2(%rip), %rdi     # 0x57000
callq 0x286d5
movl 0x30f07(%rip), %esi     # 0x57020
leaq 0x30f08(%rip), %rdi     # 0x57028
callq 0x28ad0
movq $0x700, 0x30f30(%rip) # imm = 0x700
leaq 0x30f29(%rip), %rdi     # 0x57060
callq 0x286d5
movl 0x30f3e(%rip), %esi     # 0x57080
leaq 0x30f3f(%rip), %rdi     # 0x57088
callq 0x28ad0
movl $0x800, %eax            # imm = 0x800
movq %rax, 0x30f66(%rip)     # 0x570c0
leaq 0x30f5f(%rip), %rdi     # 0x570c0
callq 0x286d5
movl 0x30f74(%rip), %esi     # 0x570e0
leaq 0x30f75(%rip), %rdi     # 0x570e8
callq 0x28ad0
movq $0xa00, 0x30f9d(%rip) # imm = 0xA00
leaq 0x30f96(%rip), %rdi     # 0x57120
callq 0x286d5
movl 0x30fab(%rip), %esi     # 0x57140
leaq 0x30fac(%rip), %rdi     # 0x57148
callq 0x28ad0
movl $0xc00, %r14d           # imm = 0xC00
movq %r14, 0x30fd2(%rip)     # 0x57180
leaq 0x30fcb(%rip), %rdi     # 0x57180
callq 0x286d5
movl 0x30fe0(%rip), %esi     # 0x571a0
leaq 0x30fe1(%rip), %rdi     # 0x571a8
callq 0x28ad0
movq $0xe00, 0x31009(%rip) # imm = 0xE00
leaq 0x31002(%rip), %rdi     # 0x571e0
callq 0x286d5
movl 0x31017(%rip), %esi     # 0x57200
leaq 0x31018(%rip), %rdi     # 0x57208
callq 0x28ad0
movq $0x1000, 0x31040(%rip) # imm = 0x1000
leaq 0x31039(%rip), %rdi     # 0x57240
callq 0x286d5
movl 0x3104e(%rip), %esi     # 0x57260
leaq 0x3104f(%rip), %rdi     # 0x57268
callq 0x28ad0
addq %r14, %rbx
movq $0x1400, 0x31074(%rip) # imm = 0x1400
movq %rbx, %rdi
callq 0x286d5
movl 0x31086(%rip), %esi     # 0x572c0
leaq 0x31087(%rip), %rdi     # 0x572c8
callq 0x28ad0
movq $0x1800, 0x310af(%rip) # imm = 0x1800
leaq 0x310a8(%rip), %rdi     # 0x57300
callq 0x286d5
movl 0x310bd(%rip), %esi     # 0x57320
leaq 0x310be(%rip), %rdi     # 0x57328
callq 0x28ad0
movq $0x1c00, 0x310e6(%rip) # imm = 0x1C00
leaq 0x310df(%rip), %rdi     # 0x57360
callq 0x286d5
movl 0x310f4(%rip), %esi     # 0x57380
leaq 0x310f5(%rip), %rdi     # 0x57388
callq 0x28ad0
movq $0x2000, 0x3111d(%rip) # imm = 0x2000
leaq 0x31116(%rip), %rdi     # 0x573c0
callq 0x286d5
movl 0x3112b(%rip), %esi     # 0x573e0
leaq 0x3112c(%rip), %rdi     # 0x573e8
callq 0x28ad0
movq $0x2800, 0x31154(%rip) # imm = 0x2800
leaq 0x3114d(%rip), %rdi     # 0x57420
callq 0x286d5
movl 0x31162(%rip), %esi     # 0x57440
leaq 0x31163(%rip), %rdi     # 0x57448
callq 0x28ad0
movq $0x3000, 0x3118b(%rip) # imm = 0x3000
leaq 0x31184(%rip), %rdi     # 0x57480
callq 0x286d5
movl 0x31199(%rip), %esi     # 0x574a0
leaq 0x3119a(%rip), %rdi     # 0x574a8
callq 0x28ad0
movq $0x3800, 0x311c2(%rip) # imm = 0x3800
leaq 0x311bb(%rip), %rdi     # 0x574e0
callq 0x286d5
movl 0x311d0(%rip), %esi     # 0x57500
leaq 0x311d1(%rip), %rdi     # 0x57508
callq 0x28ad0
movq 0x3122d(%rip), %rdi     # 0x57570
shrq $0xc, %rdi
callq 0x287c8
movq %rax, 0x31225(%rip)     # 0x57578
testq %rax, %rax
je 0x26580
movq 0x30355(%rip), %rdx     # 0x566b8
shrq $0xc, %rdx
movb $0x1, %cl
movb %cl, (%rax,%rdx)
movq 0x303a5(%rip), %rdx     # 0x56718
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x303f7(%rip), %rdx     # 0x56778
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30449(%rip), %rdx     # 0x567d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x3049b(%rip), %rdx     # 0x56838
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x304ed(%rip), %rdx     # 0x56898
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x3053f(%rip), %rdx     # 0x568f8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30591(%rip), %rdx     # 0x56958
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x305e3(%rip), %rdx     # 0x569b8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30635(%rip), %rdx     # 0x56a18
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30687(%rip), %rdx     # 0x56a78
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x306d9(%rip), %rdx     # 0x56ad8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x3072b(%rip), %rdx     # 0x56b38
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x3077d(%rip), %rdx     # 0x56b98
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x307cf(%rip), %rdx     # 0x56bf8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30821(%rip), %rdx     # 0x56c58
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30873(%rip), %rdx     # 0x56cb8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x308c5(%rip), %rdx     # 0x56d18
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30917(%rip), %rdx     # 0x56d78
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30969(%rip), %rdx     # 0x56dd8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x309bb(%rip), %rdx     # 0x56e38
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30a0d(%rip), %rdx     # 0x56e98
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30a5f(%rip), %rdx     # 0x56ef8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30ab1(%rip), %rdx     # 0x56f58
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30b03(%rip), %rdx     # 0x56fb8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30b55(%rip), %rdx     # 0x57018
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30ba7(%rip), %rdx     # 0x57078
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30bf9(%rip), %rdx     # 0x570d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30c4b(%rip), %rdx     # 0x57138
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30c9d(%rip), %rdx     # 0x57198
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30cef(%rip), %rdx     # 0x571f8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30d41(%rip), %rdx     # 0x57258
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30d93(%rip), %rdx     # 0x572b8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30de5(%rip), %rdx     # 0x57318
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30e37(%rip), %rdx     # 0x57378
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30e89(%rip), %rdx     # 0x573d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30edb(%rip), %rdx     # 0x57438
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30f2d(%rip), %rdx     # 0x57498
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x30f7f(%rip), %rdx     # 0x574f8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
testq %rax, %rax
sete %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0x284a4
jmp 0x25c9d
movq %rbx, %rdi
callq 0x284a4
movl %eax, %ebx
jmp 0x25cd7