// File: /workspace/github_c_makefile_star2_O0/jarun[P]nnn/src/nnn.c
// Function: dentfill
static int dentfill(char *path, struct entry **ppdents)
{
	uchar_t entflags = 0;
	int flags = 0;
	struct dirent *dp;
	char *namep, *pnb, *buf;
	struct entry *dentp;
	size_t off = 0, namebuflen = NAMEBUF_INCR;
	struct stat sb_path, sb;
	DIR *dirp = opendir(path);

	ndents = 0;
	gtimesecs = time(NULL);

	DPRINTF_S(__func__);

	if (!dirp)
		return 0;

	int fd = dirfd(dirp);

	if (cfg.blkorder) {
		num_files = 0;
		dir_blocks = 0;
		buf = g_buf;

		if (fstatat(fd, path, &sb_path, 0) == -1)
			goto exit;

		if (!ihashbmp) {
			ihashbmp = calloc(1, HASH_OCTETS << 3);
			if (!ihashbmp)
				goto exit;
		} else
			memset(ihashbmp, 0, HASH_OCTETS << 3);

		if (!prep_threads())
			goto exit;

		attron(COLOR_PAIR(cfg.curctx + 1));
	}

#if _POSIX_C_SOURCE >= 200112L
	posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL);
#endif

	dp = readdir(dirp);
	if (!dp)
		goto exit;

#if defined(__sun) || defined(__HAIKU__)
	flags = AT_SYMLINK_NOFOLLOW; /* no d_type */
#else
	if (cfg.blkorder || dp->d_type == DT_UNKNOWN) {
		/*
		 * Optimization added for filesystems which support dirent.d_type
		 * see readdir(3)
		 * Known drawbacks:
		 * - the symlink size is set to 0
		 * - the modification time of the symlink is set to that of the target file
		 */
		flags = AT_SYMLINK_NOFOLLOW;
	}
