// File: /workspace/github_c_makefile_star2_O0/jarun[P]nnn/src/nnn.c
// Function: xreadline
static char *xreadline(const char *prefill, const char *prompt)
{
	size_t len, pos, lpos;
	int x, r;
	const int WCHAR_T_WIDTH = sizeof(wchar_t);
	wint_t ch[1];
	wchar_t * const buf = malloc(sizeof(wchar_t) * READLINE_MAX);

	if (!buf)
		errexit();

	cleartimeout();
	printmsg(prompt);

	if (prefill) {
		DPRINTF_S(prefill);
		len = pos = mbstowcs(buf, prefill, READLINE_MAX);
	} else
		len = (size_t)-1;

	if (len == (size_t)-1) {
		buf[0] = '\0';
		len = pos = 0;
	}

	x = getcurx(stdscr);
	curs_set(TRUE);

	while (1) {
		buf[len] = ' ';
		attron(COLOR_PAIR(cfg.curctx + 1));
		if (pos > (size_t)(xcols - x)) {
			mvaddnwstr(xlines - 1, x, buf + (pos - (xcols - x) + 1), xcols - x);
			move(xlines - 1, xcols - 1);
		} else {
			mvaddnwstr(xlines - 1, x, buf, len + 1);
			move(xlines - 1, x + wcswidth(buf, pos));
		}
		attroff(COLOR_PAIR(cfg.curctx + 1));

		r = get_wch(ch);
		if (r == ERR)
			continue;

		if (r == OK) {
			switch (*ch) {
			case KEY_ENTER: // fallthrough
			case '\n': // fallthrough
			case '\r':
				goto END;
			case CONTROL('D'):
				if (pos < len)
					++pos;
				else if (!(pos || len)) { /* Exit on ^D at empty prompt */
					len = 0;
					goto END;
				} else
					continue;
				// fallthrough
			case DEL: // fallthrough
			case '\b': /* rhel25 sends '\b' for backspace */
				if (pos > 0) {
					memmove(buf + pos - 1, buf + pos,
						(len - pos) * WCHAR_T_WIDTH);
					--len, --pos;
				}
				continue;
			case '\t':
				if ((len == pos) && ndents && (pos < (READLINE_MAX - xstrlen(pdents[cur].name)))) {
					buf[pos] = '\0';
					lpos = mbstowcs(NULL, pdents[cur].name, MB_CUR_MAX);
					pos += mbstowcs(buf + wcslen(buf), pdents[cur].name, lpos);
					len = pos;
				}
				continue;
			case CONTROL('F'):
				if (pos < len)
					++pos;
				continue;
			case CONTROL('B'):
				if (pos > 0)
					--pos;
				continue;
			case CONTROL('W'):
				printmsg(prompt);
				lpos = pos;
				while (pos > 0 && ISSPACE(buf[pos-1]))
					--pos;
				while (pos > 0 && !ISSPACE(buf[pos-1]))
					--pos;
				memmove(buf + pos, buf + lpos, (len - lpos) * WCHAR_T_WIDTH);
				len -= lpos - pos;
				continue;
			case CONTROL('K'):
				printmsg(prompt);
				len = pos;
				continue;
			case CONTROL('L'):
				printmsg(prompt);
				len = pos = 0;
				continue;
			case CONTROL('A'):
				pos = 0;
				continue;
			case CONTROL('E'):
				pos = len;
				continue;
			case CONTROL('U'):
				printmsg(prompt);
				memmove(buf, buf + pos, (len - pos) * WCHAR_T_WIDTH);
				len -= pos;
				pos = 0;
				continue;
			case ESC: /* Exit prompt on Esc, but just filter out Alt+key */
				if (handle_alt_key(ch) != ERR) {
					switch (*ch) {
					case 'd':
						printmsg(prompt);
						lpos = pos;
						while (pos < len && !iswalnum(buf[pos + 1]))
							++pos;
						while (pos < len && iswalnum(buf[++pos]));
						memmove(buf + lpos, buf + pos, (len - pos) * WCHAR_T_WIDTH);
						len -= pos - lpos;
						pos = lpos;
						continue;
					case KEY_BACKSPACE:
						printmsg(prompt);
						lpos = pos;
						while (pos > 0 && !iswalnum(buf[pos - 1]))
							--pos;
						while (pos > 0 && iswalnum(buf[pos - 1]))
							--pos;
						memmove(buf + pos, buf + lpos, (len - lpos) * WCHAR_T_WIDTH);
						len -= lpos - pos;
						continue;
					case 'f':
						while (pos < len && !iswalnum(buf[pos + 1]))
							++pos;
						while (pos < len && iswalnum(buf[++pos]));
						continue;
					case 'b':
						while (pos > 0 && !iswalnum(buf[pos - 1]))
							--pos;
						while (pos > 0 && iswalnum(buf[pos - 1]))
							--pos;
						continue;
					}
					continue;
				}

				len = 0;
				goto END;
			}

			/* Filter out all other control chars */
			if (*ch < ASCII_MAX && keyname(*ch)[0] == '^')
				continue;

			if (pos < READLINE_MAX - 1) {
				memmove(buf + pos + 1, buf + pos,
					(len - pos) * WCHAR_T_WIDTH);
				buf[pos] = *ch;
				++len, ++pos;
				continue;
			}
		} else {
			switch (*ch) {
#ifdef KEY_RESIZE
			case KEY_RESIZE:
				clearoldprompt();
				xlines = LINES;
				printmsg(prompt);
				break;
#endif
			case KEY_LEFT:
				if (pos > 0)
					--pos;
				break;
			case KEY_RIGHT:
				if (pos < len)
					++pos;
				break;
			case KEY_BACKSPACE:
				if (pos > 0) {
					memmove(buf + pos - 1, buf + pos,
						(len - pos) * WCHAR_T_WIDTH);
					--len, --pos;
				}
				break;
			case KEY_DC:
				if (pos < len) {
					memmove(buf + pos, buf + pos + 1,
						(len - pos - 1) * WCHAR_T_WIDTH);
					--len;
				}
				break;
			case KEY_END:
				pos = len;
				break;
			case KEY_HOME:
				pos = 0;
				break;
			case KEY_UP: // fallthrough
			case KEY_DOWN:
			{
				char *cmd = getcmdfromhist(*ch == KEY_UP);

				if (prompt && cmd && (xstrcmp(prompt, PROMPT) == 0)) {
					printmsg(prompt);
					len = pos = mbstowcs(buf, cmd, READLINE_MAX); // fallthrough
				}
			}
			default:
				break;
			}
		}
	}

END:
	curs_set(FALSE);
	settimeout();
	printmsg("");

	buf[len] = '\0';

	pos = wcstombs(g_buf, buf, READLINE_MAX - 1);
	if (pos >= READLINE_MAX - 1)
		g_buf[READLINE_MAX - 1] = '\0';

	free(buf);
	return g_buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x4, -0x34(%rbp)
movl $0x400, %edi            # imm = 0x400
callq 0x45e0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x144d9
movl $0xe45, %edi            # imm = 0xE45
callq 0xeb50
movq 0xbab0(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4580
movq -0x10(%rbp), %rdi
callq 0xd020
cmpq $0x0, -0x8(%rbp)
je 0x14519
movq -0x40(%rbp), %rdi
movq -0x8(%rbp), %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x41d0
movq %rax, -0x20(%rbp)
movq %rax, -0x18(%rbp)
jmp 0x14521
movq $-0x1, -0x18(%rbp)
cmpq $-0x1, -0x18(%rbp)
jne 0x14542
movq -0x40(%rbp), %rax
movl $0x0, (%rax)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x18(%rbp)
xorl %eax, %eax
movq 0xba45(%rip), %rcx      # 0x1ff90
cmpq (%rcx), %rax
je 0x14563
movq 0xba39(%rip), %rax      # 0x1ff90
movq (%rax), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x4c(%rbp)
jmp 0x1456d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x4c(%rbp)
jmp 0x1456d
movl -0x4c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movl $0x1, %edi
callq 0x4140
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rcx
movl $0x20, (%rax,%rcx,4)
movq 0xb9fd(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl 0xbf34(%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
movq -0x20(%rbp), %rax
movzwl 0x15fd6(%rip), %ecx     # 0x2a598
subl -0x2c(%rbp), %ecx
movslq %ecx, %rcx
cmpq %rcx, %rax
jbe 0x14655
movq 0xb9b8(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movzwl 0xd8a6(%rip), %esi      # 0x21e88
subl $0x1, %esi
movl -0x2c(%rbp), %edx
callq 0x4070
cmpl $-0x1, %eax
jne 0x145f4
jmp 0x14630
movq 0xb995(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
movzwl 0x15f8b(%rip), %ecx     # 0x2a598
subl -0x2c(%rbp), %ecx
movslq %ecx, %rcx
subq %rcx, %rax
addq $0x1, %rax
shlq $0x2, %rax
addq %rax, %rsi
movzwl 0x15f70(%rip), %edx     # 0x2a598
subl -0x2c(%rbp), %edx
callq 0x4370
movq 0xb959(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movzwl 0xd847(%rip), %esi      # 0x21e88
subl $0x1, %esi
movzwl 0x15f4d(%rip), %edx     # 0x2a598
subl $0x1, %edx
callq 0x4070
jmp 0x146d4
movq 0xb934(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movzwl 0xd822(%rip), %esi      # 0x21e88
subl $0x1, %esi
movl -0x2c(%rbp), %edx
callq 0x4070
cmpl $-0x1, %eax
jne 0x14678
jmp 0x14695
movq 0xb911(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
movq -0x18(%rbp), %rax
addq $0x1, %rax
movl %eax, %edx
callq 0x4370
movq 0xb8f4(%rip), %rax      # 0x1ff90
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movzwl 0xd7de(%rip), %eax      # 0x21e88
subl $0x1, %eax
movl %eax, -0x50(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x4190
movl -0x5c(%rbp), %edx
movq -0x58(%rbp), %rdi
movl -0x50(%rbp), %esi
addl %eax, %edx
callq 0x4070
movq 0xb8b5(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl 0xbdec(%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
movq 0xb88a(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x48d0
movl %eax, -0x30(%rbp)
cmpl $-0x1, -0x30(%rbp)
jne 0x14720
jmp 0x1457d
cmpl $0x0, -0x30(%rbp)
jne 0x15026
movl -0x38(%rbp), %eax
movl %eax, -0x60(%rbp)
subl $0x1, %eax
je 0x14bbc
jmp 0x1473b
movl -0x60(%rbp), %eax
subl $0x2, %eax
je 0x149a2
jmp 0x14749
movl -0x60(%rbp), %eax
subl $0x4, %eax
je 0x14808
jmp 0x14757
movl -0x60(%rbp), %eax
subl $0x5, %eax
je 0x14bc9
jmp 0x14765
movl -0x60(%rbp), %eax
subl $0x6, %eax
je 0x14987
jmp 0x14773
movl -0x60(%rbp), %eax
subl $0x8, %eax
je 0x14842
jmp 0x14781
movl -0x60(%rbp), %eax
subl $0x9, %eax
je 0x14899
jmp 0x1478f
movl -0x60(%rbp), %eax
subl $0xa, %eax
je 0x14803
jmp 0x14799
movl -0x60(%rbp), %eax
subl $0xb, %eax
je 0x14b88
jmp 0x147a7
movl -0x60(%rbp), %eax
subl $0xc, %eax
je 0x14b9e
jmp 0x147b5
movl -0x60(%rbp), %eax
subl $0xd, %eax
je 0x14803
jmp 0x147bf
movl -0x60(%rbp), %eax
subl $0x15, %eax
je 0x14bd6
jmp 0x147cd
movl -0x60(%rbp), %eax
subl $0x17, %eax
je 0x149ba
jmp 0x147db
movl -0x60(%rbp), %eax
subl $0x1b, %eax
je 0x14c1f
jmp 0x147e9
movl -0x60(%rbp), %eax
subl $0x7f, %eax
je 0x14842
jmp 0x147f3
movl -0x60(%rbp), %eax
subl $0x157, %eax            # imm = 0x157
jne 0x14f9b
jmp 0x14803
jmp 0x15272
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x14820
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14840
cmpq $0x0, -0x20(%rbp)
jne 0x1483b
cmpq $0x0, -0x18(%rbp)
jne 0x1483b
movq $0x0, -0x18(%rbp)
jmp 0x15272
jmp 0x1457d
jmp 0x14842
cmpq $0x0, -0x20(%rbp)
jbe 0x14894
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
addq $-0x4, %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0x14982
cmpl $0x0, 0xd5de(%rip)      # 0x21e8c
je 0x14982
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq 0x15aad(%rip), %rax     # 0x2a370
movslq 0x15aae(%rip), %rcx     # 0x2a378
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x5cc0
movq %rax, %rdx
movq -0x68(%rbp), %rax
movl $0x100, %ecx            # imm = 0x100
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x14982
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movl $0x0, (%rax,%rcx,4)
movq 0x15a69(%rip), %rax     # 0x2a370
movslq 0x15a6a(%rip), %rcx     # 0x2a378
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
callq 0x42b0
movq -0x78(%rbp), %rsi
movq %rax, %rdx
xorl %eax, %eax
movl %eax, %edi
callq 0x41d0
movq %rax, -0x28(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x40(%rbp), %rdi
callq 0x4330
movq -0x70(%rbp), %rdi
shlq $0x2, %rax
addq %rax, %rdi
movq 0x15a18(%rip), %rax     # 0x2a370
movslq 0x15a19(%rip), %rcx     # 0x2a378
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x28(%rbp), %rdx
callq 0x41d0
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x1457d
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x1499d
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
cmpq $0x0, -0x20(%rbp)
jbe 0x149b5
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x79(%rbp)
jbe 0x14a6a
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0x20, (%rcx,%rdx,4)
movb %al, -0x7a(%rbp)
je 0x14a64
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0x9, (%rcx,%rdx,4)
movb %al, -0x7a(%rbp)
je 0x14a64
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xa, (%rcx,%rdx,4)
movb %al, -0x7a(%rbp)
je 0x14a64
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xd, (%rcx,%rdx,4)
movb %al, -0x7a(%rbp)
je 0x14a64
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xc, (%rcx,%rdx,4)
movb %al, -0x7a(%rbp)
je 0x14a64
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
cmpl $0xb, (%rax,%rcx,4)
sete %al
movb %al, -0x7a(%rbp)
movb -0x7a(%rbp), %al
movb %al, -0x79(%rbp)
movb -0x79(%rbp), %al
testb $0x1, %al
jne 0x14a73
jmp 0x14a84
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x149cb
jmp 0x14a86
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x7b(%rbp)
jbe 0x14b27
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0x20, (%rcx,%rdx,4)
movb %al, -0x7c(%rbp)
je 0x14b1f
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0x9, (%rcx,%rdx,4)
movb %al, -0x7c(%rbp)
je 0x14b1f
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xa, (%rcx,%rdx,4)
movb %al, -0x7c(%rbp)
je 0x14b1f
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xd, (%rcx,%rdx,4)
movb %al, -0x7c(%rbp)
je 0x14b1f
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rdx
subq $0x1, %rdx
movb $0x1, %al
cmpl $0xc, (%rcx,%rdx,4)
movb %al, -0x7c(%rbp)
je 0x14b1f
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
cmpl $0xb, (%rax,%rcx,4)
sete %al
movb %al, -0x7c(%rbp)
movb -0x7c(%rbp), %al
xorb $-0x1, %al
movb %al, -0x7b(%rbp)
movb -0x7b(%rbp), %al
testb $0x1, %al
jne 0x14b30
jmp 0x14b41
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14a86
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
movq -0x28(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x28(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x28(%rbp), %rcx
subq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0x1457d
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x1457d
movq -0x10(%rbp), %rdi
callq 0xd020
movq $0x0, -0x20(%rbp)
movq $0x0, -0x18(%rbp)
jmp 0x1457d
movq $0x0, -0x20(%rbp)
jmp 0x1457d
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x40(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
jmp 0x1457d
leaq -0x38(%rbp), %rdi
callq 0x194a0
cmpl $-0x1, %eax
je 0x14f8e
movl -0x38(%rbp), %eax
movl %eax, -0x80(%rbp)
subl $0x62, %eax
je 0x14eec
jmp 0x14c42
movl -0x80(%rbp), %eax
subl $0x64, %eax
je 0x14c6d
jmp 0x14c4c
movl -0x80(%rbp), %eax
subl $0x66, %eax
je 0x14e50
jmp 0x14c5a
movl -0x80(%rbp), %eax
subl $0x107, %eax            # imm = 0x107
je 0x14d62
jmp 0x14f89
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x18(%rbp), %rcx
movb %al, -0x81(%rbp)
jae 0x14caf
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x14cbb
jmp 0x14cc9
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14c7e
jmp 0x14ccb
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x18(%rbp), %rcx
movb %al, -0x82(%rbp)
jae 0x14d05
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movl 0x4(%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
movb %al, -0x82(%rbp)
movb -0x82(%rbp), %al
testb $0x1, %al
jne 0x14d11
jmp 0x14d13
jmp 0x14ccb
movq -0x40(%rbp), %rdi
movq -0x28(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x20(%rbp), %rcx
subq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x83(%rbp)
jbe 0x14da4
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movl (%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x83(%rbp)
movb -0x83(%rbp), %al
testb $0x1, %al
jne 0x14db0
jmp 0x14dbe
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14d73
jmp 0x14dc0
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x84(%rbp)
jbe 0x14def
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movl (%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
movb %al, -0x84(%rbp)
movb -0x84(%rbp), %al
testb $0x1, %al
jne 0x14dfb
jmp 0x14e09
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14dc0
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
movq -0x28(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x28(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x28(%rbp), %rcx
subq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x18(%rbp)
jmp 0x1457d
jmp 0x14e52
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x18(%rbp), %rcx
movb %al, -0x85(%rbp)
jae 0x14e83
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x85(%rbp)
movb -0x85(%rbp), %al
testb $0x1, %al
jne 0x14e8f
jmp 0x14e9d
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14e52
jmp 0x14e9f
movq -0x20(%rbp), %rcx
xorl %eax, %eax
cmpq -0x18(%rbp), %rcx
movb %al, -0x86(%rbp)
jae 0x14ed9
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
movl 0x4(%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
movb %al, -0x86(%rbp)
movb -0x86(%rbp), %al
testb $0x1, %al
jne 0x14ee5
jmp 0x14ee7
jmp 0x14e9f
jmp 0x1457d
jmp 0x14eee
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x87(%rbp)
jbe 0x14f1f
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movl (%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x87(%rbp)
movb -0x87(%rbp), %al
testb $0x1, %al
jne 0x14f2b
jmp 0x14f39
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14eee
jmp 0x14f3b
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x88(%rbp)
jbe 0x14f6a
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
subq $0x1, %rcx
movl (%rax,%rcx,4), %edi
callq 0x45d0
cmpl $0x0, %eax
setne %al
movb %al, -0x88(%rbp)
movb -0x88(%rbp), %al
testb $0x1, %al
jne 0x14f76
jmp 0x14f84
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x14f3b
jmp 0x1457d
jmp 0x1457d
movq $0x0, -0x18(%rbp)
jmp 0x15272
cmpl $0x80, -0x38(%rbp)
jae 0x14fb9
movl -0x38(%rbp), %edi
callq 0x48a0
movsbl (%rax), %eax
cmpl $0x5e, %eax
jne 0x14fb9
jmp 0x1457d
cmpq $0xff, -0x20(%rbp)
jae 0x15021
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
addq $0x4, %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movl -0x38(%rbp), %edx
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1457d
jmp 0x1526d
movl -0x38(%rbp), %eax
movl %eax, -0x8c(%rbp)
addl $0xfffffefe, %eax       # imm = 0xFFFFFEFE
subl $0x2, %eax
jb 0x151dd
jmp 0x1503f
movl -0x8c(%rbp), %eax
subl $0x104, %eax            # imm = 0x104
je 0x150e7
jmp 0x15052
movl -0x8c(%rbp), %eax
subl $0x105, %eax            # imm = 0x105
je 0x150ff
jmp 0x15065
movl -0x8c(%rbp), %eax
subl $0x106, %eax            # imm = 0x106
je 0x151d0
jmp 0x15078
movl -0x8c(%rbp), %eax
subl $0x107, %eax            # imm = 0x107
je 0x1511a
jmp 0x1508b
movl -0x8c(%rbp), %eax
subl $0x14a, %eax            # imm = 0x14A
je 0x15171
jmp 0x1509e
movl -0x8c(%rbp), %eax
subl $0x168, %eax            # imm = 0x168
je 0x151c3
jmp 0x150b1
movl -0x8c(%rbp), %eax
subl $0x19a, %eax            # imm = 0x19A
jne 0x15269
jmp 0x150c4
callq 0x19290
movq 0xaf00(%rip), %rax      # 0x1ffd0
movl (%rax), %eax
movw %ax, 0xcdaf(%rip)       # 0x21e88
movq -0x10(%rbp), %rdi
callq 0xd020
jmp 0x1526b
cmpq $0x0, -0x20(%rbp)
jbe 0x150fa
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1526b
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x15115
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1526b
cmpq $0x0, -0x20(%rbp)
jbe 0x1516c
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
addq $-0x4, %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x1526b
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x151be
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
addq $0x4, %rsi
movq -0x18(%rbp), %rdx
subq -0x20(%rbp), %rdx
subq $0x1, %rdx
shlq $0x2, %rdx
callq 0x46e0
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x1526b
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x1526b
movq $0x0, -0x20(%rbp)
jmp 0x1526b
cmpl $0x103, -0x38(%rbp)     # imm = 0x103
sete %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x19f50
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x15267
cmpq $0x0, -0x48(%rbp)
je 0x15267
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x7799(%rip), %ecx      # 0x1c9ab
cmpl %ecx, %eax
je 0x15223
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x90(%rbp)
jmp 0x15239
movq -0x10(%rbp), %rdi
leaq 0x777d(%rip), %rsi      # 0x1c9ab
callq 0x44e0
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl $0x0, %eax
jne 0x15267
movq -0x10(%rbp), %rdi
callq 0xd020
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movl $0x100, %edx            # imm = 0x100
callq 0x41d0
movq %rax, -0x20(%rbp)
movq %rax, -0x18(%rbp)
jmp 0x15269
jmp 0x1526b
jmp 0x1526d
jmp 0x1457d
xorl %edi, %edi
callq 0x4140
movq 0xad10(%rip), %rax      # 0x1ff90
movq (%rax), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x4580
leaq 0x7431(%rip), %rdi      # 0x1c6c5
callq 0xd020
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rcx
movl $0x0, (%rax,%rcx,4)
movq -0x40(%rbp), %rsi
leaq 0xb79d(%rip), %rdi      # 0x20a50
movl $0xff, %edx
callq 0x47d0
movq %rax, -0x20(%rbp)
cmpq $0xff, -0x20(%rbp)
jb 0x152d2
movb $0x0, 0xb87d(%rip)      # 0x20b4f
movq -0x40(%rbp), %rdi
callq 0x4090
leaq 0xb76e(%rip), %rax      # 0x20a50
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)