// File: /workspace/github_c_makefile_star2_O3/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 0x2f581(%rip), %rax     # 0x5a388
leaq -0x40(%rax), %rcx
cmpq $-0x41, %rcx
jb 0x2ae18
xchgq %rax, 0x30730(%rip)     # 0x5b548
leaq 0x30899(%rip), %rax     # 0x5b6b8
movq (%rax), %rax
movl $0x3, %edx
xorl %esi, %esi
movq %rax, %rcx
subq %rsi, %rcx
imulq $0x68, %rcx, %rcx
addq $0x1067, %rcx           # imm = 0x1067
movq %rcx, %rsi
shrq $0xc, %rsi
decl %edx
jne 0x2ae29
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, 0x30704(%rip)     # 0x5b558
subq %rsi, %rax
leaq 0x68(,%rax,8), %rax
movq %rax, 0x306fa(%rip)     # 0x5b560
leaq 0x3083b(%rip), %rax     # 0x5b6a8
movq (%rax), %rdi
andq $-0x1000, %rcx          # imm = 0xF000
movq %rdi, %rbx
subq %rcx, %rbx
movq %rbx, 0x306e4(%rip)     # 0x5b568
cmpq $0x1000, %rdi           # imm = 0x1000
ja 0x2b7cb
decq %rdi
shrq $0x3, %rdi
leaq 0x1d121(%rip), %rax     # 0x47fc0
movzbl (%rax,%rdi), %eax
decl %eax
leaq 0x1c994(%rip), %rcx     # 0x47840
movq (%rcx,%rax,8), %rax
cmpq %rbx, %rax
cmovbq %rax, %rbx
movq %rbx, 0x30682(%rip)     # 0x5b540
cmpq $0x1000, %rbx           # imm = 0x1000
ja 0x2b7d5
decq %rbx
shrq $0x3, %rbx
leaq 0x1d0e7(%rip), %rax     # 0x47fc0
movzbl (%rax,%rbx), %eax
movl $0x6fff, %ecx           # imm = 0x6FFF
bsrq %rcx, %rcx
xorl %edx, %edx
movq %rcx, %rsi
subq $0x5, %rsi
cmovaeq %rsi, %rdx
leal -0x3(%rcx), %esi
cmpq $0x6, %rcx
movzbl %sil, %esi
movl $0x3, %ecx
cmovael %esi, %ecx
movl $0x37ff, %esi           # imm = 0x37FF
shrq %cl, %rsi
shlq %cl, %rsi
shrq %cl, %rsi
andl $0x3, %esi
leal (%rsi,%rdx,4), %ecx
subl %ecx, %eax
movl %eax, 0x3062e(%rip)     # 0x5b550
movl $0xc8, %ecx
subl %eax, %ecx
movl %ecx, 0x30625(%rip)     # 0x5b554
movq $0x8, 0x2f766(%rip) # 0x5a6a0
leaq 0x2f75f(%rip), %rbx     # 0x5a6a0
movq %rbx, %rdi
callq 0x2dc7e
movl 0x2f771(%rip), %esi     # 0x5a6c0
leaq 0x2f772(%rip), %rdi     # 0x5a6c8
callq 0x2e06c
movq $0x10, 0x2f79a(%rip) # 0x5a700
leaq 0x2f793(%rip), %rdi     # 0x5a700
callq 0x2dc7e
movl 0x2f7a8(%rip), %esi     # 0x5a720
leaq 0x2f7a9(%rip), %rdi     # 0x5a728
callq 0x2e06c
movl $0xc0, %r12d
leaq (%rbx,%r12), %rdi
movq $0x18, 0x2f7c7(%rip) # 0x5a760
callq 0x2dc7e
movl 0x2f7dc(%rip), %esi     # 0x5a780
leaq 0x2f7dd(%rip), %rdi     # 0x5a788
callq 0x2e06c
movq $0x20, 0x2f805(%rip) # 0x5a7c0
leaq 0x2f7fe(%rip), %rdi     # 0x5a7c0
callq 0x2dc7e
movl 0x2f813(%rip), %esi     # 0x5a7e0
leaq 0x2f814(%rip), %rdi     # 0x5a7e8
callq 0x2e06c
movl $0x180, %r14d           # imm = 0x180
leaq (%rbx,%r14), %rdi
movq $0x28, 0x2f832(%rip) # 0x5a820
callq 0x2dc7e
movl 0x2f847(%rip), %esi     # 0x5a840
leaq 0x2f848(%rip), %rdi     # 0x5a848
callq 0x2e06c
movq $0x30, 0x2f870(%rip) # 0x5a880
leaq 0x2f869(%rip), %rdi     # 0x5a880
callq 0x2dc7e
movl 0x2f87e(%rip), %esi     # 0x5a8a0
leaq 0x2f87f(%rip), %rdi     # 0x5a8a8
callq 0x2e06c
movq $0x38, 0x2f8a7(%rip) # 0x5a8e0
leaq 0x2f8a0(%rip), %rdi     # 0x5a8e0
callq 0x2dc7e
movl 0x2f8b5(%rip), %esi     # 0x5a900
leaq 0x2f8b6(%rip), %rdi     # 0x5a908
callq 0x2e06c
movq $0x40, 0x2f8de(%rip) # 0x5a940
leaq 0x2f8d7(%rip), %rdi     # 0x5a940
callq 0x2dc7e
movl 0x2f8ec(%rip), %esi     # 0x5a960
leaq 0x2f8ed(%rip), %rdi     # 0x5a968
callq 0x2e06c
movl $0x300, %r15d           # imm = 0x300
leaq (%rbx,%r15), %rdi
movq $0x50, 0x2f90b(%rip) # 0x5a9a0
callq 0x2dc7e
movl 0x2f920(%rip), %esi     # 0x5a9c0
leaq 0x2f921(%rip), %rdi     # 0x5a9c8
callq 0x2e06c
movq $0x60, 0x2f949(%rip) # 0x5aa00
leaq 0x2f942(%rip), %rdi     # 0x5aa00
callq 0x2dc7e
movl 0x2f957(%rip), %esi     # 0x5aa20
leaq 0x2f958(%rip), %rdi     # 0x5aa28
callq 0x2e06c
movq $0x70, 0x2f980(%rip) # 0x5aa60
leaq 0x2f979(%rip), %rdi     # 0x5aa60
callq 0x2dc7e
movl 0x2f98e(%rip), %esi     # 0x5aa80
leaq 0x2f98f(%rip), %rdi     # 0x5aa88
callq 0x2e06c
movl $0x80, %eax
movq %rax, 0x2f9b6(%rip)     # 0x5aac0
leaq 0x2f9af(%rip), %rdi     # 0x5aac0
callq 0x2dc7e
movl 0x2f9c4(%rip), %esi     # 0x5aae0
leaq 0x2f9c5(%rip), %rdi     # 0x5aae8
callq 0x2e06c
movq $0xa0, 0x2f9ed(%rip) # 0x5ab20
leaq 0x2f9e6(%rip), %rdi     # 0x5ab20
callq 0x2dc7e
movl 0x2f9fb(%rip), %esi     # 0x5ab40
leaq 0x2f9fc(%rip), %rdi     # 0x5ab48
callq 0x2e06c
movq %r12, 0x2fa28(%rip)     # 0x5ab80
leaq 0x2fa21(%rip), %rdi     # 0x5ab80
callq 0x2dc7e
movl 0x2fa36(%rip), %esi     # 0x5aba0
leaq 0x2fa37(%rip), %rdi     # 0x5aba8
callq 0x2e06c
movl $0xe0, %eax
movq %rax, 0x2fa5e(%rip)     # 0x5abe0
leaq 0x2fa57(%rip), %rdi     # 0x5abe0
callq 0x2dc7e
movl 0x2fa6c(%rip), %esi     # 0x5ac00
leaq 0x2fa6d(%rip), %rdi     # 0x5ac08
callq 0x2e06c
movq $0x100, 0x2fa95(%rip) # imm = 0x100
leaq 0x2fa8e(%rip), %rdi     # 0x5ac40
callq 0x2dc7e
movl 0x2faa3(%rip), %esi     # 0x5ac60
leaq 0x2faa4(%rip), %rdi     # 0x5ac68
callq 0x2e06c
movl $0x140, %eax            # imm = 0x140
movq %rax, 0x2facb(%rip)     # 0x5aca0
movl $0x600, %r12d           # imm = 0x600
leaq (%rbx,%r12), %rdi
callq 0x2dc7e
movl 0x2fad6(%rip), %esi     # 0x5acc0
leaq 0x2fad7(%rip), %rdi     # 0x5acc8
callq 0x2e06c
movq %r14, 0x2fb03(%rip)     # 0x5ad00
leaq 0x2fafc(%rip), %rdi     # 0x5ad00
callq 0x2dc7e
movl 0x2fb11(%rip), %esi     # 0x5ad20
leaq 0x2fb12(%rip), %rdi     # 0x5ad28
callq 0x2e06c
movq $0x1c0, 0x2fb3a(%rip) # imm = 0x1C0
leaq 0x2fb33(%rip), %rdi     # 0x5ad60
callq 0x2dc7e
movl 0x2fb48(%rip), %esi     # 0x5ad80
leaq 0x2fb49(%rip), %rdi     # 0x5ad88
callq 0x2e06c
movl $0x200, %eax            # imm = 0x200
movq %rax, 0x2fb70(%rip)     # 0x5adc0
leaq 0x2fb69(%rip), %rdi     # 0x5adc0
callq 0x2dc7e
movl 0x2fb7e(%rip), %esi     # 0x5ade0
leaq 0x2fb7f(%rip), %rdi     # 0x5ade8
callq 0x2e06c
movq $0x280, 0x2fba7(%rip) # imm = 0x280
leaq 0x2fba0(%rip), %rdi     # 0x5ae20
callq 0x2dc7e
movl 0x2fbb5(%rip), %esi     # 0x5ae40
leaq 0x2fbb6(%rip), %rdi     # 0x5ae48
callq 0x2e06c
movq %r15, 0x2fbe2(%rip)     # 0x5ae80
leaq 0x2fbdb(%rip), %rdi     # 0x5ae80
callq 0x2dc7e
movl 0x2fbf0(%rip), %esi     # 0x5aea0
leaq 0x2fbf1(%rip), %rdi     # 0x5aea8
callq 0x2e06c
movl $0x380, %eax            # imm = 0x380
movq %rax, 0x2fc18(%rip)     # 0x5aee0
leaq 0x2fc11(%rip), %rdi     # 0x5aee0
callq 0x2dc7e
movl 0x2fc26(%rip), %esi     # 0x5af00
leaq 0x2fc27(%rip), %rdi     # 0x5af08
callq 0x2e06c
movq $0x400, 0x2fc4f(%rip) # imm = 0x400
leaq 0x2fc48(%rip), %rdi     # 0x5af40
callq 0x2dc7e
movl 0x2fc5d(%rip), %esi     # 0x5af60
leaq 0x2fc5e(%rip), %rdi     # 0x5af68
callq 0x2e06c
movl $0x500, %eax            # imm = 0x500
movq %rax, 0x2fc85(%rip)     # 0x5afa0
leaq 0x2fc7e(%rip), %rdi     # 0x5afa0
callq 0x2dc7e
movl 0x2fc93(%rip), %esi     # 0x5afc0
leaq 0x2fc94(%rip), %rdi     # 0x5afc8
callq 0x2e06c
movq %r12, 0x2fcc0(%rip)     # 0x5b000
leaq 0x2fcb9(%rip), %rdi     # 0x5b000
callq 0x2dc7e
movl 0x2fcce(%rip), %esi     # 0x5b020
leaq 0x2fccf(%rip), %rdi     # 0x5b028
callq 0x2e06c
movq $0x700, 0x2fcf7(%rip) # imm = 0x700
leaq 0x2fcf0(%rip), %rdi     # 0x5b060
callq 0x2dc7e
movl 0x2fd05(%rip), %esi     # 0x5b080
leaq 0x2fd06(%rip), %rdi     # 0x5b088
callq 0x2e06c
movl $0x800, %eax            # imm = 0x800
movq %rax, 0x2fd2d(%rip)     # 0x5b0c0
leaq 0x2fd26(%rip), %rdi     # 0x5b0c0
callq 0x2dc7e
movl 0x2fd3b(%rip), %esi     # 0x5b0e0
leaq 0x2fd3c(%rip), %rdi     # 0x5b0e8
callq 0x2e06c
movq $0xa00, 0x2fd64(%rip) # imm = 0xA00
leaq 0x2fd5d(%rip), %rdi     # 0x5b120
callq 0x2dc7e
movl 0x2fd72(%rip), %esi     # 0x5b140
leaq 0x2fd73(%rip), %rdi     # 0x5b148
callq 0x2e06c
movl $0xc00, %r14d           # imm = 0xC00
movq %r14, 0x2fd99(%rip)     # 0x5b180
leaq 0x2fd92(%rip), %rdi     # 0x5b180
callq 0x2dc7e
movl 0x2fda7(%rip), %esi     # 0x5b1a0
leaq 0x2fda8(%rip), %rdi     # 0x5b1a8
callq 0x2e06c
movq $0xe00, 0x2fdd0(%rip) # imm = 0xE00
leaq 0x2fdc9(%rip), %rdi     # 0x5b1e0
callq 0x2dc7e
movl 0x2fdde(%rip), %esi     # 0x5b200
leaq 0x2fddf(%rip), %rdi     # 0x5b208
callq 0x2e06c
movq $0x1000, 0x2fe07(%rip) # imm = 0x1000
leaq 0x2fe00(%rip), %rdi     # 0x5b240
callq 0x2dc7e
movl 0x2fe15(%rip), %esi     # 0x5b260
leaq 0x2fe16(%rip), %rdi     # 0x5b268
callq 0x2e06c
addq %r14, %rbx
movq $0x1400, 0x2fe3b(%rip) # imm = 0x1400
movq %rbx, %rdi
callq 0x2dc7e
movl 0x2fe4d(%rip), %esi     # 0x5b2c0
leaq 0x2fe4e(%rip), %rdi     # 0x5b2c8
callq 0x2e06c
movq $0x1800, 0x2fe76(%rip) # imm = 0x1800
leaq 0x2fe6f(%rip), %rdi     # 0x5b300
callq 0x2dc7e
movl 0x2fe84(%rip), %esi     # 0x5b320
leaq 0x2fe85(%rip), %rdi     # 0x5b328
callq 0x2e06c
movq $0x1c00, 0x2fead(%rip) # imm = 0x1C00
leaq 0x2fea6(%rip), %rdi     # 0x5b360
callq 0x2dc7e
movl 0x2febb(%rip), %esi     # 0x5b380
leaq 0x2febc(%rip), %rdi     # 0x5b388
callq 0x2e06c
movq $0x2000, 0x2fee4(%rip) # imm = 0x2000
leaq 0x2fedd(%rip), %rdi     # 0x5b3c0
callq 0x2dc7e
movl 0x2fef2(%rip), %esi     # 0x5b3e0
leaq 0x2fef3(%rip), %rdi     # 0x5b3e8
callq 0x2e06c
movq $0x2800, 0x2ff1b(%rip) # imm = 0x2800
leaq 0x2ff14(%rip), %rdi     # 0x5b420
callq 0x2dc7e
movl 0x2ff29(%rip), %esi     # 0x5b440
leaq 0x2ff2a(%rip), %rdi     # 0x5b448
callq 0x2e06c
movq $0x3000, 0x2ff52(%rip) # imm = 0x3000
leaq 0x2ff4b(%rip), %rdi     # 0x5b480
callq 0x2dc7e
movl 0x2ff60(%rip), %esi     # 0x5b4a0
leaq 0x2ff61(%rip), %rdi     # 0x5b4a8
callq 0x2e06c
movq $0x3800, 0x2ff89(%rip) # imm = 0x3800
leaq 0x2ff82(%rip), %rdi     # 0x5b4e0
callq 0x2dc7e
movl 0x2ff97(%rip), %esi     # 0x5b500
leaq 0x2ff98(%rip), %rdi     # 0x5b508
callq 0x2e06c
movq 0x2fff4(%rip), %rdi     # 0x5b570
shrq $0xc, %rdi
callq 0x2dd78
movq %rax, 0x2ffec(%rip)     # 0x5b578
testq %rax, %rax
je 0x2b7b9
movq 0x2f11c(%rip), %rdx     # 0x5a6b8
shrq $0xc, %rdx
movb $0x1, %cl
movb %cl, (%rax,%rdx)
movq 0x2f16c(%rip), %rdx     # 0x5a718
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f1be(%rip), %rdx     # 0x5a778
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f210(%rip), %rdx     # 0x5a7d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f262(%rip), %rdx     # 0x5a838
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f2b4(%rip), %rdx     # 0x5a898
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f306(%rip), %rdx     # 0x5a8f8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f358(%rip), %rdx     # 0x5a958
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f3aa(%rip), %rdx     # 0x5a9b8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f3fc(%rip), %rdx     # 0x5aa18
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f44e(%rip), %rdx     # 0x5aa78
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f4a0(%rip), %rdx     # 0x5aad8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f4f2(%rip), %rdx     # 0x5ab38
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f544(%rip), %rdx     # 0x5ab98
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f596(%rip), %rdx     # 0x5abf8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f5e8(%rip), %rdx     # 0x5ac58
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f63a(%rip), %rdx     # 0x5acb8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f68c(%rip), %rdx     # 0x5ad18
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f6de(%rip), %rdx     # 0x5ad78
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f730(%rip), %rdx     # 0x5add8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f782(%rip), %rdx     # 0x5ae38
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f7d4(%rip), %rdx     # 0x5ae98
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f826(%rip), %rdx     # 0x5aef8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f878(%rip), %rdx     # 0x5af58
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f8ca(%rip), %rdx     # 0x5afb8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f91c(%rip), %rdx     # 0x5b018
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f96e(%rip), %rdx     # 0x5b078
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2f9c0(%rip), %rdx     # 0x5b0d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fa12(%rip), %rdx     # 0x5b138
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fa64(%rip), %rdx     # 0x5b198
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fab6(%rip), %rdx     # 0x5b1f8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fb08(%rip), %rdx     # 0x5b258
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fb5a(%rip), %rdx     # 0x5b2b8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fbac(%rip), %rdx     # 0x5b318
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fbfe(%rip), %rdx     # 0x5b378
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fc50(%rip), %rdx     # 0x5b3d8
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fca2(%rip), %rdx     # 0x5b438
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fcf4(%rip), %rdx     # 0x5b498
shrq $0xc, %rdx
movb %cl, (%rax,%rdx)
movq 0x2fd46(%rip), %rdx     # 0x5b4f8
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 0x2da8d
jmp 0x2aea3
movq %rbx, %rdi
callq 0x2da8d
jmp 0x2aedd