// File: /workspace/github_c_makefile_star2_O1/erikdubbelboer[P]discnt/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, %rbx
movq %rdi, -0x90(%rbp)
leaq -0xb0(%rbp), %rcx
movq $0x1, (%rcx)
leaq -0xa8(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe2d9(%rip), %rdi      # 0x59cfd
movl $0x8, %r8d
movq %rcx, %rsi
callq 0x389ad
testl %eax, %eax
je 0x4ba50
cmpl $0xb, %eax
jne 0x4c88b
leaq 0xe432(%rip), %rdi      # 0x59e78
callq 0x4f37c
jmp 0x4c869
movq %rbx, -0x88(%rbp)
testq %r15, %r15
je 0x4babb
xorl %eax, %eax
movb $0x1, %dil
leaq 0xe3dc(%rip), %rcx      # 0x59e44
movb $0x1, %r8b
movb $0x1, %r13b
movb $0x1, %bl
movb $0x1, %r14b
movb $0x1, %r12b
movl %eax, %edx
movzbl (%r15,%rdx), %edx
leal -0x61(%rdx), %esi
cmpl $0xc, %esi
ja 0x4baaa
movslq (%rcx,%rsi,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
xorl %ebx, %ebx
jmp 0x4baae
xorl %r12d, %r12d
jmp 0x4baae
xorl %r13d, %r13d
jmp 0x4baae
xorl %r14d, %r14d
jmp 0x4baae
xorl %r8d, %r8d
jmp 0x4baae
xorl %edi, %edi
jmp 0x4baae
testl %edx, %edx
je 0x4bab2
incl %eax
jmp 0x4ba76
movl %r8d, -0x7c(%rbp)
movl %edi, -0x54(%rbp)
jmp 0x4bad0
movb $0x1, %al
movl %eax, -0x54(%rbp)
movb $0x1, %al
movl %eax, -0x7c(%rbp)
movb $0x1, %r13b
movb $0x1, %bl
movb $0x1, %r14b
movb $0x1, %r12b
leaq 0xe40f(%rip), %rdx      # 0x59ee6
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x88(%rbp), %rsi
xorl %eax, %eax
callq 0x5041b
testb $0x1, %r12b
je 0x4c531
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 0x848a(%rip), %rdi      # 0x53faa
leaq -0x60(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c918
movq -0x60(%rbp), %rcx
leaq 0xe3f4(%rip), %rdx      # 0x59f35
movq %r15, %rdi
movq -0x88(%rbp), %r12
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x50(%rbp), %rdx
movq $0x1, (%rdx)
leaq 0xe3db(%rip), %rdi      # 0x59f42
leaq -0x29(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c928
leaq 0x9bc1(%rip), %rax      # 0x55745
leaq 0xe15d(%rip), %rcx      # 0x59ce8
leaq -0x29(%rbp), %rdx
cmpb $0x0, (%rdx)
cmovneq %rax, %rcx
leaq 0xe3b2(%rip), %rdx      # 0x59f4f
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe3ad(%rip), %rdx      # 0x59f5e
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe3b4(%rip), %rdi      # 0x59f79
leaq -0x40(%rbp), %rdx
leaq -0x29(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bc05
leaq 0xa62f(%rip), %rax      # 0x56211
leaq 0xde17(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe38b(%rip), %rdx      # 0x59f83
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe388(%rip), %rdi      # 0x59f94
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bc3a
movq -0x48(%rbp), %rcx
leaq 0xe374(%rip), %rdx      # 0x59fa1
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe375(%rip), %rdi      # 0x59fb6
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bc6f
movq -0x60(%rbp), %rcx
leaq 0xe35c(%rip), %rdx      # 0x59fbe
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe359(%rip), %rdi      # 0x59fcf
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bca4
movq -0x48(%rbp), %rcx
leaq 0xe344(%rip), %rdx      # 0x59fdb
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe344(%rip), %rdi      # 0x59fef
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bcfa
leaq 0xe339(%rip), %rdi      # 0x5a001
leaq -0x38(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bcfa
movq -0x50(%rbp), %rcx
movq -0x38(%rbp), %r8
leaq 0xe329(%rip), %rdx      # 0x5a016
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe34b(%rip), %rdi      # 0x5a04c
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bd41
leaq 0xa4f3(%rip), %rax      # 0x56211
leaq 0xdcdb(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe328(%rip), %rdx      # 0x5a05c
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe32b(%rip), %rdi      # 0x5a073
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bd76
movq -0x60(%rbp), %rcx
leaq 0xe313(%rip), %rdx      # 0x5a07c
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe311(%rip), %rdi      # 0x5a08e
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bdab
movq -0x48(%rbp), %rcx
leaq 0xe2ff(%rip), %rdx      # 0x5a09d
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe302(%rip), %rdi      # 0x5a0b4
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bdf2
leaq 0xa442(%rip), %rax      # 0x56211
leaq 0xdc2a(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe2db(%rip), %rdx      # 0x5a0c0
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe2da(%rip), %rdi      # 0x5a0d3
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4be39
leaq 0xa3fb(%rip), %rax      # 0x56211
leaq 0xdbe3(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe2b0(%rip), %rdx      # 0x5a0dc
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe2ac(%rip), %rdi      # 0x5a0ec
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4be80
leaq 0xa3b4(%rip), %rax      # 0x56211
leaq 0xdb9c(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe284(%rip), %rdx      # 0x5a0f7
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe282(%rip), %rdi      # 0x5a109
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bec7
leaq 0xa36d(%rip), %rax      # 0x56211
leaq 0xdb55(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe25c(%rip), %rdx      # 0x5a116
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe25c(%rip), %rdi      # 0x5a12a
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bf0e
leaq 0xa326(%rip), %rax      # 0x56211
leaq 0xdb0e(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe235(%rip), %rdx      # 0x5a136
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe234(%rip), %rdi      # 0x5a149
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bf55
leaq 0xa2df(%rip), %rax      # 0x56211
leaq 0xdac7(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe20c(%rip), %rdx      # 0x5a154
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe20a(%rip), %rdi      # 0x5a166
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bf8a
movq -0x50(%rbp), %rcx
leaq 0xe1fb(%rip), %rdx      # 0x5a178
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe201(%rip), %rdi      # 0x5a192
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4bfd1
leaq 0xa263(%rip), %rax      # 0x56211
leaq 0xda4b(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe1d7(%rip), %rdx      # 0x5a19b
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe1d3(%rip), %rdi      # 0x5a1ab
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c006
movq -0x60(%rbp), %rcx
leaq 0xe1c2(%rip), %rdx      # 0x5a1bb
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe1c7(%rip), %rdi      # 0x5a1d4
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c075
leaq 0xe1ba(%rip), %rdi      # 0x5a1e4
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c075
leaq 0xa1ca(%rip), %rax      # 0x56211
cmpb $0x0, -0x29(%rbp)
leaq 0xd9ae(%rip), %r8       # 0x59a00
movq %r8, %rcx
cmovneq %rax, %rcx
cmpb $0x0, -0x38(%rbp)
cmovneq %rax, %r8
leaq 0xe188(%rip), %rdx      # 0x5a1f0
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe19d(%rip), %rdi      # 0x5a219
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c0e4
leaq 0xe19c(%rip), %rdi      # 0x5a235
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c0e4
leaq 0xa15b(%rip), %rax      # 0x56211
cmpb $0x0, -0x29(%rbp)
leaq 0xd93f(%rip), %r8       # 0x59a00
movq %r8, %rcx
cmovneq %rax, %rcx
cmpb $0x0, -0x38(%rbp)
cmovneq %rax, %r8
leaq 0xe176(%rip), %rdx      # 0x5a24d
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe1a3(%rip), %rdi      # 0x5a28e
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c119
movq -0x50(%rbp), %rcx
leaq 0xe195(%rip), %rdx      # 0x5a2a1
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe19c(%rip), %rdi      # 0x5a2bc
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c160
leaq 0xa0d4(%rip), %rax      # 0x56211
leaq 0xd8bc(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe178(%rip), %rdx      # 0x5a2cb
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe17a(%rip), %rdi      # 0x5a2e1
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c195
movq -0x50(%rbp), %rcx
leaq 0xe16e(%rip), %rdx      # 0x5a2f6
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe177(%rip), %rdi      # 0x5a313
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c1dc
leaq 0xa058(%rip), %rax      # 0x56211
leaq 0xd840(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe153(%rip), %rdx      # 0x5a322
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe155(%rip), %rdi      # 0x5a338
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c223
leaq 0xa011(%rip), %rax      # 0x56211
leaq 0xd7f9(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe131(%rip), %rdx      # 0x5a347
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe133(%rip), %rdi      # 0x5a35d
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c26a
leaq 0x9fca(%rip), %rax      # 0x56211
leaq 0xd7b2(%rip), %rcx      # 0x59a00
cmpb $0x0, -0x29(%rbp)
cmovneq %rax, %rcx
leaq 0xe10e(%rip), %rdx      # 0x5a36b
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0x3752f(%rip), %rax     # 0x837a0
movl (%rax), %ecx
leaq 0xe106(%rip), %rdx      # 0x5a380
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xe0f1(%rip), %rdi      # 0x5a38a
leaq -0x98(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c878
movl -0x98(%rbp), %ecx
leaq 0xe0da(%rip), %rdx      # 0x5a399
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe0d2(%rip), %rdx      # 0x5a3a5
movl $0x8, %ecx
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe0c1(%rip), %rdi      # 0x5a3b8
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c938
leaq -0x48(%rbp), %rax
movq (%rax), %rcx
leaq 0xe0ac(%rip), %rdx      # 0x5a3c7
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe0a0(%rip), %rdi      # 0x5a3da
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c948
movq -0x48(%rbp), %rcx
leaq 0xe08b(%rip), %rdx      # 0x5a3e6
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdc87(%rip), %rdi      # 0x5a001
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c958
movq -0x50(%rbp), %rcx
testq %rcx, %rcx
js 0x4c3b8
movl $0x1, %eax
shll %cl, %eax
leaq 0xe04f(%rip), %rdx      # 0x5a3f6
movq %r15, %rdi
movq %r12, %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0x5041b
jmp 0x4c3cc
leaq 0xe064(%rip), %rdx      # 0x5a423
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xe07c(%rip), %rdi      # 0x5a44f
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c401
movq -0x48(%rbp), %rcx
leaq 0xe06d(%rip), %rdx      # 0x5a461
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq 0xdd8a(%rip), %rdi      # 0x5a192
leaq -0x29(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c4e3
cmpb $0x1, -0x29(%rbp)
jne 0x4c4e3
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xe04a(%rip), %rdi      # 0x5a488
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c982
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xe02d(%rip), %rdx      # 0x5a497
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xde55(%rip), %rdi      # 0x5a2e1
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c992
movq -0x50(%rbp), %r8
testq %r8, %r8
js 0x4c4cf
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xe008(%rip), %rdx      # 0x5a4c5
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x5041b
jmp 0x4c4e3
leaq 0xe01b(%rip), %rdx      # 0x5a4f1
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x38(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xda9f(%rip), %rdi      # 0x59f94
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c968
movq -0x48(%rbp), %r8
movl $0x1, %eax
movl %r8d, %ecx
shlq %cl, %rax
leaq 0xdff4(%rip), %rdx      # 0x5a515
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x5041b
leaq -0x50(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdfeb(%rip), %rdi      # 0x5a52e
leaq -0x60(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c89c
leaq -0x48(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdfd1(%rip), %rdi      # 0x5a53c
leaq -0x50(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
movq -0x88(%rbp), %r12
jne 0x4c8af
leaq -0x40(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdfb2(%rip), %rdi      # 0x5a54c
leaq -0x48(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c8c2
leaq -0x78(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdf97(%rip), %rdi      # 0x5a559
leaq -0x40(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c8d5
leaq -0x70(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdf7e(%rip), %rdi      # 0x5a568
leaq -0x78(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c8e8
leaq -0x68(%rbp), %rdx
movq $0x8, (%rdx)
leaq 0xdf65(%rip), %rdi      # 0x5a577
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c8f8
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r8
movq -0x40(%rbp), %r9
leaq 0xdf49(%rip), %rdx      # 0x5a584
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
pushq -0x70(%rbp)
pushq -0x78(%rbp)
callq 0x5041b
addq $0x10, %rsp
movq -0x60(%rbp), %rax
xorl %ecx, %ecx
lock
xaddq %rcx, (%rax)
leaq 0xdf68(%rip), %rdx      # 0x5a5cc
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
testb $0x1, %r14b
je 0x4c74f
leaq -0x68(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xdcfd(%rip), %rdi      # 0x5a38a
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c878
movq %rsp, %r14
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 0xdf1e(%rip), %rdi      # 0x5a5e9
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c908
movl -0x38(%rbp), %eax
movl %ebx, %ecx
testq %rax, %rax
je 0x4c705
xorl %ecx, %ecx
xorl %edx, %edx
movzbl (%r15,%rcx), %esi
addl %esi, %edx
incq %rcx
cmpq %rcx, %rax
jne 0x4c6ee
cmpl $0x2, %edx
setb %cl
andb %bl, %cl
testb $0x1, %cl
movq -0x90(%rbp), %r15
jne 0x4c74c
leaq 0xdee4(%rip), %rdx      # 0x5a5fc
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
movl -0x38(%rbp), %edx
movzbl %r13b, %ecx
andl $0x1, %ecx
movzbl -0x54(%rbp), %r8d
andl $0x1, %r8d
movzbl -0x7c(%rbp), %r9d
andl $0x1, %r9d
movq %r15, %rdi
movq %r12, %rsi
callq 0x4c9a2
movq %r14, %rsp
testb $0x1, %bl
je 0x4c855
leaq -0x68(%rbp), %rdx
movq $0x4, (%rdx)
leaq 0xdc20(%rip), %rdi      # 0x5a38a
leaq -0x38(%rbp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c878
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 0xde3d(%rip), %rdi      # 0x5a5e9
movq %r15, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x389ad
testl %eax, %eax
jne 0x4c908
cmpl $0x0, -0x38(%rbp)
movl -0x54(%rbp), %eax
movl -0x7c(%rbp), %ecx
je 0x4c840
movzbl %r13b, %edx
andl $0x1, %edx
movl %edx, -0x94(%rbp)
movzbl %al, %eax
andl $0x1, %eax
movl %eax, -0x54(%rbp)
movzbl %cl, %r14d
andl $0x1, %r14d
xorl %r12d, %r12d
movq -0x90(%rbp), %rbx
movq -0x88(%rbp), %r13
cmpb $0x1, (%r15,%r12)
jne 0x4c835
movq %rbx, %rdi
movq %r13, %rsi
leaq 0xde03(%rip), %rdx      # 0x5a613
movl %r12d, %ecx
xorl %eax, %eax
callq 0x5041b
movq %rbx, %rdi
movq %r13, %rsi
movl %r12d, %edx
movl -0x94(%rbp), %ecx
movl -0x54(%rbp), %r8d
movl %r14d, %r9d
callq 0x4c9a2
incq %r12
movl -0x38(%rbp), %eax
cmpq %rax, %r12
jb 0x4c7fc
movq -0xa0(%rbp), %rsp
movq -0x88(%rbp), %r12
movq -0x90(%rbp), %r15
leaq 0xddc5(%rip), %rdx      # 0x5a621
movq %r15, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x5041b
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xd68a(%rip), %rdi      # 0x59f09
leaq 0xdb04(%rip), %rsi      # 0x5a38a
jmp 0x4c976
leaq 0xd626(%rip), %rdi      # 0x59eb8
callq 0x4f37c
callq 0x120c0
leaq 0xd666(%rip), %rdi      # 0x59f09
leaq 0xdc84(%rip), %rsi      # 0x5a52e
jmp 0x4c976
leaq 0xd653(%rip), %rdi      # 0x59f09
leaq 0xdc7f(%rip), %rsi      # 0x5a53c
jmp 0x4c976
leaq 0xd640(%rip), %rdi      # 0x59f09
leaq 0xdc7c(%rip), %rsi      # 0x5a54c
jmp 0x4c976
leaq 0xd62d(%rip), %rdi      # 0x59f09
leaq 0xdc76(%rip), %rsi      # 0x5a559
jmp 0x4c976
leaq 0xd61a(%rip), %rdi      # 0x59f09
leaq 0xdc72(%rip), %rsi      # 0x5a568
jmp 0x4c976
leaq 0xd60a(%rip), %rdi      # 0x59f09
leaq 0xdc71(%rip), %rsi      # 0x5a577
jmp 0x4c976
leaq 0xd5fa(%rip), %rdi      # 0x59f09
leaq 0xdcd3(%rip), %rsi      # 0x5a5e9
jmp 0x4c976
leaq 0xd5ea(%rip), %rdi      # 0x59f09
leaq 0x7684(%rip), %rsi      # 0x53faa
jmp 0x4c976
leaq 0xd5da(%rip), %rdi      # 0x59f09
leaq 0xd60c(%rip), %rsi      # 0x59f42
jmp 0x4c976
leaq 0xd5ca(%rip), %rdi      # 0x59f09
leaq 0xda72(%rip), %rsi      # 0x5a3b8
jmp 0x4c976
leaq 0xd5ba(%rip), %rdi      # 0x59f09
leaq 0xda84(%rip), %rsi      # 0x5a3da
jmp 0x4c976
leaq 0xd5aa(%rip), %rdi      # 0x59f09
leaq 0xd69b(%rip), %rsi      # 0x5a001
jmp 0x4c976
leaq 0xd59a(%rip), %rdi      # 0x59f09
leaq 0xd61e(%rip), %rsi      # 0x59f94
xorl %eax, %eax
callq 0x504e1
callq 0x120c0
leaq 0xd580(%rip), %rdi      # 0x59f09
leaq 0xdaf8(%rip), %rsi      # 0x5a488
jmp 0x4c976
leaq 0xd570(%rip), %rdi      # 0x59f09
leaq 0xd941(%rip), %rsi      # 0x5a2e1
jmp 0x4c976