// File: /workspace/github_c_makefile_star2_O2/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, %r12
movq %rsi, -0x98(%rbp)
movq %rdi, %rbx
leaq -0xc0(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xb8(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe37e(%rip), %rdi      # 0x92eae
pushq $0x8
popq %r15
movq %rcx, %rsi
movq %r15, %r8
callq 0x768a8
testl %eax, %eax
je 0x84b5d
cmpl $0xb, %eax
jne 0x85973
leaq 0x14c15(%rip), %rdi     # 0x99768
callq 0x879d0
jmp 0x85951
movq %rbx, -0x38(%rbp)
testq %r12, %r12
je 0x84bbe
xorl %eax, %eax
movb $0x1, %sil
movb $0x1, %r14b
movb $0x1, %dl
movb $0x1, %r13b
movb $0x1, %bl
movl %eax, %ecx
movzbl (%r12,%rcx), %ecx
cmpl $0x61, %ecx
je 0x84ba4
cmpl $0x62, %ecx
je 0x84bac
cmpl $0x67, %ecx
je 0x84b9b
cmpl $0x6c, %ecx
je 0x84ba8
cmpl $0x6d, %ecx
je 0x84b9f
testl %ecx, %ecx
jne 0x84baf
jmp 0x84bb3
xorl %ebx, %ebx
jmp 0x84baf
xorl %r13d, %r13d
jmp 0x84baf
xorl %edx, %edx
jmp 0x84baf
xorl %esi, %esi
jmp 0x84baf
xorl %r14d, %r14d
incl %eax
jmp 0x84b75
movl %esi, -0x5c(%rbp)
movl %edx, -0x90(%rbp)
jmp 0x84bd3
movb $0x1, %al
movl %eax, -0x5c(%rbp)
movb $0x1, %r14b
movb $0x1, %al
movl %eax, -0x90(%rbp)
movb $0x1, %r13b
movb $0x1, %bl
leaq 0x14bfc(%rip), %rdx     # 0x997d6
movq -0x38(%rbp), %rdi
movq -0x98(%rbp), %r12
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
testb $0x1, %bl
je 0x85517
movq $0x1, -0x40(%rbp)
movq %r15, -0x70(%rbp)
movq %r15, -0x88(%rbp)
movq %r15, -0xa8(%rbp)
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq 0x7c40(%rip), %rdi      # 0x8c860
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a4c
movq -0x78(%rbp), %rcx
leaq 0x14be4(%rip), %rdx     # 0x99825
movq -0x38(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x58(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0x14bce(%rip), %rdi     # 0x99832
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a5c
leaq 0xabfd(%rip), %rax      # 0x8f87e
leaq 0xdca4(%rip), %rcx      # 0x9292c
leaq -0x30(%rbp), %rbx
cmpb $0x0, (%rbx)
cmovneq %rax, %rcx
leaq 0x14ba5(%rip), %rdx     # 0x9983f
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14ba0(%rip), %rdx     # 0x9984e
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14ba7(%rip), %rdi     # 0x99869
leaq -0x40(%rbp), %rdx
movq %rbx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
leaq 0xc6b8(%rip), %rbx      # 0x91392
leaq 0x12db7(%rip), %r15     # 0x97a98
testl %eax, %eax
jne 0x84d05
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14b7c(%rip), %rdx     # 0x99873
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b78(%rip), %rdi     # 0x99884
leaq -0x48(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84d3b
movq -0x48(%rbp), %rcx
leaq 0x14b64(%rip), %rdx     # 0x99891
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b64(%rip), %rdi     # 0x998a6
leaq -0x78(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84d74
movq -0x78(%rbp), %rcx
leaq 0x14b48(%rip), %rdx     # 0x998ae
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b44(%rip), %rdi     # 0x998bf
leaq -0x48(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84daa
movq -0x48(%rbp), %rcx
leaq 0x14b2f(%rip), %rdx     # 0x998cb
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b2e(%rip), %rdi     # 0x998df
leaq -0x58(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84de3
movq -0x58(%rbp), %rcx
leaq 0x14b1c(%rip), %rdx     # 0x998f1
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b21(%rip), %rdi     # 0x9990b
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84e20
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14b09(%rip), %rdx     # 0x9991b
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14b0b(%rip), %rdi     # 0x99932
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84e5d
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14aec(%rip), %rdx     # 0x9993b
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14ae7(%rip), %rdi     # 0x9994b
leaq -0x48(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84e93
movq -0x48(%rbp), %rcx
leaq 0x14ad5(%rip), %rdx     # 0x9995a
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14ad7(%rip), %rdi     # 0x99971
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84ed0
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14abb(%rip), %rdx     # 0x9997d
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14ab9(%rip), %rdi     # 0x99990
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84f0d
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14a9a(%rip), %rdx     # 0x99999
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a95(%rip), %rdi     # 0x999a9
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84f4a
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14a78(%rip), %rdx     # 0x999b4
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a75(%rip), %rdi     # 0x999c6
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84f87
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14a5a(%rip), %rdx     # 0x999d3
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a59(%rip), %rdi     # 0x999e7
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x84fc4
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14a3d(%rip), %rdx     # 0x999f3
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a3b(%rip), %rdi     # 0x99a06
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85001
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14a1e(%rip), %rdx     # 0x99a11
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a1b(%rip), %rdi     # 0x99a23
leaq -0x58(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x8503a
movq -0x58(%rbp), %rcx
leaq 0x14a09(%rip), %rdx     # 0x99a35
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14a0e(%rip), %rdi     # 0x99a4f
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85077
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x149ef(%rip), %rdx     # 0x99a58
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x149ea(%rip), %rdi     # 0x99a68
leaq -0x78(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x850b0
movq -0x78(%rbp), %rcx
leaq 0x149d6(%rip), %rdx     # 0x99a78
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x149da(%rip), %rdi     # 0x99a91
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x850ed
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x149c2(%rip), %rdx     # 0x99aa1
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x149c4(%rip), %rdi     # 0x99ab8
leaq -0x58(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85126
movq -0x58(%rbp), %rcx
leaq 0x149b3(%rip), %rdx     # 0x99acb
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x149b9(%rip), %rdi     # 0x99ae6
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85163
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x149a0(%rip), %rdx     # 0x99af5
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x149a1(%rip), %rdi     # 0x99b0b
leaq -0x58(%rbp), %rsi
leaq -0x88(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x8519c
movq -0x58(%rbp), %rcx
leaq 0x14992(%rip), %rdx     # 0x99b20
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x1499a(%rip), %rdi     # 0x99b3d
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x851d9
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14981(%rip), %rdx     # 0x99b4c
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x14982(%rip), %rdi     # 0x99b62
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85216
cmpb $0x0, -0x30(%rbp)
movq %r15, %rcx
cmovneq %rbx, %rcx
leaq 0x14969(%rip), %rdx     # 0x99b71
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x1496a(%rip), %rdi     # 0x99b87
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85253
cmpb $0x0, -0x30(%rbp)
cmovneq %rbx, %r15
leaq 0x14953(%rip), %rdx     # 0x99b95
movq -0x38(%rbp), %rdi
movq %r12, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x88801
leaq 0x5696e(%rip), %rax     # 0xdbbc8
movl (%rax), %ecx
leaq 0x14947(%rip), %rdx     # 0x99baa
movq -0x38(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x1492e(%rip), %rdi     # 0x99bb4
leaq -0xb0(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85960
movl -0xb0(%rbp), %ecx
leaq 0x14917(%rip), %rdx     # 0x99bc3
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x1490f(%rip), %rdx     # 0x99bcf
pushq $0x8
popq %rcx
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14900(%rip), %rdi     # 0x99be2
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a6c
leaq -0x48(%rbp), %rbx
movq (%rbx), %rcx
leaq 0x148eb(%rip), %rdx     # 0x99bf1
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x148df(%rip), %rdi     # 0x99c04
movq %rbx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a7c
movq -0x48(%rbp), %rcx
leaq 0x148cb(%rip), %rdx     # 0x99c10
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x1457b(%rip), %rdi     # 0x998df
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a8c
movq %r15, %rbx
movq -0x58(%rbp), %rcx
testq %rcx, %rcx
js 0x853a3
pushq $0x1
popq %rax
shll %cl, %eax
leaq 0x1488e(%rip), %rdx     # 0x99c20
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x88801
jmp 0x853b7
leaq 0x148a3(%rip), %rdx     # 0x99c4d
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x148bb(%rip), %rdi     # 0x99c79
leaq -0x48(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x853ec
movq -0x48(%rbp), %rcx
leaq 0x148ac(%rip), %rdx     # 0x99c8b
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq 0x1465c(%rip), %rdi     # 0x99a4f
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
pushq $0x1
popq %r15
testl %eax, %eax
jne 0x854ce
cmpb $0x1, -0x30(%rbp)
jne 0x854ce
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x1468b(%rip), %rdi     # 0x99ab8
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85ab6
movq -0x48(%rbp), %r8
movq %r15, %rax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x1485b(%rip), %rdx     # 0x99cb2
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14692(%rip), %rdi     # 0x99b0b
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85ac6
movq -0x58(%rbp), %r8
testq %r8, %r8
js 0x854ba
movq %r15, %rax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0x14838(%rip), %rdx     # 0x99ce0
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x88801
jmp 0x854ce
leaq 0x1484b(%rip), %rdx     # 0x99d0c
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x143a4(%rip), %rdi     # 0x99884
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a9c
movq -0x48(%rbp), %r8
movl %r8d, %ecx
shlq %cl, %r15
leaq 0x14829(%rip), %rdx     # 0x99d30
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x88801
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14820(%rip), %rdi     # 0x99d49
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85984
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14806(%rip), %rdi     # 0x99d57
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
movq -0x38(%rbp), %rbx
jne 0x85997
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x147ea(%rip), %rdi     # 0x99d67
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x859aa
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x147cf(%rip), %rdi     # 0x99d74
leaq -0x40(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x859bd
movq -0x58(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x40(%rbp), %r9
leaq 0x147b3(%rip), %rdx     # 0x99d81
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
movq -0x78(%rbp), %rax
mfence
movq (%rax), %rcx
leaq 0x147bf(%rip), %rdx     # 0x99dab
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x147bd(%rip), %rdi     # 0x99dc8
leaq -0xa8(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x859d0
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x147a5(%rip), %rdi     # 0x99ddb
leaq -0x88(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x859e3
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x1478c(%rip), %rdi     # 0x99ded
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x859f6
leaq 0x14784(%rip), %rdx     # 0x99e02
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
movq -0xa8(%rbp), %rcx
movq -0x88(%rbp), %r8
movq -0x70(%rbp), %r9
leaq 0x14789(%rip), %rdx     # 0x99e2d
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x1477f(%rip), %rdi     # 0x99e42
leaq -0xb0(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a09
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x14767(%rip), %rdi     # 0x99e55
leaq -0x30(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a1c
leaq -0xa0(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x1474f(%rip), %rdi     # 0x99e68
leaq -0x68(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a2c
leaq 0x14747(%rip), %rdx     # 0x99e7d
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
movq -0xb0(%rbp), %rcx
movq -0x30(%rbp), %r8
movq -0x68(%rbp), %r9
leaq 0x14d94(%rip), %rdx     # 0x9a4ed
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x88801
movzbl %r14b, %eax
movl %eax, -0x7c(%rbp)
movzbl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
testb $0x1, %r13b
je 0x85858
leaq -0xa0(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x14421(%rip), %rdi     # 0x99bb4
leaq -0x4c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85960
movq %rsp, %rbx
movl -0x4c(%rbp), %eax
movq %rsp, %r13
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r13
movq %r13, %rsp
movl -0x4c(%rbp), %eax
leaq -0xa0(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x146d2(%rip), %rdi     # 0x99ea6
xorl %r14d, %r14d
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a3c
movl -0x4c(%rbp), %eax
xorl %ecx, %ecx
movl -0x90(%rbp), %esi
cmpq %rcx, %rax
je 0x8580a
movzbl (%r13,%rcx), %edx
addl %edx, %r14d
incq %rcx
jmp 0x857f7
cmpl $0x2, %r14d
setb %al
testb %sil, %al
jne 0x85851
leaq 0x1469c(%rip), %rdx     # 0x99eb9
movq -0x38(%rbp), %r15
movq %r15, %rdi
movq -0x98(%rbp), %r14
movq %r14, %rsi
xorl %eax, %eax
callq 0x88801
movl -0x4c(%rbp), %edx
movl -0x7c(%rbp), %ecx
andl $0x1, %ecx
movl -0x5c(%rbp), %r8d
andl $0x1, %r8d
movq %r15, %rdi
movq %r14, %rsi
callq 0x85ad6
movq %rbx, %rsp
movq -0x38(%rbp), %rbx
testb $0x1, -0x90(%rbp)
je 0x85939
leaq -0xa0(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0x1433a(%rip), %rdi     # 0x99bb4
leaq -0x4c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85960
movq %rsp, -0x90(%rbp)
movl -0x4c(%rbp), %eax
movq %rsp, %r13
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r13
movq %r13, %rsp
movl -0x4c(%rbp), %eax
leaq -0xa0(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x145e7(%rip), %rdi     # 0x99ea6
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x768a8
testl %eax, %eax
jne 0x85a3c
leaq 0x145f5(%rip), %rbx     # 0x99ed0
andl $0x1, -0x7c(%rbp)
andl $0x1, -0x5c(%rbp)
xorl %r14d, %r14d
movq -0x38(%rbp), %r12
movq -0x98(%rbp), %r15
movl -0x4c(%rbp), %eax
cmpq %rax, %r14
jae 0x8592e
cmpb $0x1, (%r13,%r14)
jne 0x85929
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movl %r14d, %ecx
xorl %eax, %eax
callq 0x88801
movq %r12, %rdi
movq %r15, %rsi
movl %r14d, %edx
movl -0x7c(%rbp), %ecx
movl -0x5c(%rbp), %r8d
callq 0x85ad6
incq %r14
jmp 0x858f1
movq -0x90(%rbp), %rsp
movq -0x38(%rbp), %rbx
leaq 0x1459e(%rip), %rdx     # 0x99ede
movq %rbx, %rdi
movq -0x98(%rbp), %rsi
xorl %eax, %eax
callq 0x88801
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x13e92(%rip), %rdi     # 0x997f9
leaq 0x14246(%rip), %rsi     # 0x99bb4
jmp 0x85aaa
leaq 0x13e2e(%rip), %rdi     # 0x997a8
callq 0x879d0
callq 0x1f1b0
leaq 0x13e6e(%rip), %rdi     # 0x997f9
leaq 0x143b7(%rip), %rsi     # 0x99d49
jmp 0x85aaa
leaq 0x13e5b(%rip), %rdi     # 0x997f9
leaq 0x143b2(%rip), %rsi     # 0x99d57
jmp 0x85aaa
leaq 0x13e48(%rip), %rdi     # 0x997f9
leaq 0x143af(%rip), %rsi     # 0x99d67
jmp 0x85aaa
leaq 0x13e35(%rip), %rdi     # 0x997f9
leaq 0x143a9(%rip), %rsi     # 0x99d74
jmp 0x85aaa
leaq 0x13e22(%rip), %rdi     # 0x997f9
leaq 0x143ea(%rip), %rsi     # 0x99dc8
jmp 0x85aaa
leaq 0x13e0f(%rip), %rdi     # 0x997f9
leaq 0x143ea(%rip), %rsi     # 0x99ddb
jmp 0x85aaa
leaq 0x13dfc(%rip), %rdi     # 0x997f9
leaq 0x143e9(%rip), %rsi     # 0x99ded
jmp 0x85aaa
leaq 0x13de9(%rip), %rdi     # 0x997f9
leaq 0x1442b(%rip), %rsi     # 0x99e42
jmp 0x85aaa
leaq 0x13dd6(%rip), %rdi     # 0x997f9
leaq 0x1442b(%rip), %rsi     # 0x99e55
jmp 0x85aaa
leaq 0x13dc6(%rip), %rdi     # 0x997f9
leaq 0x1442e(%rip), %rsi     # 0x99e68
jmp 0x85aaa
leaq 0x13db6(%rip), %rdi     # 0x997f9
leaq 0x1445c(%rip), %rsi     # 0x99ea6
jmp 0x85aaa
leaq 0x13da6(%rip), %rdi     # 0x997f9
leaq 0x6e06(%rip), %rsi      # 0x8c860
jmp 0x85aaa
leaq 0x13d96(%rip), %rdi     # 0x997f9
leaq 0x13dc8(%rip), %rsi     # 0x99832
jmp 0x85aaa
leaq 0x13d86(%rip), %rdi     # 0x997f9
leaq 0x14168(%rip), %rsi     # 0x99be2
jmp 0x85aaa
leaq 0x13d76(%rip), %rdi     # 0x997f9
leaq 0x1417a(%rip), %rsi     # 0x99c04
jmp 0x85aaa
leaq 0x13d66(%rip), %rdi     # 0x997f9
leaq 0x13e45(%rip), %rsi     # 0x998df
jmp 0x85aaa
leaq 0x13d56(%rip), %rdi     # 0x997f9
leaq 0x13dda(%rip), %rsi     # 0x99884
xorl %eax, %eax
callq 0x88881
callq 0x1f1b0
leaq 0x13d3c(%rip), %rdi     # 0x997f9
leaq 0x13ff4(%rip), %rsi     # 0x99ab8
jmp 0x85aaa
leaq 0x13d2c(%rip), %rdi     # 0x997f9
leaq 0x14037(%rip), %rsi     # 0x99b0b
jmp 0x85aaa