// File: /workspace/github_c_makefile_star2_O2/gplessis[P]dotdeb-redis/deps/jemalloc/src/stats.c
// Function: je_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;
	bool huge = 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;
			case 'h':
				huge = false;
				break;
			default:;
			}
		}
	}

	malloc_cprintf(write_cb, cbopaque,
	    "___ Begin jemalloc statistics ___\n");
	if (general) {
		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 (je_mallctl("opt."#n, &bv, &bsz, NULL, 0) == 0) {	\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %s\n", bv ? "true" : "false");	\
		}
#define	OPT_WRITE_BOOL_MUTABLE(n, m) {					\
		bool bv2;						\
		if (je_mallctl("opt."#n, &bv, &bsz, NULL, 0) == 0 &&	\
		    je_mallctl(#m, &bv2, &bsz, NULL, 0) == 0) {		\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %s ("#m": %s)\n", bv ? "true"	\
			    : "false", bv2 ? "true" : "false");		\
		}							\
}
#define	OPT_WRITE_SIZE_T(n)						\
		if (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 (je_mallctl("opt."#n, &ssv, &sssz, NULL, 0) == 0) {	\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %zd\n", ssv);			\
		}
#define	OPT_WRITE_SSIZE_T_MUTABLE(n, m) {				\
		ssize_t ssv2;						\
		if (je_mallctl("opt."#n, &ssv, &sssz, NULL, 0) == 0 &&	\
		    je_mallctl(#m, &ssv2, &sssz, NULL, 0) == 0) {	\
			malloc_cprintf(write_cb, cbopaque,		\
			    "  opt."#n": %zd ("#m": %zd)\n",		\
			    ssv, ssv2);					\
		}							\
}
#define	OPT_WRITE_CHAR_P(n)						\
		if (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_MUTABLE(lg_dirty_mult, arenas.lg_dirty_mult)
		OPT_WRITE_BOOL(stats_print)
		OPT_WRITE_CHAR_P(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_MUTABLE(prof_active, prof.active)
		OPT_WRITE_BOOL_MUTABLE(prof_thread_active_init,
		    prof.thread_active_init)
		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_BOOL_MUTABLE
#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("arenas.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 (je_mallctl("arenas.tcache_max", &sv, &ssz, NULL, 0) == 0) {
			malloc_cprintf(write_cb, cbopaque,
			    "Maximum thread-cached size class: %zu\n", sv);
		}
		if (je_mallctl("opt.prof", &bv, &bsz, NULL, 0) == 0 && bv) {
			CTL_GET("prof.lg_sample", &sv, size_t);
			malloc_cprintf(write_cb, cbopaque,
			    "Average profile sample interval: %"FMTu64
			    " (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: %"FMTu64
				    " (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, metadata, resident, mapped;

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

		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) {
					/* Print merged arena stats. */
					malloc_cprintf(write_cb, cbopaque,
					    "\nMerged arenas stats:\n");
					stats_arena_print(write_cb, cbopaque,
					    narenas, bins, large, huge);
				}
			}
		}

		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,
						    huge);
					}
				}
			}
		}
	}
	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 $0x88, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
