// File: /workspace/github_c_makefile_star2_O1/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, -0x88(%rbp)
movq %rdi, %rbx
leaq -0xb8(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xb0(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xec96(%rip), %rdi      # 0x9ceae
movl $0x8, %r8d
movq %rcx, %rsi
callq 0x7e2f3
testl %eax, %eax
je 0x8e244
cmpl $0xb, %eax
jne 0x8f0d3
leaq 0x1548d(%rip), %rdi     # 0xa36c7
callq 0x9124c
jmp 0x8f0b1
movq %rbx, -0x70(%rbp)
testq %r15, %r15
je 0x8e2a5
xorl %eax, %eax
movb $0x1, %r13b
movb $0x1, %dl
movb $0x1, %r12b
movb $0x1, %r14b
movb $0x1, %bl
movl %eax, %ecx
movzbl (%r15,%rcx), %ecx
cmpl $0x66, %ecx
jle 0x8e27b
cmpl $0x6d, %ecx
je 0x8e289
cmpl $0x6c, %ecx
je 0x8e28e
cmpl $0x67, %ecx
jne 0x8e29c
xorl %ebx, %ebx
jmp 0x8e29c
cmpl $0x61, %ecx
je 0x8e293
cmpl $0x62, %ecx
jne 0x8e298
xorl %edx, %edx
jmp 0x8e29c
xorl %r14d, %r14d
jmp 0x8e29c
xorl %r13d, %r13d
jmp 0x8e29c
xorl %r12d, %r12d
jmp 0x8e29c
testl %ecx, %ecx
je 0x8e2a0
incl %eax
jmp 0x8e25c
movl %edx, -0x5c(%rbp)
jmp 0x8e2b5
movb $0x1, %r13b
movb $0x1, %al
movl %eax, -0x5c(%rbp)
movb $0x1, %r12b
movb $0x1, %r14b
movb $0x1, %bl
leaq 0x15479(%rip), %rdx     # 0xa3735
movq -0x70(%rbp), %rdi
movq -0x88(%rbp), %r15
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
testb $0x1, %bl
je 0x8ec81
movq $0x1, -0x38(%rbp)
movl $0x8, %eax
movq %rax, -0x68(%rbp)
movq %rax, -0x80(%rbp)
movq %rax, -0x98(%rbp)
leaq -0x50(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x854f(%rip), %rdi      # 0x96853
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f1ac
movl %r13d, -0xa0(%rbp)
movq -0x78(%rbp), %rcx
leaq 0x15458(%rip), %rdx     # 0xa3784
movq -0x70(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x50(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0x15442(%rip), %rdi     # 0xa3791
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f1bc
leaq 0xb506(%rip), %rax      # 0x99872
leaq 0xe5b9(%rip), %rcx      # 0x9c92c
leaq -0x30(%rbp), %r13
cmpb $0x0, (%r13)
cmovneq %rax, %rcx
leaq 0x15417(%rip), %rdx     # 0xa379e
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15412(%rip), %rdx     # 0xa37ad
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15419(%rip), %rdi     # 0xa37c8
leaq -0x38(%rbp), %rdx
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e3ee
leaq 0xcfc7(%rip), %rax      # 0x9b392
leaq 0x136a6(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x153f1(%rip), %rdx     # 0xa37d2
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x153ee(%rip), %rdi     # 0xa37e3
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e423
movq -0x48(%rbp), %rcx
leaq 0x153da(%rip), %rdx     # 0xa37f0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x153db(%rip), %rdi     # 0xa3805
leaq -0x78(%rbp), %rsi
leaq -0x98(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e45b
movq -0x78(%rbp), %rcx
leaq 0x153bf(%rip), %rdx     # 0xa380d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x153bc(%rip), %rdi     # 0xa381e
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e490
movq -0x48(%rbp), %rcx
leaq 0x153a7(%rip), %rdx     # 0xa382a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x153a7(%rip), %rdi     # 0xa383e
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e4c5
movq -0x50(%rbp), %rcx
leaq 0x15398(%rip), %rdx     # 0xa3850
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x1539e(%rip), %rdi     # 0xa386a
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e50c
leaq 0xcea9(%rip), %rax      # 0x9b392
leaq 0x13588(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1537b(%rip), %rdx     # 0xa387a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x1537e(%rip), %rdi     # 0xa3891
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e553
leaq 0xce62(%rip), %rax      # 0x9b392
leaq 0x13541(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15354(%rip), %rdx     # 0xa389a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15350(%rip), %rdi     # 0xa38aa
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e588
movq -0x48(%rbp), %rcx
leaq 0x1533e(%rip), %rdx     # 0xa38b9
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15341(%rip), %rdi     # 0xa38d0
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e5cf
leaq 0xcde6(%rip), %rax      # 0x9b392
leaq 0x134c5(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1531a(%rip), %rdx     # 0xa38dc
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15319(%rip), %rdi     # 0xa38ef
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e616
leaq 0xcd9f(%rip), %rax      # 0x9b392
leaq 0x1347e(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x152ef(%rip), %rdx     # 0xa38f8
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x152eb(%rip), %rdi     # 0xa3908
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e65d
leaq 0xcd58(%rip), %rax      # 0x9b392
leaq 0x13437(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x152c3(%rip), %rdx     # 0xa3913
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x152c1(%rip), %rdi     # 0xa3925
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e6a4
leaq 0xcd11(%rip), %rax      # 0x9b392
leaq 0x133f0(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1529b(%rip), %rdx     # 0xa3932
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x1529b(%rip), %rdi     # 0xa3946
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e6eb
leaq 0xccca(%rip), %rax      # 0x9b392
leaq 0x133a9(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15274(%rip), %rdx     # 0xa3952
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15273(%rip), %rdi     # 0xa3965
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e732
leaq 0xcc83(%rip), %rax      # 0x9b392
leaq 0x13362(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1524b(%rip), %rdx     # 0xa3970
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15249(%rip), %rdi     # 0xa3982
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e767
movq -0x50(%rbp), %rcx
leaq 0x1523a(%rip), %rdx     # 0xa3994
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15240(%rip), %rdi     # 0xa39ae
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e7ae
leaq 0xcc07(%rip), %rax      # 0x9b392
leaq 0x132e6(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15216(%rip), %rdx     # 0xa39b7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15212(%rip), %rdi     # 0xa39c7
leaq -0x78(%rbp), %rsi
leaq -0x98(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e7e6
movq -0x78(%rbp), %rcx
leaq 0x151fe(%rip), %rdx     # 0xa39d7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15203(%rip), %rdi     # 0xa39f0
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e82d
leaq 0xcb88(%rip), %rax      # 0x9b392
leaq 0x13267(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x151e0(%rip), %rdx     # 0xa3a00
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x151e3(%rip), %rdi     # 0xa3a17
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e862
movq -0x50(%rbp), %rcx
leaq 0x151d5(%rip), %rdx     # 0xa3a2a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x151dc(%rip), %rdi     # 0xa3a45
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e8a9
leaq 0xcb0c(%rip), %rax      # 0x9b392
leaq 0x131eb(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x151b8(%rip), %rdx     # 0xa3a54
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x151ba(%rip), %rdi     # 0xa3a6a
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e8de
movq -0x50(%rbp), %rcx
leaq 0x151ae(%rip), %rdx     # 0xa3a7f
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x151b7(%rip), %rdi     # 0xa3a9c
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e925
leaq 0xca90(%rip), %rax      # 0x9b392
leaq 0x1316f(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15193(%rip), %rdx     # 0xa3aab
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15195(%rip), %rdi     # 0xa3ac1
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e96c
leaq 0xca49(%rip), %rax      # 0x9b392
leaq 0x13128(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x15171(%rip), %rdx     # 0xa3ad0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15173(%rip), %rdi     # 0xa3ae6
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8e9b3
leaq 0xca02(%rip), %rax      # 0x9b392
leaq 0x130e1(%rip), %rcx     # 0xa1a78
cmpb $0x0, -0x30(%rbp)
cmovneq %rax, %rcx
leaq 0x1514e(%rip), %rdx     # 0xa3af4
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x5020e(%rip), %rax     # 0xdebc8
movl (%rax), %ecx
leaq 0x15146(%rip), %rdx     # 0xa3b09
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x15131(%rip), %rdi     # 0xa3b13
leaq -0xa8(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f0c0
movl -0xa8(%rbp), %ecx
leaq 0x1511a(%rip), %rdx     # 0xa3b22
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x15112(%rip), %rdx     # 0xa3b2e
movl $0x8, %ecx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x15101(%rip), %rdi     # 0xa3b41
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f1cc
leaq -0x48(%rbp), %r13
movq (%r13), %rcx
leaq 0x150eb(%rip), %rdx     # 0xa3b50
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x150df(%rip), %rdi     # 0xa3b63
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f1dc
movq -0x48(%rbp), %rcx
leaq 0x150cb(%rip), %rdx     # 0xa3b6f
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14d7b(%rip), %rdi     # 0xa383e
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
movl -0xa0(%rbp), %r13d
jne 0x8f1ec
movq -0x50(%rbp), %rcx
testq %rcx, %rcx
js 0x8eb08
movl $0x1, %eax
shll %cl, %eax
leaq 0x15088(%rip), %rdx     # 0xa3b7f
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x92243
jmp 0x8eb1c
leaq 0x1509d(%rip), %rdx     # 0xa3bac
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x150b5(%rip), %rdi     # 0xa3bd8
leaq -0x48(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8eb51
movq -0x48(%rbp), %rcx
leaq 0x150a6(%rip), %rdx     # 0xa3bea
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq 0x14e56(%rip), %rdi     # 0xa39ae
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8ec33
cmpb $0x1, -0x30(%rbp)
jne 0x8ec33
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e89(%rip), %rdi     # 0xa3a17
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f216
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x15057(%rip), %rdx     # 0xa3c11
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14e8e(%rip), %rdi     # 0xa3a6a
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f226
movq -0x50(%rbp), %r8
testq %r8, %r8
js 0x8ec1f
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x15032(%rip), %rdx     # 0xa3c3f
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92243
jmp 0x8ec33
leaq 0x15045(%rip), %rdx     # 0xa3c6b
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14b9e(%rip), %rdi     # 0xa37e3
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f1fc
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x1501e(%rip), %rdx     # 0xa3c8f
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x92243
leaq -0x50(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x15015(%rip), %rdi     # 0xa3ca8
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f0e4
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14ffb(%rip), %rdi     # 0xa3cb6
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
movq -0x70(%rbp), %rbx
jne 0x8f0f7
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14fdf(%rip), %rdi     # 0xa3cc6
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f10a
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14fc4(%rip), %rdi     # 0xa3cd3
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f11d
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x38(%rbp), %r9
leaq 0x14fa8(%rip), %rdx     # 0xa3ce0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
movq -0x78(%rbp), %rax
mfence
movq (%rax), %rcx
leaq 0x14fb4(%rip), %rdx     # 0xa3d0a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14fb2(%rip), %rdi     # 0xa3d27
leaq -0x98(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f130
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f9a(%rip), %rdi     # 0xa3d3a
leaq -0x80(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f143
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f84(%rip), %rdi     # 0xa3d4c
leaq -0x68(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f156
leaq 0x14f7c(%rip), %rdx     # 0xa3d61
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
movq -0x98(%rbp), %rcx
movq -0x80(%rbp), %r8
movq -0x68(%rbp), %r9
leaq 0x14f84(%rip), %rdx     # 0xa3d8c
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f7a(%rip), %rdi     # 0xa3da1
leaq -0xa8(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f169
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f62(%rip), %rdi     # 0xa3db4
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f17c
leaq -0x90(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14f4a(%rip), %rdi     # 0xa3dc7
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f18c
leaq 0x14f42(%rip), %rdx     # 0xa3ddc
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
movq -0xa8(%rbp), %rcx
movq -0x30(%rbp), %r8
movq -0x58(%rbp), %r9
leaq 0x1558f(%rip), %rdx     # 0xa444c
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
testb $0x1, %r14b
je 0x8efae
leaq -0x90(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x14c2a(%rip), %rdi     # 0xa3b13
leaq -0x3c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f0c0
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 -0x90(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x14edb(%rip), %rdi     # 0xa3e05
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f19c
movl -0x3c(%rbp), %eax
movl %r12d, %ecx
testq %rax, %rax
je 0x8ef66
xorl %ecx, %ecx
xorl %edx, %edx
movzbl (%r15,%rcx), %esi
addl %esi, %edx
incq %rcx
cmpq %rcx, %rax
jne 0x8ef4e
cmpl $0x2, %edx
setb %cl
andb %r12b, %cl
testb $0x1, %cl
movq -0x88(%rbp), %r15
jne 0x8efa7
leaq 0x14e9f(%rip), %rdx     # 0xa3e18
movq -0x70(%rbp), %r14
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
movl -0x3c(%rbp), %edx
movzbl -0x5c(%rbp), %ecx
andl $0x1, %ecx
movzbl %r13b, %r8d
andl $0x1, %r8d
movq %r14, %rdi
movq %r15, %rsi
callq 0x8f236
movq %rbx, %rsp
movq -0x70(%rbp), %rbx
testb $0x1, %r12b
je 0x8f09d
leaq -0x90(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x14b46(%rip), %rdi     # 0xa3b13
leaq -0x3c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f0c0
movq %rsp, -0xa0(%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 -0x90(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x14df3(%rip), %rdi     # 0xa3e05
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x7e2f3
testl %eax, %eax
jne 0x8f19c
cmpl $0x0, -0x3c(%rbp)
movl -0x5c(%rbp), %eax
je 0x8f08b
movzbl %al, %eax
andl $0x1, %eax
movl %eax, -0x5c(%rbp)
movzbl %r13b, %ebx
andl $0x1, %ebx
xorl %r14d, %r14d
movq -0x70(%rbp), %r13
movq -0x88(%rbp), %r12
cmpb $0x1, (%r15,%r14)
jne 0x8f080
movq %r13, %rdi
movq %r12, %rsi
leaq 0x14dcd(%rip), %rdx     # 0xa3e2f
movl %r14d, %ecx
xorl %eax, %eax
callq 0x92243
movq %r13, %rdi
movq %r12, %rsi
movl %r14d, %edx
movl -0x5c(%rbp), %ecx
movl %ebx, %r8d
callq 0x8f236
incq %r14
movl -0x3c(%rbp), %eax
cmpq %rax, %r14
jb 0x8f04e
movq -0xa0(%rbp), %rsp
movq -0x88(%rbp), %r15
movq -0x70(%rbp), %rbx
leaq 0x14d99(%rip), %rdx     # 0xa3e3d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x92243
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x14691(%rip), %rdi     # 0xa3758
leaq 0x14a45(%rip), %rsi     # 0xa3b13
jmp 0x8f20a
leaq 0x1462d(%rip), %rdi     # 0xa3707
callq 0x9124c
callq 0x1f1b0
leaq 0x1466d(%rip), %rdi     # 0xa3758
leaq 0x14bb6(%rip), %rsi     # 0xa3ca8
jmp 0x8f20a
leaq 0x1465a(%rip), %rdi     # 0xa3758
leaq 0x14bb1(%rip), %rsi     # 0xa3cb6
jmp 0x8f20a
leaq 0x14647(%rip), %rdi     # 0xa3758
leaq 0x14bae(%rip), %rsi     # 0xa3cc6
jmp 0x8f20a
leaq 0x14634(%rip), %rdi     # 0xa3758
leaq 0x14ba8(%rip), %rsi     # 0xa3cd3
jmp 0x8f20a
leaq 0x14621(%rip), %rdi     # 0xa3758
leaq 0x14be9(%rip), %rsi     # 0xa3d27
jmp 0x8f20a
leaq 0x1460e(%rip), %rdi     # 0xa3758
leaq 0x14be9(%rip), %rsi     # 0xa3d3a
jmp 0x8f20a
leaq 0x145fb(%rip), %rdi     # 0xa3758
leaq 0x14be8(%rip), %rsi     # 0xa3d4c
jmp 0x8f20a
leaq 0x145e8(%rip), %rdi     # 0xa3758
leaq 0x14c2a(%rip), %rsi     # 0xa3da1
jmp 0x8f20a
leaq 0x145d5(%rip), %rdi     # 0xa3758
leaq 0x14c2a(%rip), %rsi     # 0xa3db4
jmp 0x8f20a
leaq 0x145c5(%rip), %rdi     # 0xa3758
leaq 0x14c2d(%rip), %rsi     # 0xa3dc7
jmp 0x8f20a
leaq 0x145b5(%rip), %rdi     # 0xa3758
leaq 0x14c5b(%rip), %rsi     # 0xa3e05
jmp 0x8f20a
leaq 0x145a5(%rip), %rdi     # 0xa3758
leaq 0x7699(%rip), %rsi      # 0x96853
jmp 0x8f20a
leaq 0x14595(%rip), %rdi     # 0xa3758
leaq 0x145c7(%rip), %rsi     # 0xa3791
jmp 0x8f20a
leaq 0x14585(%rip), %rdi     # 0xa3758
leaq 0x14967(%rip), %rsi     # 0xa3b41
jmp 0x8f20a
leaq 0x14575(%rip), %rdi     # 0xa3758
leaq 0x14979(%rip), %rsi     # 0xa3b63
jmp 0x8f20a
leaq 0x14565(%rip), %rdi     # 0xa3758
leaq 0x14644(%rip), %rsi     # 0xa383e
jmp 0x8f20a
leaq 0x14555(%rip), %rdi     # 0xa3758
leaq 0x145d9(%rip), %rsi     # 0xa37e3
xorl %eax, %eax
callq 0x92309
callq 0x1f1b0
leaq 0x1453b(%rip), %rdi     # 0xa3758
leaq 0x147f3(%rip), %rsi     # 0xa3a17
jmp 0x8f20a
leaq 0x1452b(%rip), %rdi     # 0xa3758
leaq 0x14836(%rip), %rsi     # 0xa3a6a
jmp 0x8f20a