#endif

	do {
		namep = dp->d_name;

		if (selforparent(namep))
			continue;

		if (!cfg.showhidden && namep[0] == '.') {
			if (!cfg.blkorder)
				continue;

			if (fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1)
				continue;

			if (S_ISDIR(sb.st_mode)) {
				if (sb_path.st_dev == sb.st_dev) { // NOLINT
					mkpath(path, namep, buf); // NOLINT
					dirwalk(buf, -1, FALSE);

					if (g_state.interrupt)
						goto exit;
				}
			} else {
				/* Do not recount hard links */
				if (sb.st_nlink <= 1 || test_set_bit((uint_t)sb.st_ino))
					dir_blocks += (cfg.apparentsz ? sb.st_size : sb.st_blocks);
				++num_files;
			}

			continue;
		}

		if (fstatat(fd, namep, &sb, flags) == -1) {
			if (flags || (fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1)) {
				/* Missing file */
				DPRINTF_U(flags);
				if (!flags) {
					DPRINTF_S(namep);
					DPRINTF_S(strerror(errno));
				}

				entflags = FILE_MISSING;
				memset(&sb, 0, sizeof(struct stat));
			} else /* Orphaned symlink */
				entflags = SYM_ORPHAN;
		}

		if (ndents == total_dents) {
			if (cfg.blkorder)
				while (active_threads);

			total_dents += ENTRY_INCR;
			*ppdents = xrealloc(*ppdents, total_dents * sizeof(**ppdents));
			if (!*ppdents) {
				free(pnamebuf);
				closedir(dirp);
				errexit();
			}
			DPRINTF_P(*ppdents);
		}

		/* If not enough bytes left to copy a file name of length NAME_MAX, re-allocate */
		if (namebuflen - off < NAME_MAX + 1) {
			namebuflen += NAMEBUF_INCR;

			pnb = pnamebuf;
			pnamebuf = (char *)xrealloc(pnamebuf, namebuflen);
			if (!pnamebuf) {
				free(*ppdents);
				closedir(dirp);
				errexit();
			}
			DPRINTF_P(pnamebuf);

			/* realloc() may result in memory move, we must re-adjust if that happens */
			if (pnb != pnamebuf) {
				dentp = *ppdents;
				dentp->name = pnamebuf;

				for (int count = 1; count < ndents; ++dentp, ++count)
					/* Current file name starts at last file name start + length */
					(dentp + 1)->name = (char *)((size_t)dentp->name + dentp->nlen);
			}
		}

		dentp = *ppdents + ndents;

		/* Selection file name */
		dentp->name = (char *)((size_t)pnamebuf + off);
		dentp->nlen = xstrsncpy(dentp->name, namep, NAME_MAX + 1);
		off += dentp->nlen;

		/* Copy other fields */
		if (cfg.timetype == T_MOD) {
			dentp->sec = sb.st_mtime;
#ifdef __APPLE__
			dentp->nsec = (uint_t)sb.st_mtimespec.tv_nsec;
#else
			dentp->nsec = (uint_t)sb.st_mtim.tv_nsec;
#endif
		} else if (cfg.timetype == T_ACCESS) {
			dentp->sec = sb.st_atime;
#ifdef __APPLE__
			dentp->nsec = (uint_t)sb.st_atimespec.tv_nsec;
#else
			dentp->nsec = (uint_t)sb.st_atim.tv_nsec;
#endif
		} else {
			dentp->sec = sb.st_ctime;
#ifdef __APPLE__
			dentp->nsec = (uint_t)sb.st_ctimespec.tv_nsec;
#else
			dentp->nsec = (uint_t)sb.st_ctim.tv_nsec;
#endif
		}

		if ((gtimesecs - sb.st_mtime <= 300) || (gtimesecs - sb.st_ctime <= 300))
			entflags |= FILE_YOUNG;

#if !(defined(__sun) || defined(__HAIKU__))
		if (!flags && dp->d_type == DT_LNK) {
			 /* Do not add sizes for links */
			dentp->mode = (sb.st_mode & ~S_IFMT) | S_IFLNK;
			dentp->size = listpath ? sb.st_size : 0;
		} else {
			dentp->mode = sb.st_mode;
			dentp->size = sb.st_size;
		}
#else
		dentp->mode = sb.st_mode;
		dentp->size = sb.st_size;
#endif

#ifndef NOUG
		dentp->uid = sb.st_uid;
		dentp->gid = sb.st_gid;
#endif

		dentp->flags = S_ISDIR(sb.st_mode) ? 0 : ((sb.st_nlink > 1) ? HARD_LINK : 0);
		if (entflags) {
			dentp->flags |= entflags;
			entflags = 0;
		}

		if (cfg.blkorder) {
			if (S_ISDIR(sb.st_mode)) {
				mkpath(path, namep, buf); // NOLINT

				/* Need to show the disk usage of this dir */
				dirwalk(buf, ndents, (sb_path.st_dev != sb.st_dev)); // NOLINT

				if (g_state.interrupt)
					goto exit;
			} else {
				dentp->blocks = (cfg.apparentsz ? sb.st_size : sb.st_blocks);
				/* Do not recount hard links */
				if (sb.st_nlink <= 1 || test_set_bit((uint_t)sb.st_ino))
					dir_blocks += dentp->blocks;
				++num_files;
			}
		}

		if (flags) {
			/* Flag if this is a dir or symlink to a dir */
			if (S_ISLNK(sb.st_mode)) {
				sb.st_mode = 0;
				fstatat(fd, namep, &sb, 0);
			}

			if (S_ISDIR(sb.st_mode))
				dentp->flags |= DIR_OR_DIRLNK;
#if !(defined(__sun) || defined(__HAIKU__)) /* no d_type */
		} else if (dp->d_type == DT_DIR || ((dp->d_type == DT_LNK
			   || dp->d_type == DT_UNKNOWN) && S_ISDIR(sb.st_mode))) {
			dentp->flags |= DIR_OR_DIRLNK;
#endif
		}

		++ndents;
	} while ((dp = readdir(dirp)));

exit:
	if (g_state.duinit && cfg.blkorder) {
		while (active_threads);

		attroff(COLOR_PAIR(cfg.curctx + 1));
		for (int i = 0; i < NUM_DU_THREADS; ++i) {
			num_files += core_files[i];
			dir_blocks += core_blocks[i];
		}
	}

	/* Should never be null */
	if (closedir(dirp) == -1)
		errexit();

	return ndents;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
