// File: /workspace/github_c_makefile_star2_O1/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/arena.c
// Function: je_arena_boot
void
arena_boot(void)
{
	unsigned i;

	arena_lg_dirty_mult_default_set(opt_lg_dirty_mult);
	arena_decay_time_default_set(opt_decay_time);

	/*
	 * 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();
}

// Assembly:
movq 0x28259(%rip), %rax     # 0x4c3c8
leaq -0x40(%rax), %rcx
cmpq $-0x41, %rcx
jb 0x24189
cmpl $0x0, 0x28450(%rip)     # 0x4c5d0
jne 0x24189
xchgq %rax, 0x28e1f(%rip)     # 0x4cfa8
movq 0x28240(%rip), %rax     # 0x4c3d0
movabsq $-0x44b82fa0a, %rcx     # imm = 0xFFFFFFFBB47D05F6
leaq (%rax,%rcx), %rdx
incq %rdx
cmpq %rcx, %rdx
jb 0x241b6
cmpl $0x1, 0x28423(%rip)     # 0x4c5d0
jne 0x241b6
xchgq %rax, 0x28dfa(%rip)     # 0x4cfb0
movq $0x0, 0x28dff(%rip) # 0x4cfc0
leaq 0x28f10(%rip), %rax     # 0x4d0d8
movq (%rax), %rdx
movl $0x3, %esi
xorl %edi, %edi
movq %rdx, %rcx
subq %rdi, %rcx
imulq $0x68, %rcx, %rcx
addq $0x1077, %rcx           # imm = 0x1077
movq %rcx, %rdi
shrq $0xc, %rdi
decl %esi
jne 0x241d2
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, 0x28dc0(%rip)     # 0x4cfc0
movq (%rax), %rax
subq %rdi, %rax
leaq 0x78(,%rax,8), %rax
movq %rax, 0x28db3(%rip)     # 0x4cfc8
leaq 0x28eac(%rip), %rax     # 0x4d0c8
movq (%rax), %rdi
andq $-0x1000, %rcx          # imm = 0xF000
movq %rdi, %rbx
subq %rcx, %rbx
movq %rbx, 0x28d9d(%rip)     # 0x4cfd0
cmpq $0x1000, %rdi           # imm = 0x1000
ja 0x2492d
decq %rdi
shrq $0x3, %rdi
leaq 0x17b72(%rip), %rax     # 0x3bdc0
movzbl (%rax,%rdi), %eax
decl %eax
leaq 0x173e5(%rip), %rcx     # 0x3b640
movq (%rcx,%rax,8), %rax
cmpq %rbx, %rax
cmovbq %rax, %rbx
movq %rbx, 0x28d33(%rip)     # 0x4cfa0
cmpq $0x1000, %rbx           # imm = 0x1000
ja 0x24937
decq %rbx
shrq $0x3, %rbx
leaq 0x17b38(%rip), %rax     # 0x3bdc0
movzbl (%rax,%rbx), %eax
movl $0x6fff, %ecx           # imm = 0x6FFF
bsrq %rcx, %rcx
xorl %edx, %edx
movl %ecx, %esi
subl $0x5, %esi
cmovbl %edx, %esi
movl %ecx, %edx
addb $-0x3, %dl
cmpl $0x6, %ecx
movzbl %dl, %edx
movl $0x3, %ecx
cmovael %edx, %ecx
movl $0x37ff, %edx           # imm = 0x37FF
shrq %cl, %rdx
shlq %cl, %rdx
shrq %cl, %rdx
andl $0x3, %edx
leal (%rdx,%rsi,4), %ecx
subl %ecx, %eax
movl %eax, 0x28306(%rip)     # 0x4c5d4
movl $0xc4, %ecx
subl %eax, %ecx
movl %ecx, 0x28cdd(%rip)     # 0x4cfb8
movq $0x8, 0x282fa(%rip) # 0x4c5e0
leaq 0x282f3(%rip), %rbx     # 0x4c5e0
movq %rbx, %rdi
callq 0x2626b
movl 0x28305(%rip), %esi     # 0x4c600
leaq 0x28306(%rip), %rdi     # 0x4c608
callq 0x2640c
movq $0x10, 0x2830e(%rip) # 0x4c620
leaq 0x28307(%rip), %rdi     # 0x4c620
callq 0x2626b
movl 0x2831c(%rip), %esi     # 0x4c640
leaq 0x2831d(%rip), %rdi     # 0x4c648
callq 0x2640c
movl $0x80, %r12d
leaq (%rbx,%r12), %rdi
movq $0x18, 0x2831b(%rip) # 0x4c660
callq 0x2626b
movl 0x28330(%rip), %esi     # 0x4c680
leaq 0x28331(%rip), %rdi     # 0x4c688
callq 0x2640c
movl $0xc0, %r14d
leaq (%rbx,%r14), %rdi
movq $0x20, 0x2832f(%rip) # 0x4c6a0
callq 0x2626b
movl 0x28344(%rip), %esi     # 0x4c6c0
leaq 0x28345(%rip), %rdi     # 0x4c6c8
callq 0x2640c
movl $0x100, %r13d           # imm = 0x100
leaq (%rbx,%r13), %rdi
movq $0x28, 0x28343(%rip) # 0x4c6e0
callq 0x2626b
movl 0x28358(%rip), %esi     # 0x4c700
leaq 0x28359(%rip), %rdi     # 0x4c708
callq 0x2640c
movl $0x140, %eax            # imm = 0x140
leaq (%rbx,%rax), %rdi
movq $0x30, 0x28358(%rip) # 0x4c720
callq 0x2626b
movl 0x2836d(%rip), %esi     # 0x4c740
leaq 0x2836e(%rip), %rdi     # 0x4c748
callq 0x2640c
movl $0x180, %eax            # imm = 0x180
leaq (%rbx,%rax), %rdi
movq $0x38, 0x2836d(%rip) # 0x4c760
callq 0x2626b
movl 0x28382(%rip), %esi     # 0x4c780
leaq 0x28383(%rip), %rdi     # 0x4c788
callq 0x2640c
movl $0x1c0, %eax            # imm = 0x1C0
leaq (%rbx,%rax), %rdi
movq $0x40, 0x28382(%rip) # 0x4c7a0
callq 0x2626b
movl 0x28397(%rip), %esi     # 0x4c7c0
leaq 0x28398(%rip), %rdi     # 0x4c7c8
callq 0x2640c
movl $0x200, %ebp            # imm = 0x200
leaq (%rbx,%rbp), %rdi
movq $0x50, 0x28397(%rip) # 0x4c7e0
callq 0x2626b
movl 0x283ac(%rip), %esi     # 0x4c800
leaq 0x283ad(%rip), %rdi     # 0x4c808
callq 0x2640c
movq $0x60, 0x283b5(%rip) # 0x4c820
leaq 0x283ae(%rip), %rdi     # 0x4c820
callq 0x2626b
movl 0x283c3(%rip), %esi     # 0x4c840
leaq 0x283c4(%rip), %rdi     # 0x4c848
callq 0x2640c
movl $0x280, %r15d           # imm = 0x280
leaq (%rbx,%r15), %rdi
movq $0x70, 0x283c2(%rip) # 0x4c860
callq 0x2626b
movl 0x283d7(%rip), %esi     # 0x4c880
leaq 0x283d8(%rip), %rdi     # 0x4c888
callq 0x2640c
movq %r12, 0x283e4(%rip)     # 0x4c8a0
leaq 0x283dd(%rip), %rdi     # 0x4c8a0
callq 0x2626b
movl 0x283f2(%rip), %esi     # 0x4c8c0
leaq 0x283f3(%rip), %rdi     # 0x4c8c8
callq 0x2640c
movl $0xa0, %eax
movq %rax, 0x283fa(%rip)     # 0x4c8e0
movl $0x300, %r12d           # imm = 0x300
leaq (%rbx,%r12), %rdi
callq 0x2626b
movl 0x28405(%rip), %esi     # 0x4c900
leaq 0x28406(%rip), %rdi     # 0x4c908
callq 0x2640c
movq %r14, 0x28412(%rip)     # 0x4c920
leaq 0x2840b(%rip), %rdi     # 0x4c920
callq 0x2626b
movl 0x28420(%rip), %esi     # 0x4c940
leaq 0x28421(%rip), %rdi     # 0x4c948
callq 0x2640c
movl $0xe0, %eax
movq %rax, 0x28428(%rip)     # 0x4c960
movl $0x380, %r14d           # imm = 0x380
leaq (%rbx,%r14), %rdi
callq 0x2626b
movl 0x28433(%rip), %esi     # 0x4c980
leaq 0x28434(%rip), %rdi     # 0x4c988
callq 0x2640c
movq %r13, 0x28440(%rip)     # 0x4c9a0
leaq 0x28439(%rip), %rdi     # 0x4c9a0
callq 0x2626b
movl 0x2844e(%rip), %esi     # 0x4c9c0
leaq 0x2844f(%rip), %rdi     # 0x4c9c8
callq 0x2640c
movl $0x140, %eax            # imm = 0x140
movq %rax, 0x28456(%rip)     # 0x4c9e0
movl $0x400, %r13d           # imm = 0x400
leaq (%rbx,%r13), %rdi
callq 0x2626b
movl 0x28461(%rip), %esi     # 0x4ca00
leaq 0x28462(%rip), %rdi     # 0x4ca08
callq 0x2640c
movl $0x180, %eax            # imm = 0x180
movq %rax, 0x28469(%rip)     # 0x4ca20
leaq 0x28462(%rip), %rdi     # 0x4ca20
callq 0x2626b
movl 0x28477(%rip), %esi     # 0x4ca40
leaq 0x28478(%rip), %rdi     # 0x4ca48
callq 0x2640c
movl $0x1c0, %eax            # imm = 0x1C0
movq %rax, 0x2847f(%rip)     # 0x4ca60
leaq 0x28478(%rip), %rdi     # 0x4ca60
callq 0x2626b
movl 0x2848d(%rip), %esi     # 0x4ca80
leaq 0x2848e(%rip), %rdi     # 0x4ca88
callq 0x2640c
movq %rbp, 0x2849a(%rip)     # 0x4caa0
leaq 0x28493(%rip), %rdi     # 0x4caa0
callq 0x2626b
movl 0x284a8(%rip), %esi     # 0x4cac0
leaq 0x284a9(%rip), %rdi     # 0x4cac8
callq 0x2640c
movq %r15, 0x284b5(%rip)     # 0x4cae0
movl $0x500, %r15d           # imm = 0x500
leaq (%rbx,%r15), %rdi
callq 0x2626b
movl 0x284c0(%rip), %esi     # 0x4cb00
leaq 0x284c1(%rip), %rdi     # 0x4cb08
callq 0x2640c
movq %r12, 0x284cd(%rip)     # 0x4cb20
leaq 0x284c6(%rip), %rdi     # 0x4cb20
callq 0x2626b
movl 0x284db(%rip), %esi     # 0x4cb40
leaq 0x284dc(%rip), %rdi     # 0x4cb48
callq 0x2640c
movq %r14, 0x284e8(%rip)     # 0x4cb60
leaq 0x284e1(%rip), %rdi     # 0x4cb60
callq 0x2626b
movl 0x284f6(%rip), %esi     # 0x4cb80
leaq 0x284f7(%rip), %rdi     # 0x4cb88
callq 0x2640c
movq %r13, 0x28503(%rip)     # 0x4cba0
leaq 0x284fc(%rip), %rdi     # 0x4cba0
callq 0x2626b
movl 0x28511(%rip), %esi     # 0x4cbc0
leaq 0x28512(%rip), %rdi     # 0x4cbc8
callq 0x2640c
movq %r15, 0x2851e(%rip)     # 0x4cbe0
movl $0x600, %r14d           # imm = 0x600
leaq (%rbx,%r14), %rdi
callq 0x2626b
movl 0x28529(%rip), %esi     # 0x4cc00
leaq 0x2852a(%rip), %rdi     # 0x4cc08
callq 0x2640c
movq %r14, 0x28536(%rip)     # 0x4cc20
leaq 0x2852f(%rip), %rdi     # 0x4cc20
callq 0x2626b
movl 0x28544(%rip), %esi     # 0x4cc40
leaq 0x28545(%rip), %rdi     # 0x4cc48
callq 0x2640c
movl $0x700, %r14d           # imm = 0x700
movq %r14, 0x2854b(%rip)     # 0x4cc60
leaq 0x28544(%rip), %rdi     # 0x4cc60
callq 0x2626b
movl 0x28559(%rip), %esi     # 0x4cc80
leaq 0x2855a(%rip), %rdi     # 0x4cc88
callq 0x2640c
movl $0x800, %r15d           # imm = 0x800
movq %r15, 0x28560(%rip)     # 0x4cca0
leaq 0x28559(%rip), %rdi     # 0x4cca0
callq 0x2626b
movl 0x2856e(%rip), %esi     # 0x4ccc0
leaq 0x2856f(%rip), %rdi     # 0x4ccc8
callq 0x2640c
addq %rbx, %r14
movq $0xa00, 0x28574(%rip) # imm = 0xA00
movq %r14, %rdi
callq 0x2626b
movl 0x28586(%rip), %esi     # 0x4cd00
leaq 0x28587(%rip), %rdi     # 0x4cd08
callq 0x2640c
movq $0xc00, 0x2858f(%rip) # imm = 0xC00
leaq 0x28588(%rip), %rdi     # 0x4cd20
callq 0x2626b
movl 0x2859d(%rip), %esi     # 0x4cd40
leaq 0x2859e(%rip), %rdi     # 0x4cd48
callq 0x2640c
movq $0xe00, 0x285a6(%rip) # imm = 0xE00
leaq 0x2859f(%rip), %rdi     # 0x4cd60
callq 0x2626b
movl 0x285b4(%rip), %esi     # 0x4cd80
leaq 0x285b5(%rip), %rdi     # 0x4cd88
callq 0x2640c
movq $0x1000, 0x285bd(%rip) # imm = 0x1000
leaq 0x285b6(%rip), %rdi     # 0x4cda0
callq 0x2626b
movl 0x285cb(%rip), %esi     # 0x4cdc0
leaq 0x285cc(%rip), %rdi     # 0x4cdc8
callq 0x2640c
addq %r15, %rbx
movq $0x1400, 0x285d1(%rip) # imm = 0x1400
movq %rbx, %rdi
callq 0x2626b
movl 0x285e3(%rip), %esi     # 0x4ce00
leaq 0x285e4(%rip), %rdi     # 0x4ce08
callq 0x2640c
movq $0x1800, 0x285ec(%rip) # imm = 0x1800
leaq 0x285e5(%rip), %rdi     # 0x4ce20
callq 0x2626b
movl 0x285fa(%rip), %esi     # 0x4ce40
leaq 0x285fb(%rip), %rdi     # 0x4ce48
callq 0x2640c
movq $0x1c00, 0x28603(%rip) # imm = 0x1C00
leaq 0x285fc(%rip), %rdi     # 0x4ce60
callq 0x2626b
movl 0x28611(%rip), %esi     # 0x4ce80
leaq 0x28612(%rip), %rdi     # 0x4ce88
callq 0x2640c
movq $0x2000, 0x2861a(%rip) # imm = 0x2000
leaq 0x28613(%rip), %rdi     # 0x4cea0
callq 0x2626b
movl 0x28628(%rip), %esi     # 0x4cec0
leaq 0x28629(%rip), %rdi     # 0x4cec8
callq 0x2640c
movq $0x2800, 0x28631(%rip) # imm = 0x2800
leaq 0x2862a(%rip), %rdi     # 0x4cee0
callq 0x2626b
movl 0x2863f(%rip), %esi     # 0x4cf00
leaq 0x28640(%rip), %rdi     # 0x4cf08
callq 0x2640c
movq $0x3000, 0x28648(%rip) # imm = 0x3000
leaq 0x28641(%rip), %rdi     # 0x4cf20
callq 0x2626b
movl 0x28656(%rip), %esi     # 0x4cf40
leaq 0x28657(%rip), %rdi     # 0x4cf48
callq 0x2640c
movq $0x3800, 0x2865f(%rip) # imm = 0x3800
leaq 0x28658(%rip), %rdi     # 0x4cf60
callq 0x2626b
movl 0x2866d(%rip), %esi     # 0x4cf80
leaq 0x2866e(%rip), %rdi     # 0x4cf88
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2640c
callq 0xfdc2
jmp 0x24252
movq %rbx, %rdi
callq 0xfdc2
jmp 0x2428c