// File: /workspace/github_c_makefile_star2_O0/zhou-yuxin[P]redis-aof-no-cow/deps/jemalloc/src/jemalloc.c
// Function: stats_print_atexit
static void
stats_print_atexit(void)
{

	if (config_tcache && config_stats) {
		tsdn_t *tsdn;
		unsigned narenas, i;

		tsdn = tsdn_fetch();

		/*
		 * Merge stats from extant threads.  This is racy, since
		 * individual threads do not lock when recording tcache stats
		 * events.  As a consequence, the final stats may be slightly
		 * out of date by the time they are reported, if other threads
		 * continue to allocate.
		 */
		for (i = 0, narenas = narenas_total_get(); i < narenas; i++) {
			arena_t *arena = arena_get(tsdn, i, false);
			if (arena != NULL) {
				tcache_t *tcache;

				/*
				 * tcache_stats_merge() locks bins, so if any
				 * code is introduced that acquires both arena
				 * and bin locks in the opposite order,
				 * deadlocks may result.
				 */
				malloc_mutex_lock(tsdn, &arena->lock);
				ql_foreach(tcache, &arena->tcache_ql, link) {
					tcache_stats_merge(tsdn, tcache, arena);
				}
				malloc_mutex_unlock(tsdn, &arena->lock);
			}
		}
	}
	je_malloc_stats_print(NULL, NULL, NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
leaq 0x6b111(%rip), %rax     # 0xa4510
testb $0x1, (%rax)
jne 0x39411
movq $0x0, -0x40(%rbp)
jmp 0x3958a
movb $0x0, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
movq 0x69bcc(%rip), %rcx     # 0xa2ff0
movq %fs:0x0, %rax
addq %rcx, %rax
movq %rax, -0x30(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x39456
xorl %eax, %eax
testb $0x1, %al
jne 0x39442
jmp 0x39456
cmpq $0x0, -0x30(%rbp)
jne 0x39456
movq $0x0, -0x20(%rbp)
jmp 0x3957a
movq -0x30(%rbp), %rax
cmpl $0x1, (%rax)
setne %al
testb $0x1, %al
jne 0x39469
jmp 0x39572
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x394ec
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x69b65(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rdi
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movl $0x68, %edx
callq 0xb310
leaq 0x6b088(%rip), %rax     # 0xa4534
movl (%rax), %edi
movq 0x69b3b(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
callq 0xb590
cmpl $0x0, %eax
je 0x394e7
leaq 0x579a8(%rip), %rdi     # 0x90e7a
callq 0x828c0
testb $0x1, 0x6a022(%rip)     # 0xa3500
je 0x394e5
callq 0xb050
jmp 0x394e7
jmp 0x39570
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3956c
movq -0x30(%rbp), %rax
movl $0x3, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movq 0x69ae2(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rdi
addq %rax, %rdi
movq -0x8(%rbp), %rsi
movl $0x68, %edx
callq 0xb310
leaq 0x6b005(%rip), %rax     # 0xa4534
movl (%rax), %edi
movq 0x69ab8(%rip), %rax     # 0xa2ff0
movq %fs:0x0, %rsi
addq %rax, %rsi
callq 0xb590
cmpl $0x0, %eax
je 0x3956a
leaq 0x57925(%rip), %rdi     # 0x90e7a
callq 0x828c0
testb $0x1, 0x69f9f(%rip)     # 0xa3500
je 0x39568
callq 0xb050
jmp 0x3956a
jmp 0x3956e
jmp 0x3956e
jmp 0x39570
jmp 0x39572
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x50(%rbp)
callq 0x19e40
movl %eax, -0x4c(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jae 0x39652
movq -0x48(%rbp), %rdi
movl -0x50(%rbp), %esi
xorl %edx, %edx
callq 0x1a080
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x39642
movq -0x48(%rbp), %rdi
movq -0x58(%rbp), %rsi
addq $0x10, %rsi
callq 0x19ee0
movq -0x58(%rbp), %rax
movq 0xe0(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x39631
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x817f0
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq -0x58(%rbp), %rcx
cmpq 0xe0(%rcx), %rax
je 0x3961f
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x39627
xorl %eax, %eax
movq %rax, -0x68(%rbp)
jmp 0x39627
movq -0x68(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x395e6
movq -0x48(%rbp), %rdi
movq -0x58(%rbp), %rsi
addq $0x10, %rsi
callq 0x19fd0
jmp 0x39644
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x395a1
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rdi
movq %rdx, %rsi
callq 0x368e0
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)