movl $0x0, -0x20(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x800, -0x58(%rbp)     # imm = 0x800
movq -0x10(%rbp), %rdi
callq 0x4270
movq %rax, -0x180(%rbp)
movl $0x0, 0xba04(%rip)      # 0x21e8c
xorl %eax, %eax
movl %eax, %edi
callq 0x4590
movq %rax, 0x15158(%rip)     # 0x2b5f0
cmpq $0x0, -0x180(%rbp)
jne 0x164ae
movl $0x0, -0x4(%rbp)
jmp 0x16eeb
movq -0x180(%rbp), %rdi
callq 0x44f0
movl %eax, -0x184(%rbp)
movl 0xa00a(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16595
movq $0x0, 0x15118(%rip) # 0x2b5f8
movq $0x0, 0x15115(%rip) # 0x2b600
leaq 0xa55e(%rip), %rax      # 0x20a50
movq %rax, -0x40(%rbp)
movl -0x184(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x44c0
cmpl $-0x1, %eax
jne 0x16518
jmp 0x16dfd
cmpq $0x0, 0xb890(%rip)      # 0x21db0
jne 0x16549
movl $0x1, %edi
movl $0x1ffff8, %esi         # imm = 0x1FFFF8
callq 0x44d0
movq %rax, 0xb878(%rip)      # 0x21db0
cmpq $0x0, 0xb870(%rip)      # 0x21db0
jne 0x16547
jmp 0x16dfd
jmp 0x1655c
movq 0xb860(%rip), %rdi      # 0x21db0
xorl %esi, %esi
movl $0x1ffff8, %edx         # imm = 0x1FFFF8
callq 0x4380
callq 0x16f00
testb $0x1, %al
jne 0x1656a
jmp 0x16dfd
movq 0x9a1f(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl 0x9f56(%rip), %esi      # 0x204d0
shrl $0xd, %esi
andl $0x7, %esi
addl $0x1, %esi
shll $0x8, %esi
andl $0xff00, %esi           # imm = 0xFF00
xorl %eax, %eax
movl %eax, %edx
callq 0x4120
movl -0x184(%rbp), %edi
xorl %eax, %eax
movl %eax, %edx
movl $0x2, %ecx
movq %rdx, %rsi
callq 0x4830
movq -0x180(%rbp), %rdi
callq 0x46f0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x165c8
jmp 0x16dfd
movl 0x9f02(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x165e6
movq -0x28(%rbp), %rax
movzbl 0x12(%rax), %eax
cmpl $0x0, %eax
jne 0x165ed
movl $0x100, -0x20(%rbp)     # imm = 0x100
jmp 0x165ef
movq -0x28(%rbp), %rax
addq $0x13, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0xcb40
testb $0x1, %al
jne 0x1660a
jmp 0x1660f
jmp 0x16de1
movl 0x9ebb(%rip), %eax      # 0x204d0
shrl $0x6, %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x16745
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x16745
movl 0x9e96(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1664a
jmp 0x16de1
movl -0x184(%rbp), %edi
movq -0x30(%rbp), %rsi
leaq -0x178(%rbp), %rdx
movl $0x100, %ecx            # imm = 0x100
callq 0x44c0
cmpl $-0x1, %eax
jne 0x1666f
jmp 0x16de1
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x166cc
movq -0xe8(%rbp), %rax
cmpq -0x178(%rbp), %rax
jne 0x166ca
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x74c0
movq -0x40(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x17030
movl 0xa16c(%rip), %eax      # 0x20824
shrl $0x8, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x166c8
jmp 0x16dfd
jmp 0x166ca
jmp 0x16740
cmpq $0x1, -0x168(%rbp)
jbe 0x166ea
movq -0x170(%rbp), %rax
movl %eax, %edi
callq 0x171f0
testb $0x1, %al
jne 0x166ea
jmp 0x1672e
movl 0x9de0(%rip), %eax      # 0x204d0
shrl $0x3, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x1670b
movq -0x148(%rbp), %rax
movq %rax, -0x198(%rbp)
jmp 0x16719
movq -0x138(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rax
addq 0x14ed9(%rip), %rax     # 0x2b600
movq %rax, 0x14ed2(%rip)     # 0x2b600
movq 0x14ec3(%rip), %rax     # 0x2b5f8
addq $0x1, %rax
movq %rax, 0x14eb8(%rip)     # 0x2b5f8
jmp 0x16de1
movl -0x184(%rbp), %edi
movq -0x30(%rbp), %rsi
movl -0x20(%rbp), %ecx
leaq -0x178(%rbp), %rdx
callq 0x44c0
cmpl $-0x1, %eax
jne 0x167b0
cmpl $0x0, -0x20(%rbp)
jne 0x16789
movl -0x184(%rbp), %edi
movq -0x30(%rbp), %rsi
leaq -0x178(%rbp), %rdx
movl $0x100, %ecx            # imm = 0x100
callq 0x44c0
cmpl $-0x1, %eax
jne 0x167aa
cmpl $0x0, -0x20(%rbp)
jne 0x16791
jmp 0x16791
movb $0x8, -0x19(%rbp)
leaq -0x178(%rbp), %rdi
xorl %esi, %esi
movl $0x90, %edx
callq 0x4380
jmp 0x167ae
movb $0x4, -0x19(%rbp)
jmp 0x167b0
movl 0xb6d6(%rip), %eax      # 0x21e8c
cmpl 0xa028(%rip), %eax      # 0x207e4
jne 0x16842
movl 0x9d08(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x167e4
jmp 0x167d5
movl 0x14e2d(%rip), %eax     # 0x2b608
cmpl $0x0, %eax
je 0x167e2
jmp 0x167d5
jmp 0x167e4
movl 0x9ffa(%rip), %eax      # 0x207e4
addl $0x40, %eax
movl %eax, 0x9ff1(%rip)      # 0x207e4
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movslq 0x9fe3(%rip), %rax      # 0x207e4
imulq $0x30, %rax, %rsi
callq 0xcb00
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x16840
movq 0x13d7b(%rip), %rdi     # 0x2a5a0
callq 0x4090
movq -0x180(%rbp), %rdi
callq 0x4400
movl $0x1762, %edi           # imm = 0x1762
callq 0xeb50
jmp 0x16842
movq -0x58(%rbp), %rax
subq -0x50(%rbp), %rax
cmpq $0x100, %rax            # imm = 0x100
jae 0x16935
movq -0x58(%rbp), %rax
addq $0x800, %rax            # imm = 0x800
movq %rax, -0x58(%rbp)
movq 0x13d35(%rip), %rax     # 0x2a5a0
movq %rax, -0x38(%rbp)
movq 0x13d2a(%rip), %rdi     # 0x2a5a0
movq -0x58(%rbp), %rsi
callq 0xcb00
movq %rax, 0x13d1a(%rip)     # 0x2a5a0
cmpq $0x0, 0x13d12(%rip)     # 0x2a5a0
jne 0x168b2
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x4090
movq -0x180(%rbp), %rdi
callq 0x4400
movl $0x1770, %edi           # imm = 0x1770
callq 0xeb50
movq -0x38(%rbp), %rax
cmpq 0x13ce3(%rip), %rax     # 0x2a5a0
je 0x16933
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq 0x13ccf(%rip), %rcx     # 0x2a5a0
movq -0x48(%rbp), %rax
movq %rcx, (%rax)
movl $0x1, -0x188(%rbp)
movl -0x188(%rbp), %eax
cmpl 0xb59e(%rip), %eax      # 0x21e8c
jge 0x16931
movq -0x48(%rbp), %rax
movq (%rax), %rcx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
shrq $0x28, %rax
andq $0xffff, %rax           # imm = 0xFFFF
addq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x48(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x48(%rbp)
movl -0x188(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x188(%rbp)
jmp 0x168e2
jmp 0x16933
jmp 0x16935
movq -0x18(%rbp), %rax
movq (%rax), %rax
movslq 0xb549(%rip), %rcx      # 0x21e8c
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq 0x13c4b(%rip), %rcx     # 0x2a5a0
addq -0x50(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rax
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x6250
movq %rax, %rdx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
shlq $0x28, %rdx
movabsq $-0xffff0000000001, %rsi # imm = 0xFF0000FFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
shrq $0x28, %rax
andq $0xffff, %rax           # imm = 0xFFFF
addq -0x50(%rbp), %rax
movq %rax, -0x50(%rbp)
movl 0x9b11(%rip), %eax      # 0x204d0
shrl $0x1b, %eax
andl $0x3, %eax
cmpl $0x2, %eax
jne 0x169eb
movq -0x120(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x118(%rbp), %rax
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x10(%rax)
jmp 0x16a3e
movl 0x9adf(%rip), %eax      # 0x204d0
shrl $0x1b, %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x16a1d
movq -0x130(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x128(%rbp), %rax
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x10(%rax)
jmp 0x16a3c
movq -0x110(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x108(%rbp), %rax
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x10(%rax)
jmp 0x16a3e
movq 0x14bab(%rip), %rax     # 0x2b5f0
subq -0x120(%rbp), %rax
cmpq $0x12c, %rax            # imm = 0x12C
jle 0x16a6a
movq 0x14b95(%rip), %rax     # 0x2b5f0
subq -0x110(%rbp), %rax
cmpq $0x12c, %rax            # imm = 0x12C
jg 0x16a74
movzbl -0x19(%rbp), %eax
orl $0x40, %eax
movb %al, -0x19(%rbp)
cmpl $0x0, -0x20(%rbp)
jne 0x16ad6
movq -0x28(%rbp), %rax
movzbl 0x12(%rax), %eax
cmpl $0xa, %eax
jne 0x16ad6
movl -0x160(%rbp), %ecx
andl $0xffff0fff, %ecx       # imm = 0xFFFF0FFF
orl $0xa000, %ecx           # imm = 0xA000
movq -0x48(%rbp), %rax
movl %ecx, 0x14(%rax)
cmpq $0x0, 0xb3d8(%rip)      # 0x21e80
je 0x16aba
movq -0x148(%rbp), %rax
movq %rax, -0x1a0(%rbp)
jmp 0x16ac5
xorl %eax, %eax
movq %rax, -0x1a0(%rbp)
jmp 0x16ac5
movq -0x1a0(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x18(%rax)
jmp 0x16af2
movl -0x160(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x148(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x18(%rax)
movl -0x15c(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x28(%rax)
movl -0x158(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x2c(%rax)
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x16b28
xorl %eax, %eax
movl %eax, -0x1a4(%rbp)
jmp 0x16b43
movq -0x168(%rbp), %rdx
xorl %eax, %eax
movl $0x2, %ecx
cmpq $0x1, %rdx
cmoval %ecx, %eax
movl %eax, -0x1a4(%rbp)
movl -0x1a4(%rbp), %eax
movslq %eax, %rdx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
andq $0xff, %rdx
shlq $0x38, %rdx
movabsq $0xffffffffffffff, %rsi # imm = 0xFFFFFFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
cmpb $0x0, -0x19(%rbp)
je 0x16bb5
movzbl -0x19(%rbp), %edx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
shrq $0x38, %rcx
orl %edx, %ecx
movslq %ecx, %rdx
movq 0x20(%rax), %rcx
andq $0xff, %rdx
shlq $0x38, %rdx
movabsq $0xffffffffffffff, %rsi # imm = 0xFFFFFFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
movb $0x0, -0x19(%rbp)
movl 0x9915(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16cdf
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x16c2e
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x74c0
movq -0x40(%rbp), %rdi
movl 0xb295(%rip), %esi      # 0x21e8c
movq -0xe8(%rbp), %rax
cmpq -0x178(%rbp), %rax
setne %al
movzbl %al, %edx
andl $0x1, %edx
callq 0x17030
movl 0x9c0b(%rip), %eax      # 0x20824
shrl $0x8, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16c29
jmp 0x16dfd
jmp 0x16cdd
movl 0x989c(%rip), %eax      # 0x204d0
shrl $0x3, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16c4f
movq -0x148(%rbp), %rax
movq %rax, -0x1b0(%rbp)
jmp 0x16c5d
movq -0x138(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rdx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
movabsq $0xffffffffff, %rsi     # imm = 0xFFFFFFFFFF
andq %rsi, %rdx
movabsq $-0x10000000000, %rsi   # imm = 0xFFFFFF0000000000
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
cmpq $0x1, -0x168(%rbp)
jbe 0x16cab
movq -0x170(%rbp), %rax
movl %eax, %edi
callq 0x171f0
testb $0x1, %al
jne 0x16cab
jmp 0x16ccb
movq -0x48(%rbp), %rcx
movabsq $0xffffffffff, %rax     # imm = 0xFFFFFFFFFF
andq 0x20(%rcx), %rax
addq 0x1493c(%rip), %rax     # 0x2b600
movq %rax, 0x14935(%rip)     # 0x2b600
movq 0x14926(%rip), %rax     # 0x2b5f8
addq $0x1, %rax
movq %rax, 0x1491b(%rip)     # 0x2b5f8
jmp 0x16cdf
cmpl $0x0, -0x20(%rbp)
je 0x16d62
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0xa000, %eax           # imm = 0xA000
jne 0x16d19
movl $0x0, -0x160(%rbp)
movl -0x184(%rbp), %edi
movq -0x30(%rbp), %rsi
leaq -0x178(%rbp), %rdx
xorl %ecx, %ecx
callq 0x44c0
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x16d60
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
shrq $0x38, %rcx
orl $0x1, %ecx
movslq %ecx, %rdx
movq 0x20(%rax), %rcx
andq $0xff, %rdx
shlq $0x38, %rdx
movabsq $0xffffffffffffff, %rsi # imm = 0xFFFFFFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
jmp 0x16dd2
movq -0x28(%rbp), %rax
movzbl 0x12(%rax), %eax
cmpl $0x4, %eax
je 0x16d9b
movq -0x28(%rbp), %rax
movzbl 0x12(%rax), %eax
cmpl $0xa, %eax
je 0x16d89
movq -0x28(%rbp), %rax
movzbl 0x12(%rax), %eax
cmpl $0x0, %eax
jne 0x16dd0
movl -0x160(%rbp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x16dd0
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rcx
shrq $0x38, %rcx
orl $0x1, %ecx
movslq %ecx, %rdx
movq 0x20(%rax), %rcx
andq $0xff, %rdx
shlq $0x38, %rdx
movabsq $0xffffffffffffff, %rsi # imm = 0xFFFFFFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x20(%rax)
jmp 0x16dd2
movl 0xb0b4(%rip), %eax      # 0x21e8c
addl $0x1, %eax
movl %eax, 0xb0ab(%rip)      # 0x21e8c
movq -0x180(%rbp), %rdi
callq 0x46f0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x165ef
jmp 0x16dfd
movl 0x9a21(%rip), %eax      # 0x20824
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16ec7
movl 0x96b8(%rip), %eax      # 0x204d0
shrl $0x4, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x16ec7
jmp 0x16e29
movl 0x147d9(%rip), %eax     # 0x2b608
cmpl $0x0, %eax
je 0x16e36
jmp 0x16e29
movq 0x9153(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl 0x968a(%rip), %esi      # 0x204d0
shrl $0xd, %esi
andl $0x7, %esi
addl $0x1, %esi
shll $0x8, %esi
andl $0xff00, %esi           # imm = 0xFF00
xorl %eax, %eax
movl %eax, %edx
callq 0x4740
movl $0x0, -0x18c(%rbp)
cmpl $0x4, -0x18c(%rbp)
jge 0x16ec5
movq 0x14765(%rip), %rax     # 0x2b5e0
movslq -0x18c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x1476b(%rip), %rax     # 0x2b5f8
movq %rax, 0x14764(%rip)     # 0x2b5f8
movq 0x14735(%rip), %rax     # 0x2b5d0
movslq -0x18c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x14753(%rip), %rax     # 0x2b600
movq %rax, 0x1474c(%rip)     # 0x2b600
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18c(%rbp)
jmp 0x16e6b
jmp 0x16ec7
movq -0x180(%rbp), %rdi
callq 0x4400
cmpl $-0x1, %eax
jne 0x16ee2
movl $0x17ec, %edi           # imm = 0x17EC
callq 0xeb50
movl 0xafa4(%rip), %eax      # 0x21e8c
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nopw (%rax,%rax)