// File: /workspace/github_c_makefile_star2_O3/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, %r15
movq %rsi, -0x88(%rbp)
movq %rdi, %rbx
leaq -0xb0(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xa8(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0x7613(%rip), %rdi      # 0x41013
movl $0x8, %r8d
movq %rcx, %rsi
callq 0x25e48
testl %eax, %eax
je 0x39a2c
cmpl $0xb, %eax
jne 0x3a898
leaq 0xec82(%rip), %rdi      # 0x486a4
callq 0x3d37c
jmp 0x3a876
testq %r15, %r15
movq %rbx, -0x90(%rbp)
je 0x39acc
xorl %eax, %eax
movb $0x1, %r8b
leaq 0xec28(%rip), %rcx      # 0x48670
movb $0x1, %dil
movb $0x1, %r9b
movb $0x1, %r14b
movb $0x1, %r12b
movb $0x1, %bl
movl %eax, %edx
movzbl (%r15,%rdx), %edx
leal -0x61(%rdx), %esi
cmpl $0xc, %esi
ja 0x39a8a
movslq (%rcx,%rsi,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
xorl %r14d, %r14d
jmp 0x39a8e
xorl %ebx, %ebx
jmp 0x39a8e
xorl %r9d, %r9d
jmp 0x39a8e
xorl %r12d, %r12d
jmp 0x39a8e
xorl %edi, %edi
jmp 0x39a8e
xorl %r8d, %r8d
jmp 0x39a8e
testl %edx, %edx
je 0x39a92
incl %eax
jmp 0x39a56
movl %r9d, -0x58(%rbp)
movl %r8d, -0x54(%rbp)
movl %edi, -0x7c(%rbp)
leaq 0xec6e(%rip), %rdx      # 0x48712
movq -0x90(%rbp), %r13
movq %r13, %rdi
movq -0x88(%rbp), %r15
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
testb $0x1, %bl
movq %r13, %rbx
jne 0x39afc
jmp 0x3a52e
leaq 0xec3f(%rip), %rdx      # 0x48712
movq %rbx, %rdi
movq -0x88(%rbp), %r15
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
movb $0x1, %r12b
movb $0x1, %r14b
movb $0x1, %al
movl %eax, -0x58(%rbp)
movb $0x1, %al
movl %eax, -0x7c(%rbp)
movb $0x1, %al
movl %eax, -0x54(%rbp)
movq $0x1, -0x40(%rbp)
movl $0x8, %eax
movq %rax, -0x78(%rbp)
movq %rax, -0x70(%rbp)
movq %rax, -0x68(%rbp)
leaq -0x50(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xa4b1(%rip), %rdi      # 0x43fd4
leaq -0x60(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a925
movq -0x60(%rbp), %rcx
leaq 0xec1d(%rip), %rdx      # 0x48761
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x50(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0xec0b(%rip), %rdi      # 0x4876e
leaq -0x29(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a935
leaq 0xe9d0(%rip), %rax      # 0x48550
leaq 0xe951(%rip), %rcx      # 0x484d8
leaq -0x29(%rbp), %r13
cmpb $0x0, (%r13)
cmovneq %rax, %rcx
leaq 0xebe0(%rip), %rdx      # 0x4877b
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xebdb(%rip), %rdx      # 0x4878a
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xebe2(%rip), %rdi      # 0x487a5
leaq -0x40(%rbp), %rdx
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39c02
leaq 0xe629(%rip), %rax      # 0x48208
leaq 0xe5da(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xebba(%rip), %rdx      # 0x487af
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xebb7(%rip), %rdi      # 0x487c0
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39c37
movq -0x48(%rbp), %rcx
leaq 0xeba3(%rip), %rdx      # 0x487cd
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeba4(%rip), %rdi      # 0x487e2
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39c6c
movq -0x60(%rbp), %rcx
leaq 0xeb8b(%rip), %rdx      # 0x487ea
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb88(%rip), %rdi      # 0x487fb
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39ca1
movq -0x48(%rbp), %rcx
leaq 0xeb73(%rip), %rdx      # 0x48807
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb73(%rip), %rdi      # 0x4881b
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39cf7
leaq 0xeb68(%rip), %rdi      # 0x4882d
leaq -0x38(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39cf7
movq -0x50(%rbp), %rcx
movq -0x38(%rbp), %r8
leaq 0xeb58(%rip), %rdx      # 0x48842
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb7a(%rip), %rdi      # 0x48878
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39d3e
leaq 0xe4ed(%rip), %rax      # 0x48208
leaq 0xe49e(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xeb57(%rip), %rdx      # 0x48888
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb5a(%rip), %rdi      # 0x4889f
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39d73
movq -0x60(%rbp), %rcx
leaq 0xeb42(%rip), %rdx      # 0x488a8
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb40(%rip), %rdi      # 0x488ba
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39da8
movq -0x48(%rbp), %rcx
leaq 0xeb2e(%rip), %rdx      # 0x488c9
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb31(%rip), %rdi      # 0x488e0
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39def
leaq 0xe43c(%rip), %rax      # 0x48208
leaq 0xe3ed(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xeb0a(%rip), %rdx      # 0x488ec
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeb09(%rip), %rdi      # 0x488ff
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39e36
leaq 0xe3f5(%rip), %rax      # 0x48208
leaq 0xe3a6(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xeadf(%rip), %rdx      # 0x48908
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeadb(%rip), %rdi      # 0x48918
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39e7d
leaq 0xe3ae(%rip), %rax      # 0x48208
leaq 0xe35f(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xeab3(%rip), %rdx      # 0x48923
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xeab1(%rip), %rdi      # 0x48935
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39ec4
leaq 0xe367(%rip), %rax      # 0x48208
leaq 0xe318(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xea8b(%rip), %rdx      # 0x48942
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xea8b(%rip), %rdi      # 0x48956
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39f0b
leaq 0xe320(%rip), %rax      # 0x48208
leaq 0xe2d1(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xea64(%rip), %rdx      # 0x48962
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xea63(%rip), %rdi      # 0x48975
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39f52
leaq 0xe2d9(%rip), %rax      # 0x48208
leaq 0xe28a(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xea3b(%rip), %rdx      # 0x48980
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xea39(%rip), %rdi      # 0x48992
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39f87
movq -0x50(%rbp), %rcx
leaq 0xea2a(%rip), %rdx      # 0x489a4
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xea30(%rip), %rdi      # 0x489be
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x39fce
leaq 0xe25d(%rip), %rax      # 0x48208
leaq 0xe20e(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xea06(%rip), %rdx      # 0x489c7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xea02(%rip), %rdi      # 0x489d7
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a003
movq -0x60(%rbp), %rcx
leaq 0xe9f1(%rip), %rdx      # 0x489e7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9f6(%rip), %rdi      # 0x48a00
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a072
leaq 0xe9e9(%rip), %rdi      # 0x48a10
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a072
leaq 0xe1c4(%rip), %rax      # 0x48208
cmpb $0x0, -0x29(%rbp)
leaq 0xe171(%rip), %r8       # 0x481c0
movq %r8, %rcx
cmovneq %rax, %rcx
cmpb $0x0, -0x38(%rbp)
cmovneq %rax, %r8
leaq 0xe9b7(%rip), %rdx      # 0x48a1c
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9cc(%rip), %rdi      # 0x48a45
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a0e1
leaq 0xe9cb(%rip), %rdi      # 0x48a61
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a0e1
leaq 0xe155(%rip), %rax      # 0x48208
cmpb $0x0, -0x29(%rbp)
leaq 0xe102(%rip), %r8       # 0x481c0
movq %r8, %rcx
cmovneq %rax, %rcx
cmpb $0x0, -0x38(%rbp)
cmovneq %rax, %r8
leaq 0xe9a5(%rip), %rdx      # 0x48a79
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9d2(%rip), %rdi      # 0x48aba
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a116
movq -0x50(%rbp), %rcx
leaq 0xe9c4(%rip), %rdx      # 0x48acd
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9cb(%rip), %rdi      # 0x48ae8
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a15d
leaq 0xe0ce(%rip), %rax      # 0x48208
leaq 0xe07f(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe9a7(%rip), %rdx      # 0x48af7
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9a9(%rip), %rdi      # 0x48b0d
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a192
movq -0x50(%rbp), %rcx
leaq 0xe99d(%rip), %rdx      # 0x48b22
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe9a6(%rip), %rdi      # 0x48b3f
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a1d9
leaq 0xe052(%rip), %rax      # 0x48208
leaq 0xe003(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe982(%rip), %rdx      # 0x48b4e
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe984(%rip), %rdi      # 0x48b64
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a220
leaq 0xe00b(%rip), %rax      # 0x48208
leaq 0xdfbc(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe960(%rip), %rdx      # 0x48b73
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe962(%rip), %rdi      # 0x48b89
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a267
leaq 0xdfc4(%rip), %rax      # 0x48208
leaq 0xdf75(%rip), %rcx      # 0x481c0
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe93d(%rip), %rdx      # 0x48b97
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0x20422(%rip), %rax     # 0x5a690
movl (%rax), %ecx
leaq 0xe935(%rip), %rdx      # 0x48bac
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe920(%rip), %rdi      # 0x48bb6
leaq -0x94(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a885
movl -0x94(%rbp), %ecx
leaq 0xe909(%rip), %rdx      # 0x48bc5
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe901(%rip), %rdx      # 0x48bd1
movl $0x8, %ecx
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe8f0(%rip), %rdi      # 0x48be4
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a945
leaq -0x48(%rbp), %r13
movq (%r13), %rcx
leaq 0xe8da(%rip), %rdx      # 0x48bf3
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe8ce(%rip), %rdi      # 0x48c06
movq %r13, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a955
movq -0x48(%rbp), %rcx
leaq 0xe8ba(%rip), %rdx      # 0x48c12
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe4b6(%rip), %rdi      # 0x4882d
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a965
movq -0x50(%rbp), %rcx
testq %rcx, %rcx
js 0x3a3b5
movl $0x1, %eax
shll %cl, %eax
leaq 0xe87e(%rip), %rdx      # 0x48c22
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x3e3de
jmp 0x3a3c9
leaq 0xe893(%rip), %rdx      # 0x48c4f
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe8ab(%rip), %rdi      # 0x48c7b
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a3fe
movq -0x48(%rbp), %rcx
leaq 0xe89c(%rip), %rdx      # 0x48c8d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq 0xe5b9(%rip), %rdi      # 0x489be
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a4e0
cmpb $0x1, -0x29(%rbp)
jne 0x3a4e0
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe879(%rip), %rdi      # 0x48cb4
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a98f
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xe85c(%rip), %rdx      # 0x48cc3
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe684(%rip), %rdi      # 0x48b0d
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a99f
movq -0x50(%rbp), %r8
testq %r8, %r8
js 0x3a4cc
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xe837(%rip), %rdx      # 0x48cf1
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x3e3de
jmp 0x3a4e0
leaq 0xe84a(%rip), %rdx      # 0x48d1d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe2ce(%rip), %rdi      # 0x487c0
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a975
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xe823(%rip), %rdx      # 0x48d41
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x3e3de
leaq -0x50(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe81a(%rip), %rdi      # 0x48d5a
leaq -0x60(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a8a9
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe800(%rip), %rdi      # 0x48d68
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a8bc
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe7e8(%rip), %rdi      # 0x48d78
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a8cf
leaq -0x78(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe7cd(%rip), %rdi      # 0x48d85
leaq -0x40(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a8e2
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe7b4(%rip), %rdi      # 0x48d94
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a8f5
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe79b(%rip), %rdi      # 0x48da3
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a905
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x40(%rbp), %r9
leaq 0xe77f(%rip), %rdx      # 0x48db0
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
pushq -0x70(%rbp)
pushq -0x78(%rbp)
callq 0x3e3de
addq $0x10, %rsp
movq -0x60(%rbp), %rax
xorl %ecx, %ecx
lock
xaddq %rcx, (%rax)
leaq 0xe79e(%rip), %rdx      # 0x48df8
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
testb $0x1, %r12b
je 0x3a75b
leaq -0x68(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe533(%rip), %rdi      # 0x48bb6
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a885
movq %rsp, %rbx
movl -0x38(%rbp), %eax
movq %rsp, %r15
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r15
movq %r15, %rsp
movl -0x38(%rbp), %eax
leaq -0x68(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xe754(%rip), %rdi      # 0x48e15
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a915
movl -0x38(%rbp), %eax
testq %rax, %rax
je 0x3a6fc
xorl %ecx, %ecx
xorl %edx, %edx
movzbl (%r15,%rcx), %esi
addl %esi, %edx
incq %rcx
cmpq %rcx, %rax
jne 0x3a6e2
cmpl $0x2, %edx
setb %al
testb %r14b, %al
jmp 0x3a700
testb $0x1, %r14b
movq -0x88(%rbp), %r15
jne 0x3a751
leaq 0xe718(%rip), %rdx      # 0x48e28
movq %r15, %r12
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x3e3de
movl -0x38(%rbp), %edx
movzbl -0x58(%rbp), %ecx
andl $0x1, %ecx
movzbl -0x54(%rbp), %r8d
andl $0x1, %r8d
movzbl -0x7c(%rbp), %r9d
andl $0x1, %r9d
movq %r15, %rdi
movq %r12, %r15
movq %r12, %rsi
callq 0x3a9af
movq %rbx, %rsp
movq -0x90(%rbp), %rbx
testb $0x1, %r14b
je 0x3a862
leaq -0x68(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe43f(%rip), %rdi      # 0x48bb6
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a885
movq %rsp, -0xa0(%rbp)
movl -0x38(%rbp), %eax
movq %rsp, %r15
addq $0xf, %rax
andq $-0x10, %rax
subq %rax, %r15
movq %r15, %rsp
movl -0x38(%rbp), %eax
leaq -0x68(%rbp), %rdx
movq %rax, (%rdx)
leaq 0xe65c(%rip), %rdi      # 0x48e15
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x25e48
testl %eax, %eax
jne 0x3a915
movl -0x38(%rbp), %eax
testl %eax, %eax
movl -0x7c(%rbp), %ecx
movl -0x54(%rbp), %edx
movl -0x58(%rbp), %esi
je 0x3a84d
movzbl %sil, %esi
andl $0x1, %esi
movl %esi, -0x58(%rbp)
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, -0x54(%rbp)
movzbl %cl, %r14d
andl $0x1, %r14d
xorl %r12d, %r12d
movq -0x90(%rbp), %rbx
movq -0x88(%rbp), %r13
cmpb $0x1, (%r15,%r12)
jne 0x3a843
movq %rbx, %rdi
movq %r13, %rsi
leaq 0xe621(%rip), %rdx      # 0x48e3f
movl %r12d, %ecx
xorl %eax, %eax
callq 0x3e3de
movq %rbx, %rdi
movq %r13, %rsi
movl %r12d, %edx
movl -0x58(%rbp), %ecx
movl -0x54(%rbp), %r8d
movl %r14d, %r9d
callq 0x3a9af
movl -0x38(%rbp), %eax
incq %r12
movl %eax, %ecx
cmpq %rcx, %r12
jb 0x3a80a
movq -0xa0(%rbp), %rsp
movq -0x88(%rbp), %r15
movq -0x90(%rbp), %rbx
leaq 0xe5e4(%rip), %rdx      # 0x48e4d
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x3e3de
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdea9(%rip), %rdi      # 0x48735
leaq 0xe323(%rip), %rsi      # 0x48bb6
jmp 0x3a983
leaq 0xde45(%rip), %rdi      # 0x486e4
callq 0x3d37c
callq 0x10090
leaq 0xde85(%rip), %rdi      # 0x48735
leaq 0xe4a3(%rip), %rsi      # 0x48d5a
jmp 0x3a983
leaq 0xde72(%rip), %rdi      # 0x48735
leaq 0xe49e(%rip), %rsi      # 0x48d68
jmp 0x3a983
leaq 0xde5f(%rip), %rdi      # 0x48735
leaq 0xe49b(%rip), %rsi      # 0x48d78
jmp 0x3a983
leaq 0xde4c(%rip), %rdi      # 0x48735
leaq 0xe495(%rip), %rsi      # 0x48d85
jmp 0x3a983
leaq 0xde39(%rip), %rdi      # 0x48735
leaq 0xe491(%rip), %rsi      # 0x48d94
jmp 0x3a983
leaq 0xde29(%rip), %rdi      # 0x48735
leaq 0xe490(%rip), %rsi      # 0x48da3
jmp 0x3a983
leaq 0xde19(%rip), %rdi      # 0x48735
leaq 0xe4f2(%rip), %rsi      # 0x48e15
jmp 0x3a983
leaq 0xde09(%rip), %rdi      # 0x48735
leaq 0x96a1(%rip), %rsi      # 0x43fd4
jmp 0x3a983
leaq 0xddf9(%rip), %rdi      # 0x48735
leaq 0xde2b(%rip), %rsi      # 0x4876e
jmp 0x3a983
leaq 0xdde9(%rip), %rdi      # 0x48735
leaq 0xe291(%rip), %rsi      # 0x48be4
jmp 0x3a983
leaq 0xddd9(%rip), %rdi      # 0x48735
leaq 0xe2a3(%rip), %rsi      # 0x48c06
jmp 0x3a983
leaq 0xddc9(%rip), %rdi      # 0x48735
leaq 0xdeba(%rip), %rsi      # 0x4882d
jmp 0x3a983
leaq 0xddb9(%rip), %rdi      # 0x48735
leaq 0xde3d(%rip), %rsi      # 0x487c0
xorl %eax, %eax
callq 0x3e4a4
callq 0x10090
leaq 0xdd9f(%rip), %rdi      # 0x48735
leaq 0xe317(%rip), %rsi      # 0x48cb4
jmp 0x3a983
leaq 0xdd8f(%rip), %rdi      # 0x48735
leaq 0xe160(%rip), %rsi      # 0x48b0d
jmp 0x3a983