leaq -0xb0(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xa8(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x7d27(%rip), %rdi      # 0x3bf63
pushq $0x8
popq %r8
movq %rcx, %rsi
callq 0x20db6
testl %eax, %eax
je 0x34266
cmpl $0xb, %eax
jne 0x3509d
leaq 0xef70(%rip), %rdi      # 0x431cc
callq 0x37d1c
jmp 0x3507b
movq %r14, -0x38(%rbp)
movq %rbx, -0x90(%rbp)
testq %r12, %r12
je 0x342d8
xorl %eax, %eax
movb $0x1, %r8b
leaq 0xef16(%rip), %rcx      # 0x43198
movb $0x1, %r15b
movb $0x1, %bl
movb $0x1, %dil
movb $0x1, %r14b
movb $0x1, %r13b
movl %eax, %edx
movzbl (%r12,%rdx), %edx
leal -0x61(%rdx), %esi
cmpl $0xc, %esi
ja 0x342c4
movslq (%rcx,%rsi,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
xorl %edi, %edi
jmp 0x342c8
xorl %r13d, %r13d
jmp 0x342c8
xorl %ebx, %ebx
jmp 0x342c8
xorl %r14d, %r14d
jmp 0x342c8
xorl %r15d, %r15d
jmp 0x342c8
xorl %r8d, %r8d
jmp 0x342c8
testl %edx, %edx
je 0x342cc
incl %eax
jmp 0x34290
movl %r8d, -0x5c(%rbp)
movl %edi, -0x98(%rbp)
jmp 0x342f0
movb $0x1, %al
movl %eax, -0x5c(%rbp)
movb $0x1, %r15b
movb $0x1, %bl
movb $0x1, %al
movl %eax, -0x98(%rbp)
movb $0x1, %r14b
movb $0x1, %r13b
leaq 0xef43(%rip), %rdx      # 0x4323a
movq -0x38(%rbp), %rdi
movq -0x90(%rbp), %rsi
xorl %eax, %eax
callq 0x38c1e
testb $0x1, %r13b
je 0x34d36
movq $0x1, -0x48(%rbp)
pushq $0x8
popq %rax
movq %rax, -0x80(%rbp)
movq %rax, -0x78(%rbp)
movq %rax, -0x70(%rbp)
leaq -0x58(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xabec(%rip), %rdi      # 0x3ef24
leaq -0x68(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3512a
movq -0x68(%rbp), %rcx
leaq 0xef30(%rip), %rdx      # 0x43289
movq -0x38(%rbp), %r13
movq %r13, %rdi
movq -0x90(%rbp), %r12
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x58(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0xef13(%rip), %rdi      # 0x43296
leaq -0x29(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3513a
leaq 0xed00(%rip), %rax      # 0x430a0
leaq 0xec81(%rip), %rcx      # 0x43028
leaq -0x29(%rbp), %rdx
cmpb $0x0, (%rdx)
cmovneq %rax, %rcx
leaq 0xeeea(%rip), %rdx      # 0x432a3
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeee5(%rip), %rdx      # 0x432b2
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeeec(%rip), %rdi      # 0x432cd
leaq -0x48(%rbp), %rdx
leaq -0x29(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
leaq 0xe906(%rip), %r13      # 0x42d00
testl %eax, %eax
jne 0x34425
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe93c(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xeec0(%rip), %rdx      # 0x432d7
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeebc(%rip), %rdi      # 0x432e8
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3445b
movq -0x50(%rbp), %rcx
leaq 0xeea8(%rip), %rdx      # 0x432f5
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeea8(%rip), %rdi      # 0x4330a
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34491
movq -0x68(%rbp), %rcx
leaq 0xee8f(%rip), %rdx      # 0x43312
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee8b(%rip), %rdi      # 0x43323
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x344c7
movq -0x50(%rbp), %rcx
leaq 0xee76(%rip), %rdx      # 0x4332f
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee75(%rip), %rdi      # 0x43343
leaq -0x58(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3451e
leaq 0xee6a(%rip), %rdi      # 0x43355
leaq -0x40(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3451e
movq -0x58(%rbp), %rcx
movq -0x40(%rbp), %r8
leaq 0xee5a(%rip), %rdx      # 0x4336a
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee7b(%rip), %rdi      # 0x433a0
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34562
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe7ff(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xee5c(%rip), %rdx      # 0x433b0
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee5e(%rip), %rdi      # 0x433c7
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34598
movq -0x68(%rbp), %rcx
leaq 0xee46(%rip), %rdx      # 0x433d0
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee43(%rip), %rdi      # 0x433e2
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x345ce
movq -0x50(%rbp), %rcx
leaq 0xee31(%rip), %rdx      # 0x433f1
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee33(%rip), %rdi      # 0x43408
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34612
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe74f(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xee10(%rip), %rdx      # 0x43414
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xee0e(%rip), %rdi      # 0x43427
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34656
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe70b(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xede8(%rip), %rdx      # 0x43430
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xede3(%rip), %rdi      # 0x43440
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3469a
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe6c7(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xedbf(%rip), %rdx      # 0x4344b
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xedbc(%rip), %rdi      # 0x4345d
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x346de
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe683(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xed9a(%rip), %rdx      # 0x4346a
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed99(%rip), %rdi      # 0x4347e
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34722
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe63f(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xed76(%rip), %rdx      # 0x4348a
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed74(%rip), %rdi      # 0x4349d
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34766
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe5fb(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xed50(%rip), %rdx      # 0x434a8
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed4d(%rip), %rdi      # 0x434ba
leaq -0x58(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3479c
movq -0x58(%rbp), %rcx
leaq 0xed3e(%rip), %rdx      # 0x434cc
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed43(%rip), %rdi      # 0x434e6
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x347e0
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe581(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xed1d(%rip), %rdx      # 0x434ef
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed18(%rip), %rdi      # 0x434ff
leaq -0x68(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34816
movq -0x68(%rbp), %rcx
leaq 0xed07(%rip), %rdx      # 0x4350f
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xed0b(%rip), %rdi      # 0x43528
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34882
leaq 0xecfe(%rip), %rdi      # 0x43538
leaq -0x40(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34882
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe4ea(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
cmpb $0x0, -0x40(%rbp)
movq %r13, %r8
cmovneq %rax, %r8
leaq 0xecd0(%rip), %rdx      # 0x43544
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xece4(%rip), %rdi      # 0x4356d
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x348ee
leaq 0xece3(%rip), %rdi      # 0x43589
leaq -0x40(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x348ee
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe47e(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
cmpb $0x0, -0x40(%rbp)
movq %r13, %r8
cmovneq %rax, %r8
leaq 0xecc1(%rip), %rdx      # 0x435a1
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeced(%rip), %rdi      # 0x435e2
leaq -0x58(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34924
movq -0x58(%rbp), %rcx
leaq 0xecdf(%rip), %rdx      # 0x435f5
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xece5(%rip), %rdi      # 0x43610
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34968
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe3f9(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xecc5(%rip), %rdx      # 0x4361f
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xecc6(%rip), %rdi      # 0x43635
leaq -0x58(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3499e
movq -0x58(%rbp), %rcx
leaq 0xecba(%rip), %rdx      # 0x4364a
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xecc2(%rip), %rdi      # 0x43667
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x349e2
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe37f(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xeca2(%rip), %rdx      # 0x43676
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xeca3(%rip), %rdi      # 0x4368c
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34a26
cmpb $0x0, -0x29(%rbp)
movq %r13, %rcx
leaq 0xe33b(%rip), %rax      # 0x42d48
cmovneq %rax, %rcx
leaq 0xec83(%rip), %rdx      # 0x4369b
movq -0x38(%rbp), %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xec84(%rip), %rdi      # 0x436b1
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34a6a
cmpb $0x0, -0x29(%rbp)
leaq 0xe2fa(%rip), %rax      # 0x42d48
cmovneq %rax, %r13
leaq 0xec66(%rip), %rdx      # 0x436bf
movq -0x38(%rbp), %rdi
movq %r12, %rsi
movq %r13, %rcx
xorl %eax, %eax
callq 0x38c1e
leaq 0x21c1f(%rip), %rax     # 0x56690
movl (%rax), %ecx
leaq 0xec5a(%rip), %rdx      # 0x436d4
movq -0x38(%rbp), %r13
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xec41(%rip), %rdi      # 0x436de
leaq -0x9c(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3508a
movl -0x9c(%rbp), %ecx
leaq 0xec2a(%rip), %rdx      # 0x436ed
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xec22(%rip), %rdx      # 0x436f9
pushq $0x8
popq %rcx
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xec13(%rip), %rdi      # 0x4370c
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3514a
leaq -0x50(%rbp), %rax
movq (%rax), %rcx
leaq 0xebfe(%rip), %rdx      # 0x4371b
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xebf2(%rip), %rdi      # 0x4372e
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3515a
movq -0x50(%rbp), %rcx
leaq 0xebdd(%rip), %rdx      # 0x4373a
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe7d9(%rip), %rdi      # 0x43355
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3516a
movq %r12, %r13
movq -0x58(%rbp), %rcx
testq %rcx, %rcx
js 0x34bbc
pushq $0x1
popq %rax
shll %cl, %eax
leaq 0xeba0(%rip), %rdx      # 0x4374a
movq -0x38(%rbp), %rdi
movq %r13, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x38c1e
jmp 0x34bd1
leaq 0xebb4(%rip), %rdx      # 0x43777
movq -0x38(%rbp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xebcb(%rip), %rdi      # 0x437a3
leaq -0x50(%rbp), %rsi
leaq -0x80(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x34c07
movq -0x50(%rbp), %rcx
leaq 0xebbc(%rip), %rdx      # 0x437b5
movq -0x38(%rbp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq 0xe8d8(%rip), %rdi      # 0x434e6
leaq -0x29(%rbp), %rsi
leaq -0x48(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
pushq $0x1
popq %r12
testl %eax, %eax
jne 0x34cec
cmpb $0x1, -0x29(%rbp)
jne 0x34cec
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeb94(%rip), %rdi      # 0x437dc
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x35194
movq -0x50(%rbp), %r8
movq %r12, %rax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xeb79(%rip), %rdx      # 0x437eb
movq -0x38(%rbp), %rdi
movq %r13, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe9a0(%rip), %rdi      # 0x43635
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x351a4
movq -0x58(%rbp), %r8
testq %r8, %r8
js 0x34cd7
movq %r12, %rax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xeb55(%rip), %rdx      # 0x43819
movq -0x38(%rbp), %rdi
movq %r13, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x38c1e
jmp 0x34cec
leaq 0xeb67(%rip), %rdx      # 0x43845
movq -0x38(%rbp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe5ea(%rip), %rdi      # 0x432e8
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3517a
movq -0x50(%rbp), %r8
movl %r8d, %ecx
shlq %cl, %r12
leaq 0xeb44(%rip), %rdx      # 0x43869
movq -0x38(%rbp), %rdi
movq %r13, %rsi
movq %r12, %rcx
xorl %eax, %eax
callq 0x38c1e
leaq -0x58(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeb3a(%rip), %rdi      # 0x43882
leaq -0x68(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x350ae
leaq -0x50(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeb20(%rip), %rdi      # 0x43890
leaq -0x58(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
movq -0x90(%rbp), %r12
jne 0x350c1
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeb01(%rip), %rdi      # 0x438a0
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x350d4
leaq -0x80(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeae6(%rip), %rdi      # 0x438ad
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x350e7
leaq -0x78(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeacd(%rip), %rdi      # 0x438bc
leaq -0x80(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x350fa
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xeab4(%rip), %rdi      # 0x438cb
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3510a
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r8
movq -0x48(%rbp), %r9
leaq 0xea98(%rip), %rdx      # 0x438d8
movq -0x38(%rbp), %r13
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
pushq -0x78(%rbp)
pushq -0x80(%rbp)
callq 0x38c1e
popq %rax
popq %rcx
movq -0x68(%rbp), %rax
xorl %ecx, %ecx
lock
xaddq %rcx, (%rax)
leaq 0xeab5(%rip), %rdx      # 0x43920
movq %r13, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x38c1e
movzbl %bl, %eax
movl %eax, -0x88(%rbp)
movzbl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movzbl %r15b, %eax
movl %eax, -0x84(%rbp)
testb $0x1, %r14b
je 0x34f78
leaq -0x70(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe830(%rip), %rdi      # 0x436de
leaq -0x40(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3508a
movq %rsp, %r14
movl -0x40(%rbp), %eax
movq %rsp, %rbx
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %rbx
movq %rbx, %rsp
movl -0x40(%rbp), %eax
leaq -0x70(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xea51(%rip), %rdi      # 0x4393d
xorl %r15d, %r15d
movq %rbx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3511a
movl -0x40(%rbp), %eax
xorl %ecx, %ecx
movl -0x98(%rbp), %esi
cmpq %rcx, %rax
je 0x34f20
movzbl (%rbx,%rcx), %edx
addl %edx, %r15d
incq %rcx
jmp 0x34f0f
cmpl $0x2, %r15d
setb %al
testb %sil, %al
jne 0x34f75
leaq 0xea1d(%rip), %rdx      # 0x43950
movq -0x38(%rbp), %r15
movq %r15, %rdi
movq -0x90(%rbp), %rbx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x38c1e
movl -0x40(%rbp), %edx
movl -0x88(%rbp), %ecx
andl $0x1, %ecx
movl -0x5c(%rbp), %r8d
andl $0x1, %r8d
movl -0x84(%rbp), %r9d
andl $0x1, %r9d
movq %r15, %rdi
movq %rbx, %rsi
callq 0x351b4
movq %r14, %rsp
testb $0x1, -0x98(%rbp)
je 0x35062
leaq -0x70(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe747(%rip), %rdi      # 0x436de
leaq -0x40(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3508a
movq %rsp, -0x98(%rbp)
movl -0x40(%rbp), %eax
movq %rsp, %rbx
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %rbx
movq %rbx, %rsp
movl -0x40(%rbp), %eax
leaq -0x70(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xe964(%rip), %rdi      # 0x4393d
movq %rbx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x20db6
testl %eax, %eax
jne 0x3511a
leaq 0xe972(%rip), %r14      # 0x43967
andl $0x1, -0x88(%rbp)
andl $0x1, -0x5c(%rbp)
andl $0x1, -0x84(%rbp)
xorl %r15d, %r15d
movq -0x38(%rbp), %r13
movq -0x90(%rbp), %r12
movl -0x40(%rbp), %eax
cmpq %rax, %r15
jae 0x3505b
cmpb $0x1, (%rbx,%r15)
jne 0x35056
movq %r13, %rdi
movq %r12, %rsi
movq %r14, %rdx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x38c1e
movq %r13, %rdi
movq %r12, %rsi
movl %r15d, %edx
movl -0x88(%rbp), %ecx
movl -0x5c(%rbp), %r8d
movl -0x84(%rbp), %r9d
callq 0x351b4
incq %r15
jmp 0x35015
movq -0x98(%rbp), %rsp
leaq 0xe90c(%rip), %rdx      # 0x43975
movq -0x38(%rbp), %rdi
movq -0x90(%rbp), %rsi
xorl %eax, %eax
callq 0x38c1e
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xe1cc(%rip), %rdi      # 0x4325d
leaq 0xe646(%rip), %rsi      # 0x436de
jmp 0x35188
leaq 0xe168(%rip), %rdi      # 0x4320c
callq 0x37d1c
callq 0x10090
leaq 0xe1a8(%rip), %rdi      # 0x4325d
leaq 0xe7c6(%rip), %rsi      # 0x43882
jmp 0x35188
leaq 0xe195(%rip), %rdi      # 0x4325d
leaq 0xe7c1(%rip), %rsi      # 0x43890
jmp 0x35188
leaq 0xe182(%rip), %rdi      # 0x4325d
leaq 0xe7be(%rip), %rsi      # 0x438a0
jmp 0x35188
leaq 0xe16f(%rip), %rdi      # 0x4325d
leaq 0xe7b8(%rip), %rsi      # 0x438ad
jmp 0x35188
leaq 0xe15c(%rip), %rdi      # 0x4325d
leaq 0xe7b4(%rip), %rsi      # 0x438bc
jmp 0x35188
leaq 0xe14c(%rip), %rdi      # 0x4325d
leaq 0xe7b3(%rip), %rsi      # 0x438cb
jmp 0x35188
leaq 0xe13c(%rip), %rdi      # 0x4325d
leaq 0xe815(%rip), %rsi      # 0x4393d
jmp 0x35188
leaq 0xe12c(%rip), %rdi      # 0x4325d
leaq 0x9dec(%rip), %rsi      # 0x3ef24
jmp 0x35188
leaq 0xe11c(%rip), %rdi      # 0x4325d
leaq 0xe14e(%rip), %rsi      # 0x43296
jmp 0x35188
leaq 0xe10c(%rip), %rdi      # 0x4325d
leaq 0xe5b4(%rip), %rsi      # 0x4370c
jmp 0x35188
leaq 0xe0fc(%rip), %rdi      # 0x4325d
leaq 0xe5c6(%rip), %rsi      # 0x4372e
jmp 0x35188
leaq 0xe0ec(%rip), %rdi      # 0x4325d
leaq 0xe1dd(%rip), %rsi      # 0x43355
jmp 0x35188
leaq 0xe0dc(%rip), %rdi      # 0x4325d
leaq 0xe160(%rip), %rsi      # 0x432e8
xorl %eax, %eax
callq 0x38c9e
callq 0x10090
leaq 0xe0c2(%rip), %rdi      # 0x4325d
leaq 0xe63a(%rip), %rsi      # 0x437dc
jmp 0x35188
leaq 0xe0b2(%rip), %rdi      # 0x4325d
leaq 0xe483(%rip), %rsi      # 0x43635
jmp 0x35188