// File: /workspace/github_c_makefile_star2_O3/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/stats.c
// Function: stats_print
void
stats_print(void (*write_cb)(void *, const char *), void *cbopaque,
    const char *opts)
{
	int err;
	uint64_t epoch;
	size_t u64sz;
	bool general = true;
	bool merged = true;
	bool unmerged = true;
	bool bins = true;
	bool large = true;

	/*
	 * Refresh stats, in case mallctl() was called by the application.
	 *
	 * Check for OOM here, since refreshing the ctl cache can trigger
	 * allocation.  In practice, none of the subsequent mallctl()-related
	 * calls in this function will cause OOM if this one succeeds.
	 * */
	epoch = 1;
	u64sz = sizeof(uint64_t);
	err = je_mallctl("epoch", &epoch, &u64sz, &epoch, sizeof(uint64_t));
	if (err != 0) {
		if (err == EAGAIN) {
			malloc_write("<jemalloc>: Memory allocation failure in "
			    "mallctl(\"epoch\", ...)\n");
			return;
		}
		malloc_write("<jemalloc>: Failure in mallctl(\"epoch\", "
		    "...)\n");
		abort();
	}

	if (opts != NULL) {
		unsigned i;

		for (i = 0; opts[i] != '\0'; i++) {
			switch (opts[i]) {
			case 'g':
				general = false;
				break;
			case 'm':
				merged = false;
				break;
			case 'a':
				unmerged = false;
				break;
			case 'b':
				bins = false;
				break;
			case 'l':
				large = false;
				break;
			default:;
			}
		}
	}

	malloc_cprintf(write_cb, cbopaque,
	    "___ Begin jemalloc statistics ___\n");
	if (general) {
		int err;
		const char *cpv;
		bool bv;
		unsigned uv;
		ssize_t ssv;
		size_t sv, bsz, ssz, sssz, cpsz;

		bsz = sizeof(bool);
		ssz = sizeof(size_t);
		sssz = sizeof(ssize_t);
		cpsz = sizeof(const char *);

		CTL_GET("version", &cpv, const char *);
		malloc_cprintf(write_cb, cbopaque, "Version: %s\n", cpv);
		CTL_GET("config.debug", &bv, bool);
		malloc_cprintf(write_cb, cbopaque, "Assertions %s\n",
		    bv ? "enabled" : "disabled");

#define OPT_WRITE_BOOL(n)						\
		if ((err = je_mallctl("opt."#n, &bv, &bsz, NULL, 0))	\
		    == 0) {						\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %s\n", bv ? "true" : "false");	\
		}
#define OPT_WRITE_SIZE_T(n)						\
		if ((err = je_mallctl("opt."#n, &sv, &ssz, NULL, 0))	\
		    == 0) {						\
			malloc_cprintf(write_cb, cbopaque,		\
			"  opt."#n": %zu\n", sv);			\
		}
#define OPT_WRITE_SSIZE_T(n)						\
		if ((err = je_mallctl("opt."#n, &ssv, &sssz, NULL, 0))	\
		    == 0) {						\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %zd\n", ssv);			\
		}
#define OPT_WRITE_CHAR_P(n)						\
		if ((err = je_mallctl("opt."#n, &cpv, &cpsz, NULL, 0))	\
		    == 0) {						\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": \"%s\"\n", cpv);		\
		}

		malloc_cprintf(write_cb, cbopaque,
		    "Run-time option settings:\n");
		OPT_WRITE_BOOL(abort)
		OPT_WRITE_SIZE_T(lg_chunk)
		OPT_WRITE_CHAR_P(dss)
		OPT_WRITE_SIZE_T(narenas)
		OPT_WRITE_SSIZE_T(lg_dirty_mult)
		OPT_WRITE_BOOL(stats_print)
		OPT_WRITE_BOOL(junk)
		OPT_WRITE_SIZE_T(quarantine)
		OPT_WRITE_BOOL(redzone)
		OPT_WRITE_BOOL(zero)
		OPT_WRITE_BOOL(utrace)
		OPT_WRITE_BOOL(valgrind)
		OPT_WRITE_BOOL(xmalloc)
		OPT_WRITE_BOOL(tcache)
		OPT_WRITE_SSIZE_T(lg_tcache_max)
		OPT_WRITE_BOOL(prof)
		OPT_WRITE_CHAR_P(prof_prefix)
		OPT_WRITE_BOOL(prof_active)
		OPT_WRITE_SSIZE_T(lg_prof_sample)
		OPT_WRITE_BOOL(prof_accum)
		OPT_WRITE_SSIZE_T(lg_prof_interval)
		OPT_WRITE_BOOL(prof_gdump)
		OPT_WRITE_BOOL(prof_final)
		OPT_WRITE_BOOL(prof_leak)

#undef OPT_WRITE_BOOL
#undef OPT_WRITE_SIZE_T
#undef OPT_WRITE_SSIZE_T
#undef OPT_WRITE_CHAR_P

		malloc_cprintf(write_cb, cbopaque, "CPUs: %u\n", ncpus);

		CTL_GET("arenas.narenas", &uv, unsigned);
		malloc_cprintf(write_cb, cbopaque, "Arenas: %u\n", uv);

		malloc_cprintf(write_cb, cbopaque, "Pointer size: %zu\n",
		    sizeof(void *));

		CTL_GET("arenas.quantum", &sv, size_t);
		malloc_cprintf(write_cb, cbopaque, "Quantum size: %zu\n", sv);

		CTL_GET("arenas.page", &sv, size_t);
		malloc_cprintf(write_cb, cbopaque, "Page size: %zu\n", sv);

		CTL_GET("opt.lg_dirty_mult", &ssv, ssize_t);
		if (ssv >= 0) {
			malloc_cprintf(write_cb, cbopaque,
			    "Min active:dirty page ratio per arena: %u:1\n",
			    (1U << ssv));
		} else {
			malloc_cprintf(write_cb, cbopaque,
			    "Min active:dirty page ratio per arena: N/A\n");
		}
		if ((err = je_mallctl("arenas.tcache_max", &sv, &ssz, NULL, 0))
		    == 0) {
			malloc_cprintf(write_cb, cbopaque,
			    "Maximum thread-cached size class: %zu\n", sv);
		}
		if ((err = je_mallctl("opt.prof", &bv, &bsz, NULL, 0)) == 0 &&
		    bv) {
			CTL_GET("opt.lg_prof_sample", &sv, size_t);
			malloc_cprintf(write_cb, cbopaque,
			    "Average profile sample interval: %"PRIu64
			    " (2^%zu)\n", (((uint64_t)1U) << sv), sv);

			CTL_GET("opt.lg_prof_interval", &ssv, ssize_t);
			if (ssv >= 0) {
				malloc_cprintf(write_cb, cbopaque,
				    "Average profile dump interval: %"PRIu64
				    " (2^%zd)\n",
				    (((uint64_t)1U) << ssv), ssv);
			} else {
				malloc_cprintf(write_cb, cbopaque,
				    "Average profile dump interval: N/A\n");
			}
		}
		CTL_GET("opt.lg_chunk", &sv, size_t);
		malloc_cprintf(write_cb, cbopaque, "Chunk size: %zu (2^%zu)\n",
		    (ZU(1) << sv), sv);
	}

	if (config_stats) {
		size_t *cactive;
		size_t allocated, active, mapped;
		size_t chunks_current, chunks_high;
		uint64_t chunks_total;
		size_t huge_allocated;
		uint64_t huge_nmalloc, huge_ndalloc;

		CTL_GET("stats.cactive", &cactive, size_t *);
		CTL_GET("stats.allocated", &allocated, size_t);
		CTL_GET("stats.active", &active, size_t);
		CTL_GET("stats.mapped", &mapped, size_t);
		malloc_cprintf(write_cb, cbopaque,
		    "Allocated: %zu, active: %zu, mapped: %zu\n",
		    allocated, active, mapped);
		malloc_cprintf(write_cb, cbopaque,
		    "Current active ceiling: %zu\n", atomic_read_z(cactive));

		/* Print chunk stats. */
		CTL_GET("stats.chunks.total", &chunks_total, uint64_t);
		CTL_GET("stats.chunks.high", &chunks_high, size_t);
		CTL_GET("stats.chunks.current", &chunks_current, size_t);
		malloc_cprintf(write_cb, cbopaque, "chunks: nchunks   "
		    "highchunks    curchunks\n");
		malloc_cprintf(write_cb, cbopaque,
		    "  %13"PRIu64" %12zu %12zu\n",
		    chunks_total, chunks_high, chunks_current);

		/* Print huge stats. */
		CTL_GET("stats.huge.nmalloc", &huge_nmalloc, uint64_t);
		CTL_GET("stats.huge.ndalloc", &huge_ndalloc, uint64_t);
		CTL_GET("stats.huge.allocated", &huge_allocated, size_t);
		malloc_cprintf(write_cb, cbopaque,
		    "huge: nmalloc      ndalloc    allocated\n");
		malloc_cprintf(write_cb, cbopaque,
		    " %12"PRIu64" %12"PRIu64" %12zu\n",
		    huge_nmalloc, huge_ndalloc, huge_allocated);

		if (merged) {
			unsigned narenas;

			CTL_GET("arenas.narenas", &narenas, unsigned);
			{
				VARIABLE_ARRAY(bool, initialized, narenas);
				size_t isz;
				unsigned i, ninitialized;

				isz = sizeof(bool) * narenas;
				xmallctl("arenas.initialized", initialized,
				    &isz, NULL, 0);
				for (i = ninitialized = 0; i < narenas; i++) {
					if (initialized[i])
						ninitialized++;
				}

				if (ninitialized > 1 || unmerged == false) {
					/* Print merged arena stats. */
					malloc_cprintf(write_cb, cbopaque,
					    "\nMerged arenas stats:\n");
					stats_arena_print(write_cb, cbopaque,
					    narenas, bins, large);
				}
			}
		}

		if (unmerged) {
			unsigned narenas;

			/* Print stats for each arena. */

			CTL_GET("arenas.narenas", &narenas, unsigned);
			{
				VARIABLE_ARRAY(bool, initialized, narenas);
				size_t isz;
				unsigned i;

				isz = sizeof(bool) * narenas;
				xmallctl("arenas.initialized", initialized,
				    &isz, NULL, 0);

				for (i = 0; i < narenas; i++) {
					if (initialized[i]) {
						malloc_cprintf(write_cb,
						    cbopaque,
						    "\narenas[%u]:\n", i);
						stats_arena_print(write_cb,
						    cbopaque, i, bins, large);
					}
				}
			}
		}
	}
	malloc_cprintf(write_cb, cbopaque, "--- End jemalloc statistics ---\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdx, %r15
movq %rsi, -0x80(%rbp)
movq %rdi, %rbx
leaq -0xc0(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xb8(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xea79(%rip), %rdi      # 0x9ceee
movl $0x8, %r8d
movq %rcx, %rsi
callq 0x7e597
testl %eax, %eax
je 0x8e4a1
cmpl $0xb, %eax
jne 0x8f35e
leaq 0x15330(%rip), %rdi     # 0xa37c7
callq 0x915d4
jmp 0x8f33c
testq %r15, %r15
movq %rbx, -0x90(%rbp)
je 0x8e535
xorl %eax, %eax
movb $0x1, %dl
movb $0x1, %sil
movb $0x1, %r12b
movb $0x1, %r14b
movb $0x1, %bl
movl %eax, %ecx
movzbl (%r15,%rcx), %ecx
cmpl $0x66, %ecx
jle 0x8e4df
cmpl $0x6d, %ecx
je 0x8e4ed
cmpl $0x6c, %ecx
je 0x8e4f2
cmpl $0x67, %ecx
jne 0x8e4ff
xorl %ebx, %ebx
jmp 0x8e4ff
cmpl $0x61, %ecx
je 0x8e4f6
cmpl $0x62, %ecx
jne 0x8e4fb
xorl %esi, %esi
jmp 0x8e4ff
xorl %r14d, %r14d
jmp 0x8e4ff
xorl %edx, %edx
jmp 0x8e4ff
xorl %r12d, %r12d
jmp 0x8e4ff
testl %ecx, %ecx
je 0x8e503
incl %eax
jmp 0x8e4c0
movl %esi, -0x5c(%rbp)
movl %edx, -0x74(%rbp)
leaq 0x15325(%rip), %rdx     # 0xa3835
movq -0x90(%rbp), %r13
movq %r13, %rdi
movq -0x80(%rbp), %r15
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
testb $0x1, %bl
movq %r13, %rbx
jne 0x8e55d
jmp 0x8ef01
leaq 0x152f9(%rip), %rdx     # 0xa3835
movq %rbx, %rdi
movq -0x80(%rbp), %r15
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
movb $0x1, %r14b
movb $0x1, %r12b
movb $0x1, %al
movl %eax, -0x5c(%rbp)
movb $0x1, %al
movl %eax, -0x74(%rbp)
movq $0x1, -0x38(%rbp)
movl $0x8, %eax
movq %rax, -0x68(%rbp)
movq %rax, -0x88(%rbp)
movq %rax, -0xa0(%rbp)
leaq -0x50(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x8316(%rip), %rdi      # 0x968a0
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f437
movq -0x70(%rbp), %rcx
leaq 0x152d9(%rip), %rdx     # 0xa3884
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x50(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0x152c7(%rip), %rdi     # 0xa3891
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f447
leaq 0xb2d3(%rip), %rax      # 0x998ba
leaq 0xe37e(%rip), %rcx      # 0x9c96c
leaq -0x30(%rbp), %r13
cmpb $0x0, (%r13)
cmovneq %rax, %rcx
leaq 0x1529c(%rip), %rdx     # 0xa389e
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15297(%rip), %rdx     # 0xa38ad
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1529e(%rip), %rdi     # 0xa38c8
leaq -0x38(%rbp), %rdx
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e669
leaq 0xcd8c(%rip), %rax      # 0x9b3d2
leaq 0x134bb(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15276(%rip), %rdx     # 0xa38d2
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15273(%rip), %rdi     # 0xa38e3
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e69e
movq -0x48(%rbp), %rcx
leaq 0x1525f(%rip), %rdx     # 0xa38f0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15260(%rip), %rdi     # 0xa3905
leaq -0x70(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e6d6
movq -0x70(%rbp), %rcx
leaq 0x15244(%rip), %rdx     # 0xa390d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15241(%rip), %rdi     # 0xa391e
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e70b
movq -0x48(%rbp), %rcx
leaq 0x1522c(%rip), %rdx     # 0xa392a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1522c(%rip), %rdi     # 0xa393e
leaq -0x50(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e743
movq -0x50(%rbp), %rcx
leaq 0x1521a(%rip), %rdx     # 0xa3950
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15220(%rip), %rdi     # 0xa396a
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e78a
leaq 0xcc6b(%rip), %rax      # 0x9b3d2
leaq 0x1339a(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x151fd(%rip), %rdx     # 0xa397a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15200(%rip), %rdi     # 0xa3991
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e7d1
leaq 0xcc24(%rip), %rax      # 0x9b3d2
leaq 0x13353(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x151d6(%rip), %rdx     # 0xa399a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x151d2(%rip), %rdi     # 0xa39aa
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e806
movq -0x48(%rbp), %rcx
leaq 0x151c0(%rip), %rdx     # 0xa39b9
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x151c3(%rip), %rdi     # 0xa39d0
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e84d
leaq 0xcba8(%rip), %rax      # 0x9b3d2
leaq 0x132d7(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1519c(%rip), %rdx     # 0xa39dc
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1519b(%rip), %rdi     # 0xa39ef
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e894
leaq 0xcb61(%rip), %rax      # 0x9b3d2
leaq 0x13290(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15171(%rip), %rdx     # 0xa39f8
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1516d(%rip), %rdi     # 0xa3a08
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e8db
leaq 0xcb1a(%rip), %rax      # 0x9b3d2
leaq 0x13249(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15145(%rip), %rdx     # 0xa3a13
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15143(%rip), %rdi     # 0xa3a25
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e922
leaq 0xcad3(%rip), %rax      # 0x9b3d2
leaq 0x13202(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1511d(%rip), %rdx     # 0xa3a32
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1511d(%rip), %rdi     # 0xa3a46
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e969
leaq 0xca8c(%rip), %rax      # 0x9b3d2
leaq 0x131bb(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x150f6(%rip), %rdx     # 0xa3a52
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x150f5(%rip), %rdi     # 0xa3a65
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e9b0
leaq 0xca45(%rip), %rax      # 0x9b3d2
leaq 0x13174(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x150cd(%rip), %rdx     # 0xa3a70
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x150cb(%rip), %rdi     # 0xa3a82
leaq -0x50(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8e9e8
movq -0x50(%rbp), %rcx
leaq 0x150b9(%rip), %rdx     # 0xa3a94
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x150bf(%rip), %rdi     # 0xa3aae
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8ea2f
leaq 0xc9c6(%rip), %rax      # 0x9b3d2
leaq 0x130f5(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15095(%rip), %rdx     # 0xa3ab7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15091(%rip), %rdi     # 0xa3ac7
leaq -0x70(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8ea67
movq -0x70(%rbp), %rcx
leaq 0x1507d(%rip), %rdx     # 0xa3ad7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15082(%rip), %rdi     # 0xa3af0
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8eaae
leaq 0xc947(%rip), %rax      # 0x9b3d2
leaq 0x13076(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1505f(%rip), %rdx     # 0xa3b00
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15062(%rip), %rdi     # 0xa3b17
leaq -0x50(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8eae6
movq -0x50(%rbp), %rcx
leaq 0x15051(%rip), %rdx     # 0xa3b2a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15058(%rip), %rdi     # 0xa3b45
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8eb2d
leaq 0xc8c8(%rip), %rax      # 0x9b3d2
leaq 0x12ff7(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15034(%rip), %rdx     # 0xa3b54
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15036(%rip), %rdi     # 0xa3b6a
leaq -0x50(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8eb65
movq -0x50(%rbp), %rcx
leaq 0x15027(%rip), %rdx     # 0xa3b7f
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x15030(%rip), %rdi     # 0xa3b9c
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8ebac
leaq 0xc849(%rip), %rax      # 0x9b3d2
leaq 0x12f78(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1500c(%rip), %rdx     # 0xa3bab
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x1500e(%rip), %rdi     # 0xa3bc1
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8ebf3
leaq 0xc802(%rip), %rax      # 0x9b3d2
leaq 0x12f31(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x14fea(%rip), %rdx     # 0xa3bd0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x14fec(%rip), %rdi     # 0xa3be6
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8ec3a
leaq 0xc7bb(%rip), %rax      # 0x9b3d2
leaq 0x12eea(%rip), %rcx     # 0xa1b08
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x14fc7(%rip), %rdx     # 0xa3bf4
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x4ff87(%rip), %rax     # 0xdebc8
movl (%rax), %ecx
leaq 0x14fbf(%rip), %rdx     # 0xa3c09
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x14faa(%rip), %rdi     # 0xa3c13
leaq -0xa8(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f34b
movl -0xa8(%rbp), %ecx
leaq 0x14f93(%rip), %rdx     # 0xa3c22
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x14f8b(%rip), %rdx     # 0xa3c2e
movl $0x8, %ecx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f7a(%rip), %rdi     # 0xa3c41
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f457
leaq -0x48(%rbp), %r13
movq (%r13), %rcx
leaq 0x14f64(%rip), %rdx     # 0xa3c50
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f58(%rip), %rdi     # 0xa3c63
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f467
movq -0x48(%rbp), %rcx
leaq 0x14f44(%rip), %rdx     # 0xa3c6f
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14bf4(%rip), %rdi     # 0xa393e
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f477
movq -0x50(%rbp), %rcx
testq %rcx, %rcx
js 0x8ed88
movl $0x1, %eax
shll %cl, %eax
leaq 0x14f08(%rip), %rdx     # 0xa3c7f
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x92633
jmp 0x8ed9c
leaq 0x14f1d(%rip), %rdx     # 0xa3cac
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x14f35(%rip), %rdi     # 0xa3cd8
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8edd1
movq -0x48(%rbp), %rcx
leaq 0x14f26(%rip), %rdx     # 0xa3cea
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq 0x14cd6(%rip), %rdi     # 0xa3aae
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8eeb3
cmpb $0x1, -0x30(%rbp)
jne 0x8eeb3
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14d09(%rip), %rdi     # 0xa3b17
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f4a1
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x14ed7(%rip), %rdx     # 0xa3d11
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14d0e(%rip), %rdi     # 0xa3b6a
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f4b1
movq -0x50(%rbp), %r8
testq %r8, %r8
js 0x8ee9f
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x14eb2(%rip), %rdx     # 0xa3d3f
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92633
jmp 0x8eeb3
leaq 0x14ec5(%rip), %rdx     # 0xa3d6b
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14a1e(%rip), %rdi     # 0xa38e3
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f487
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x14e9e(%rip), %rdx     # 0xa3d8f
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92633
leaq -0x50(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e95(%rip), %rdi     # 0xa3da8
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f36f
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e7b(%rip), %rdi     # 0xa3db6
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f382
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e63(%rip), %rdi     # 0xa3dc6
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f395
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e48(%rip), %rdi     # 0xa3dd3
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f3a8
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x38(%rbp), %r9
leaq 0x14e2c(%rip), %rdx     # 0xa3de0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
movq -0x70(%rbp), %rax
mfence
movq (%rax), %rcx
leaq 0x14e38(%rip), %rdx     # 0xa3e0a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e36(%rip), %rdi     # 0xa3e27
leaq -0xa0(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f3bb
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e1e(%rip), %rdi     # 0xa3e3a
leaq -0x88(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f3ce
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e05(%rip), %rdi     # 0xa3e4c
leaq -0x68(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f3e1
leaq 0x14dfd(%rip), %rdx     # 0xa3e61
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
movq -0xa0(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x68(%rbp), %r9
leaq 0x14e02(%rip), %rdx     # 0xa3e8c
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14df8(%rip), %rdi     # 0xa3ea1
leaq -0xa8(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f3f4
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14de0(%rip), %rdi     # 0xa3eb4
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f407
leaq -0x98(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14dc8(%rip), %rdi     # 0xa3ec7
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f417
leaq 0x14dc0(%rip), %rdx     # 0xa3edc
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
movq -0xa8(%rbp), %rcx
movq -0x30(%rbp), %r8
movq -0x58(%rbp), %r9
leaq 0x1540d(%rip), %rdx     # 0xa454c
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
testb $0x1, %r14b
je 0x8f234
leaq -0x98(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x14aa8(%rip), %rdi     # 0xa3c13
leaq -0x3c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f34b
movq %rsp, %rbx
movl -0x3c(%rbp), %eax
movq %rsp, %r15
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r15
movq %r15, %rsp
movl -0x3c(%rbp), %eax
leaq -0x98(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x14d59(%rip), %rdi     # 0xa3f05
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f427
movl -0x3c(%rbp), %eax
testq %rax, %rax
je 0x8f1e7
xorl %ecx, %ecx
xorl %edx, %edx
movzbl (%r15,%rcx), %esi
addl %esi, %edx
incq %rcx
cmpq %rcx, %rax
jne 0x8f1cd
cmpl $0x2, %edx
setb %al
testb %r12b, %al
jmp 0x8f1eb
testb $0x1, %r12b
movq -0x80(%rbp), %r15
jne 0x8f22a
leaq 0x14d20(%rip), %rdx     # 0xa3f18
movq -0x90(%rbp), %r14
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
movl -0x3c(%rbp), %edx
movzbl -0x5c(%rbp), %ecx
andl $0x1, %ecx
movzbl -0x74(%rbp), %r8d
andl $0x1, %r8d
movq %r14, %rdi
movq %r15, %rsi
callq 0x8f4c1
movq %rbx, %rsp
movq -0x90(%rbp), %rbx
testb $0x1, %r12b
je 0x8f328
leaq -0x98(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x149c0(%rip), %rdi     # 0xa3c13
leaq -0x3c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f34b
movq %rsp, -0xb0(%rbp)
movl -0x3c(%rbp), %eax
movq %rsp, %r15
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r15
movq %r15, %rsp
movl -0x3c(%rbp), %eax
leaq -0x98(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x14c6d(%rip), %rdi     # 0xa3f05
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e597
testl %eax, %eax
jne 0x8f427
movl -0x3c(%rbp), %eax
testl %eax, %eax
movl -0x74(%rbp), %ecx
movl -0x5c(%rbp), %edx
je 0x8f316
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, -0x5c(%rbp)
movzbl %cl, %ebx
andl $0x1, %ebx
xorl %r14d, %r14d
movq -0x90(%rbp), %r13
movq -0x80(%rbp), %r12
cmpb $0x1, (%r15,%r14)
jne 0x8f30c
movq %r13, %rdi
movq %r12, %rsi
leaq 0x14c44(%rip), %rdx     # 0xa3f2f
movl %r14d, %ecx
xorl %eax, %eax
callq 0x92633
movq %r13, %rdi
movq %r12, %rsi
movl %r14d, %edx
movl -0x5c(%rbp), %ecx
movl %ebx, %r8d
callq 0x8f4c1
movl -0x3c(%rbp), %eax
incq %r14
movl %eax, %ecx
cmpq %rcx, %r14
jb 0x8f2d7
movq -0xb0(%rbp), %rsp
movq -0x80(%rbp), %r15
movq -0x90(%rbp), %rbx
leaq 0x14c0e(%rip), %rdx     # 0xa3f3d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92633
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x14506(%rip), %rdi     # 0xa3858
leaq 0x148ba(%rip), %rsi     # 0xa3c13
jmp 0x8f495
leaq 0x144a2(%rip), %rdi     # 0xa3807
callq 0x915d4
callq 0x1f1b0
leaq 0x144e2(%rip), %rdi     # 0xa3858
leaq 0x14a2b(%rip), %rsi     # 0xa3da8
jmp 0x8f495
leaq 0x144cf(%rip), %rdi     # 0xa3858
leaq 0x14a26(%rip), %rsi     # 0xa3db6
jmp 0x8f495
leaq 0x144bc(%rip), %rdi     # 0xa3858
leaq 0x14a23(%rip), %rsi     # 0xa3dc6
jmp 0x8f495
leaq 0x144a9(%rip), %rdi     # 0xa3858
leaq 0x14a1d(%rip), %rsi     # 0xa3dd3
jmp 0x8f495
leaq 0x14496(%rip), %rdi     # 0xa3858
leaq 0x14a5e(%rip), %rsi     # 0xa3e27
jmp 0x8f495
leaq 0x14483(%rip), %rdi     # 0xa3858
leaq 0x14a5e(%rip), %rsi     # 0xa3e3a
jmp 0x8f495
leaq 0x14470(%rip), %rdi     # 0xa3858
leaq 0x14a5d(%rip), %rsi     # 0xa3e4c
jmp 0x8f495
leaq 0x1445d(%rip), %rdi     # 0xa3858
leaq 0x14a9f(%rip), %rsi     # 0xa3ea1
jmp 0x8f495
leaq 0x1444a(%rip), %rdi     # 0xa3858
leaq 0x14a9f(%rip), %rsi     # 0xa3eb4
jmp 0x8f495
leaq 0x1443a(%rip), %rdi     # 0xa3858
leaq 0x14aa2(%rip), %rsi     # 0xa3ec7
jmp 0x8f495
leaq 0x1442a(%rip), %rdi     # 0xa3858
leaq 0x14ad0(%rip), %rsi     # 0xa3f05
jmp 0x8f495
leaq 0x1441a(%rip), %rdi     # 0xa3858
leaq 0x745b(%rip), %rsi      # 0x968a0
jmp 0x8f495
leaq 0x1440a(%rip), %rdi     # 0xa3858
leaq 0x1443c(%rip), %rsi     # 0xa3891
jmp 0x8f495
leaq 0x143fa(%rip), %rdi     # 0xa3858
leaq 0x147dc(%rip), %rsi     # 0xa3c41
jmp 0x8f495
leaq 0x143ea(%rip), %rdi     # 0xa3858
leaq 0x147ee(%rip), %rsi     # 0xa3c63
jmp 0x8f495
leaq 0x143da(%rip), %rdi     # 0xa3858
leaq 0x144b9(%rip), %rsi     # 0xa393e
jmp 0x8f495
leaq 0x143ca(%rip), %rdi     # 0xa3858
leaq 0x1444e(%rip), %rsi     # 0xa38e3
xorl %eax, %eax
callq 0x926f9
callq 0x1f1b0
leaq 0x143b0(%rip), %rdi     # 0xa3858
leaq 0x14668(%rip), %rsi     # 0xa3b17
jmp 0x8f495
leaq 0x143a0(%rip), %rdi     # 0xa3858
leaq 0x146ab(%rip), %rsi     # 0xa3b6a
jmp 0x8f495