// File: /workspace/github_c_makefile_star2_O3/s3lase[P]v6shell/osh.c
// Function: execute1
static void
execute1(struct tnode *t)
{
	struct anode *a;
	mode_t m;
	const char *emsg, *p;
	bool aok;

	if (t->nav == NULL || t->nav[0] == NULL) {
		/* should never (but can) be true */
		err(-1, FMT2S, getmyname(), "execute1: Invalid command");
		return;
	}
	switch (t->nkey) {
	case SBI_NULL:
		/*
		 * Do nothing and set the exit status to zero.
		 */
		status = SH_TRUE;
		return;

	case SBI_ALIAS:
		/*
		 * If both name and string are specified, set alias name
		 * to alias string.  If no string is specified, print the
		 * current value of alias name's string.  If no arguments
		 * are specified, print the name and string of each alias.
		 *
		 * NOTE: Each alias string value is printed as (value)
		 *	 to indicate that the shell executes each alias
		 *	 in a subshell.
		 *
		 * usage: alias [name [string]]
		 */
		if (t->nav[1] != NULL) {
			aok = true;
			for (p = t->nav[1]; *p != EOS; p++)
				if (any(*p, WORDPACK)) {
					aok = false;
					break;
				}
			if (!aok || *t->nav[1] == EOS ||
			    EQUAL(t->nav[1], "alias") ||
			    EQUAL(t->nav[1], "unalias")) {
				err(-1, FMT4S, getmyname(),
				    t->nav[0], t->nav[1], ERR_BADNAME);
				return;
			}
			if (t->nav[2] != NULL) {
				if (t->nav[3] != NULL) {
					emsg = ERR_ARGCOUNT;
					break;
				}
				if (rp_alias(t->nav[2]) == NULL) {
					emsg = error_message;
					break;
				}
				aalloc(t->nav[1], t->nav[2]);
			} else
				if ((p = asget(t->nav[1])) != NULL)
					fd_print(FD1, "(%s)\n", p);
		} else {
			a = anp;
			while (a != NULL) {
				fd_print(FD1, "%s\t(%s)\n", a->name, a->string);
				a = a->next;
			}
		}
		status = SH_TRUE;
		return;

	case SBI_CD:
	case SBI_CHDIR:
		/*
		 * Change the shell's current working directory.
		 */
		do_chdir(t->nav);
		return;

	case SBI_EXIT:
		/*
		 * If the shell is invoked w/ the `-c' or `-t' option, or is
		 * executing an rc file, exit the shell outright if it is not
		 * sourcing another file in the current context.  Otherwise,
		 * cause the shell to cease execution of a file of commands
		 * by seeking to the end of the file (and explicitly exiting
		 * the shell only if the file is not being sourced).
		 */
		if (!PROMPT) {
			if (SHTYPE(ST_ONELINE|ST_RCFILE) && !SHTYPE(ST_SOURCE))
				EXIT(status);
			(void)lseek(FD0, (off_t)0, SEEK_END);
			if (!SHTYPE(ST_SOURCE))
				EXIT(status);
		}
		return;

	case SBI_LOGIN:
	case SBI_NEWGRP:
		/*
		 * Replace the current interactive shell w/ an
		 * instance of login(1) or newgrp(1).
		 */
		if (PROMPT) {
			p = (t->nkey == SBI_LOGIN) ? PATH_LOGIN : PATH_NEWGRP;
			(void)sasignal(SIGINT, SIG_DFL);
			(void)sasignal(SIGQUIT, SIG_DFL);
			(void)pexec(p, (char *const *)t->nav);
			(void)sasignal(SIGINT, SIG_IGN);
			(void)sasignal(SIGQUIT, SIG_IGN);
		}
		emsg = ERR_EXEC;
		break;

	case SBI_SETENV:
		/*
		 * Set the specified environment variable.
		 *
		 * usage: setenv name [value]
		 */
		if (t->nav[1] != NULL &&
		    (t->nav[2] == NULL || t->nav[3] == NULL)) {

			for (p = t->nav[1]; *p != '=' && *p != EOS; p++)
				;	/* nothing */
			if (*t->nav[1] == EOS || *p == '=') {
				err(-1, FMT4S, getmyname(),
				    t->nav[0], t->nav[1], ERR_BADNAME);
				return;
			}
			p = (t->nav[2] != NULL) ? t->nav[2] : "";
			if (setenv(t->nav[1], p, 1) == -1)
				err(ESTATUS, FMT2S, getmyname(), ERR_NOMEM);

			status = SH_TRUE;
			return;

		}
		emsg = ERR_ARGCOUNT;
		break;

	case SBI_SHIFT:
		/*
		 * Shift all positional-parameter values to the left by 1.
		 * The value of $0 does not shift.
		 */
		if (dolc > 1) {
			dolv = &dolv[1];
			dolc--;
			status = SH_TRUE;
			return;
		}
		emsg = ERR_NOARGS;
		break;

	case SBI_SIGIGN:
		/*
		 * Ignore (or unignore) the specified signals, or
		 * print a list of those signals which are ignored
		 * because of a previous invocation of `sigign' in
		 * the current shell.
		 *
		 * usage: sigign [+ | - signal_number ...]
		 */
		do_sigign(t->nav, t->nflags);
		return;

	case SBI_SOURCE:
		/*
		 * Read and execute commands from file and return.
		 *
		 * usage: source file [arg1 ...]
		 */
		if (t->nav[1] != NULL) {
			do_source(t->nav);
			return;
		}
		emsg = ERR_ARGCOUNT;
		break;

	case SBI_UMASK:
		/*
		 * Set the file creation mask to the specified
		 * octal value, or print its current value.
		 *
		 * usage: umask [mask]
		 */
		if (t->nav[1] != NULL && t->nav[2] != NULL) {
			emsg = ERR_ARGCOUNT;
			break;
		}
		if (t->nav[1] == NULL) {
			(void)umask(m = umask(0));
			fd_print(FD1, "%04o\n", (unsigned)m);
		} else {
			m = 0;
			for (p = t->nav[1]; *p >= '0' && *p <= '7'; p++)
				m = m * 8 + (*p - '0');
			if (*t->nav[1] == EOS || *p != EOS || m > 0777) {
				err(-1, FMT4S, getmyname(),
				    t->nav[0], t->nav[1], ERR_BADMASK);
				return;
			}
			(void)umask(m);
		}
		status = SH_TRUE;
		return;

	case SBI_UNALIAS:
		/*
		 * Unset the specified alias name and its string.
		 *
		 * usage: unalias name
		 */
		if (t->nav[1] != NULL && t->nav[2] == NULL) {
			aok = true;
			for (p = t->nav[1]; *p != EOS; p++)
				if (any(*p, WORDPACK)) {
					aok = false;
					break;
				}
			if (!aok || *t->nav[1] == EOS ||
			    EQUAL(t->nav[1], "alias") ||
			    EQUAL(t->nav[1], "unalias")) {
				err(-1, FMT4S, getmyname(),
				    t->nav[0], t->nav[1], ERR_BADNAME);
				return;
			}
			afree(t->nav[1]);
			status = SH_TRUE;
			return;
		}
		emsg = ERR_ARGCOUNT;
		break;

	case SBI_UNSETENV:
		/*
		 * Unset the specified environment variable.
		 *
		 * usage: unsetenv name
		 */
		if (t->nav[1] != NULL && t->nav[2] == NULL) {

			for (p = t->nav[1]; *p != '=' && *p != EOS; p++)
				;	/* nothing */
			if (*t->nav[1] == EOS || *p == '=') {
				err(-1, FMT4S, getmyname(),
				    t->nav[0], t->nav[1], ERR_BADNAME);
				return;
			}
			unsetenv(t->nav[1]);

			status = SH_TRUE;
			return;

		}
		emsg = ERR_ARGCOUNT;
		break;

	case SBI_WAIT:
		/*
		 * Wait for all asynchronous processes to terminate,
		 * reporting on abnormal terminations.
		 */
		pwait(-1);
		return;

	default:
		emsg = ERR_EXEC;
	}
	err(-1, FMT3S, getmyname(), t->nav[0], emsg);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movq 0x28(%rdi), %rbx
testq %rbx, %rbx
je 0x5014
cmpq $0x0, (%rbx)
je 0x5014
movq %rdi, %r14
movl 0x30(%rdi), %eax
leaq 0x4380(%rip), %r15      # 0x933f
cmpq $0x13, %rax
ja 0x546e
leaq 0x41a8(%rip), %rcx      # 0x9178
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
leaq 0x4840(%rip), %rdi      # 0x9820
movl $0x800, %esi            # imm = 0x800
xorl %eax, %eax
callq 0x2320
movl %eax, %ebp
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x53ea
cmpb $0x2d, (%rdi)
jne 0x500a
cmpb $0x0, 0x1(%rdi)
je 0x5711
callq 0x5cf8
jmp 0x540f
callq 0x6a87
leaq 0x4317(%rip), %rsi      # 0x9337
leaq 0x43ac(%rip), %rcx      # 0x93d3
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
xorl %eax, %eax
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6840
movl 0x71ef(%rip), %ecx      # 0xc23c
andl $0x1f, %ecx
cmpl $0x4, %ecx
jne 0x546e
cmpl $0xa, %eax
leaq 0x439c(%rip), %rax      # 0x93ff
leaq 0x43a4(%rip), %rbx      # 0x940e
cmoveq %rax, %rbx
movl $0x2, %edi
xorl %esi, %esi
callq 0x8034
movl $0x3, %edi
xorl %esi, %esi
callq 0x8034
movq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x7b28
movl $0x1, %esi
movl $0x2, %edi
callq 0x8034
movl $0x1, %esi
movl $0x3, %edi
callq 0x8034
jmp 0x546e
movq 0x8(%rbx), %rdi
leaq 0x4265(%rip), %r15      # 0x9325
testq %rdi, %rdi
je 0x546e
cmpq $0x0, 0x10(%rbx)
jne 0x546e
movq %rdi, %rax
movzbl (%rax), %ecx
testl %ecx, %ecx
je 0x56a0
cmpl $0x3d, %ecx
je 0x56a0
incq %rax
jmp 0x50d7
cmpq $0x0, 0x8(%rbx)
je 0x51b2
movq %rbx, %rdi
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x61d8
movq 0x8(%rbx), %r12
leaq 0x4206(%rip), %r15      # 0x9325
testq %r12, %r12
je 0x546e
cmpq $0x0, 0x10(%rbx)
jne 0x546e
movzbl (%r12), %eax
testl %eax, %eax
je 0x5a40
leaq 0x412b(%rip), %rcx      # 0x9272
movl %eax, %esi
movq %r12, %rdx
movq %rcx, %rdi
movb (%rdi), %r8b
testb %r8b, %r8b
je 0x515f
incq %rdi
cmpb %sil, %r8b
jne 0x514f
testb %r8b, %r8b
jne 0x5a40
movb 0x1(%rdx), %sil
incq %rdx
testb %sil, %sil
jne 0x514c
testl %eax, %eax
je 0x5a40
cmpl $0x75, %eax
je 0x5a09
cmpl $0x61, %eax
jne 0x5a1c
leaq 0x40a2(%rip), %rsi      # 0x9237
jmp 0x5a10
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x5545
cmpq $0x0, 0x10(%rbx)
je 0x56bc
leaq 0x416c(%rip), %r15      # 0x9325
jmp 0x546e
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x556f
movzbl (%r15), %eax
testl %eax, %eax
je 0x5a40
leaq 0x4094(%rip), %rcx      # 0x9272
movl %eax, %esi
movq %r15, %rdx
movq %rcx, %rdi
movb (%rdi), %r8b
testb %r8b, %r8b
je 0x51f6
incq %rdi
cmpb %sil, %r8b
jne 0x51e6
testb %r8b, %r8b
jne 0x5a40
movb 0x1(%rdx), %sil
incq %rdx
testb %sil, %sil
jne 0x51e3
testl %eax, %eax
je 0x5a40
cmpl $0x75, %eax
je 0x5954
cmpl $0x61, %eax
jne 0x596b
leaq 0x400b(%rip), %rsi      # 0x9237
jmp 0x595b
movq 0x8(%rbx), %rdi
leaq 0x40e9(%rip), %r15      # 0x9325
testq %rdi, %rdi
je 0x546e
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x5259
cmpq $0x0, 0x18(%rbx)
jne 0x546e
movq %rdi, %rcx
movzbl (%rcx), %edx
testl %edx, %edx
je 0x54d3
cmpl $0x3d, %edx
je 0x54d3
incq %rcx
jmp 0x525c
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x5a8f
movl 0x6fa6(%rip), %eax      # 0xc23c
movl %eax, %ecx
andl $0x1f, %ecx
cmpl $0x4, %ecx
je 0x5a2e
testb $0x9, %al
sete %cl
andl $0x10, %eax
shrl $0x4, %eax
orb %cl, %al
je 0x52ce
xorl %edi, %edi
xorl %esi, %esi
movl $0x2, %edx
callq 0x21a0
testb $0x10, 0x6f74(%rip)     # 0xc23c
jne 0x5a2e
callq 0x2100
movl %eax, %ebx
callq 0x6a9d
movl 0x6f88(%rip), %edi      # 0xc268
cmpl %eax, %ebx
jne 0x5a8a
callq 0x2370
movl 0x34(%r14), %ebp
leaq 0x1b8(%rsp), %r14
movq %r14, %rdi
callq 0x2290
leaq 0x138(%rsp), %rdx
movl $0x2, %edi
movq %r14, %rsi
callq 0x2040
cmpb $0x0, 0xc054(%rip)      # 0x11371
jne 0x5368
xorl %r15d, %r15d
leaq 0xc007(%rip), %r12      # 0x11330
leaq 0xa0(%rsp), %r14
movb $0x0, (%r15,%r12)
leal 0x1(%r15), %edi
xorl %esi, %esi
movq %r14, %rdx
callq 0x20b0
testl %eax, %eax
js 0x5358
cmpq $0x1, 0xa0(%rsp)
jne 0x5358
movb $0x1, (%r15,%r12)
incq %r15
cmpq $0x40, %r15
jne 0x5331
movb $0x1, 0xc009(%rip)      # 0x11371
cmpq $0x0, 0x8(%rbx)
je 0x55aa
cmpq $0x0, 0x10(%rbx)
je 0x57ad
leaq 0x8(%rsp), %rdi
movl $0x98, %edx
xorl %esi, %esi
callq 0x21b0
leaq 0x10(%rsp), %rdi
callq 0x2250
movq 0x8(%rbx), %rax
movzbl (%rax), %ecx
cmpl $0x2d, %ecx
je 0x57a7
cmpl $0x2b, %ecx
jne 0x57ad
cmpb $0x0, 0x1(%rax)
jne 0x57ad
movl $0x1, %eax
jmp 0x57f9
movl 0x6e6c(%rip), %eax      # 0xc238
cmpl $0x2, %eax
jl 0x5467
addq $0x8, 0x6e53(%rip)      # 0xc230
decl %eax
movl %eax, 0x6e53(%rip)      # 0xc238
jmp 0x5a24
leaq 0x3ebe(%rip), %rdi      # 0x92af
callq 0x2030
leaq 0x4046(%rip), %r14      # 0x9443
testq %rax, %rax
je 0x54ab
cmpb $0x0, (%rax)
je 0x54ab
movq %rax, %rdi
callq 0x2140
cmpl $-0x1, %eax
je 0x54a4
cmpl $-0x1, %ebp
je 0x567d
cmpl $0xc, %ebp
je 0x545b
movl %ebp, %edi
movl $0xc, %esi
callq 0x2160
movl %eax, 0x6dc0(%rip)      # 0xc200
cmpl $0xc, %eax
jne 0x545b
movl $0xc, %edi
movl $0x2, %esi
movl $0x1, %edx
xorl %eax, %eax
callq 0x20d0
movl %ebp, %edi
callq 0x21d0
jmp 0x5a24
leaq 0x3fb0(%rip), %r15      # 0x941e
callq 0x6a87
movq 0x28(%r14), %rcx
movq (%rcx), %rcx
leaq 0x3eb2(%rip), %rsi      # 0x9333
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
movq %r15, %r8
xorl %eax, %eax
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6840
leaq 0x3f8a(%rip), %r14      # 0x9435
cmpl $-0x1, %ebp
je 0x54b7
movl %ebp, %edi
callq 0x21d0
callq 0x6a87
movq (%rbx), %rcx
leaq 0x3e6d(%rip), %rsi      # 0x9333
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
movq %r14, %r8
jmp 0x548c
cmpb $0x3d, %dl
je 0x5a40
cmpb $0x0, (%rdi)
je 0x5a40
testq %rax, %rax
leaq 0x3de1(%rip), %rsi      # 0x92d0
cmovneq %rax, %rsi
movl $0x1, %edx
callq 0x20e0
cmpl $-0x1, %eax
jne 0x5a24
callq 0x2100
movl %eax, %ebx
callq 0x6a9d
cmpl %eax, %ebx
movl $0x2, %eax
movl $0x7c, %ebx
cmovel %eax, %ebx
callq 0x6a87
leaq 0x3e0a(%rip), %rsi      # 0x9337
leaq 0x3d9d(%rip), %rcx      # 0x92d1
movl %ebx, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x6840
jmp 0x5a24
xorl %edi, %edi
callq 0x2260
movl %eax, %ebx
movl %eax, %edi
callq 0x2260
leaq 0x3eca(%rip), %rsi      # 0x9426
movl $0x1, %edi
movl %ebx, %edx
xorl %eax, %eax
callq 0x69fa
jmp 0x5a24
movq 0x9592(%rip), %r14      # 0xeb08
testq %r14, %r14
je 0x5a24
leaq 0x3e70(%rip), %rbx      # 0x93f6
movq 0x8(%r14), %rdx
movq 0x10(%r14), %rcx
movl $0x1, %edi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x69fa
movq (%r14), %r14
testq %r14, %r14
jne 0x5586
jmp 0x5a24
leaq 0xa0(%rsp), %r14
leaq 0xbd77(%rip), %r13      # 0x11330
xorl %r15d, %r15d
movq %r15, %r12
incq %r15
movl %r15d, %edi
xorl %esi, %esi
movq %r14, %rdx
callq 0x20b0
testl %eax, %eax
js 0x565a
cmpq $0x1, 0xa0(%rsp)
jne 0x565a
cmpb $0x1, (%r12,%r13)
jne 0x5641
testb $0x40, %bpl
jne 0x5615
cmpl $0xf, %r15d
je 0x561b
cmpl $0x3, %r15d
je 0x562f
cmpl $0x2, %r15d
jne 0x565a
testb $0x1, 0xbd6c(%rip)      # 0x11374
je 0x565a
testb $0x1, 0x6c3b(%rip)      # 0xc24c
jne 0x5641
jmp 0x565a
cmpq $0xe, %r12
jne 0x565a
testb $0x4, 0xbd52(%rip)      # 0x11374
je 0x565a
testb $0x4, 0x6c21(%rip)      # 0xc24c
jne 0x5641
jmp 0x565a
testb $0x2, 0xbd3e(%rip)      # 0x11374
je 0x565a
testb $0x2, 0x6c0d(%rip)      # 0xc24c
je 0x565a
movq (%rbx), %rdx
movl $0x1, %edi
leaq 0x3e1b(%rip), %rsi      # 0x946b
movl %r15d, %ecx
xorl %eax, %eax
callq 0x69fa
cmpq $0x40, %r15
jne 0x55bc
leaq 0x138(%rsp), %rsi
movl $0x2, %edi
xorl %edx, %edx
callq 0x2040
jmp 0x5a24
movl 0x6b7d(%rip), %edi      # 0xc200
callq 0x21d0
cmpl $-0x1, %eax
je 0x5a24
movl $0xffffffff, 0x6b65(%rip) # imm = 0xFFFFFFFF
jmp 0x5a24
cmpb $0x3d, %cl
je 0x5a40
cmpb $0x0, (%rdi)
je 0x5a40
callq 0x2360
jmp 0x5a24
movb (%rax), %cl
movl %ecx, %esi
andb $-0x8, %sil
xorl %edi, %edi
movl %ecx, %edx
cmpb $0x30, %sil
jne 0x56ef
incq %rax
xorl %edi, %edi
movl %ecx, %edx
addb $-0x30, %dl
movzbl %dl, %edx
leal (%rdx,%rdi,8), %edi
movb (%rax), %dl
movl %edx, %esi
andb $-0x8, %sil
incq %rax
cmpb $0x30, %sil
je 0x56d5
testb %cl, %cl
je 0x5784
testb %dl, %dl
jne 0x5784
cmpl $0x200, %edi            # imm = 0x200
jae 0x5784
callq 0x2260
jmp 0x5a24
movl 0x6ae9(%rip), %edi      # 0xc200
cmpl $-0x1, %edi
je 0x57eb
leaq 0x8(%rsp), %rsi
callq 0x2390
testl %eax, %eax
js 0x575a
movl $0xf000, %eax           # imm = 0xF000
andl 0x20(%rsp), %eax
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x575a
cmpq $0x0, 0x18(%rsp)
je 0x575a
movl 0x6ab4(%rip), %edi      # 0xc200
callq 0x22f0
cmpl $-0x1, %eax
jne 0x5420
movl 0x6aa0(%rip), %edi      # 0xc200
callq 0x21d0
leaq 0x3cc9(%rip), %r14      # 0x9435
cmpl $-0x1, %eax
je 0x54ab
movl $0xffffffff, 0x6a81(%rip) # imm = 0xFFFFFFFF
jmp 0x54ab
callq 0x6a87
movq 0x28(%r14), %rdx
movq (%rdx), %rcx
movq 0x8(%rdx), %r8
leaq 0x3b94(%rip), %rsi      # 0x932f
leaq 0x3c8a(%rip), %r9       # 0x942c
jmp 0x5a5e
cmpb $0x0, 0x1(%rax)
je 0x57f7
leaq 0x138(%rsp), %rsi
movl $0x2, %edi
xorl %edx, %edx
callq 0x2040
callq 0x6a87
movq (%rbx), %rcx
leaq 0x3b63(%rip), %rsi      # 0x9333
leaq 0x3cca(%rip), %r8       # 0x94a1
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
xorl %eax, %eax
callq 0x6840
jmp 0x5a2e
leaq 0x3c63(%rip), %r14      # 0x9455
jmp 0x54ab
xorl %eax, %eax
movq %rax, 0x8(%rsp)
movl $0x10000000, 0x90(%rsp) # imm = 0x10000000
movq 0x10(%rbx), %r13
testq %r13, %r13
je 0x5664
movl $0x2, %ebp
callq 0x2070
movq %rax, %r14
movq %rsp, %r15
leaq 0xa0(%rsp), %r12
movl $0x0, (%r14)
movq %r13, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x2280
cmpl $0x0, (%r14)
jne 0x59a3
movq %rax, %r13
movq (%rbx,%rbp,8), %rax
cmpb $0x0, (%rax)
je 0x59a3
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x59a3
leaq -0x41(%r13), %rax
cmpq $-0x40, %rax
jb 0x59a3
movl %r13d, %edi
xorl %esi, %esi
movq %r12, %rdx
callq 0x20b0
testl %eax, %eax
js 0x593e
movq 0x8(%rsp), %rsi
movq 0xa0(%rsp), %rax
movq %rsi, %rcx
orq %rax, %rcx
je 0x593e
leal -0x1(%r13), %ecx
leaq 0xba7d(%rip), %rdx      # 0x11330
cmpb $0x1, (%rcx,%rdx)
jne 0x58cb
movl %r13d, %edi
callq 0x6591
cmpq $0x0, 0x8(%rsp)
jne 0x5907
jmp 0x593e
testq %rsi, %rsi
jne 0x5907
testb $0x1, 0x6971(%rip)      # 0xc248
je 0x5907
cmpq $0x1, %r13
jne 0x5907
leaq -0x2d22(%rip), %rcx     # 0x2bc4
cmpq %rcx, %rax
je 0x593e
movl $0x1, %edi
leaq -0x2d33(%rip), %rsi     # 0x2bc4
callq 0x8034
cmpq $-0x1, %rax
jne 0x593e
jmp 0x57ad
cmpq $0x9, %r13
sete %al
movl %r13d, %ecx
andl $0x7d, %ecx
cmpl $0x11, %ecx
sete %cl
orb %al, %cl
jne 0x593e
movl %r13d, %edi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x20b0
testl %eax, %eax
js 0x593e
movq 0x8(%rsp), %rsi
movl %r13d, %edi
callq 0x6591
movq 0x8(%rbx,%rbp,8), %r13
incq %rbp
testq %r13, %r13
jne 0x582e
jmp 0x5664
leaq 0x38da(%rip), %rsi      # 0x9235
movq %r15, %rdi
callq 0x2230
testl %eax, %eax
je 0x5a40
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x59e4
cmpq $0x0, 0x18(%rbx)
jne 0x51b2
callq 0x491d
testq %rax, %rax
je 0x5a7e
movq 0x28(%r14), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rsi
callq 0x60c2
jmp 0x5a24
leaq 0x138(%rsp), %rsi
movl $0x2, %edi
xorl %edx, %edx
callq 0x2040
callq 0x6a87
movq (%rbx), %rcx
movl %ebp, %edx
movq (%rbx,%rdx,8), %r8
leaq 0x3963(%rip), %rsi      # 0x932f
leaq 0x3aa2(%rip), %r9       # 0x9475
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
xorl %eax, %eax
callq 0x6840
jmp 0x5a2e
movq %r15, %rdi
callq 0x48cd
testq %rax, %rax
je 0x5a24
leaq 0x3a01(%rip), %rsi      # 0x93f9
movl $0x1, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x69fa
jmp 0x5a24
leaq 0x3825(%rip), %rsi      # 0x9235
movq %r12, %rdi
callq 0x2230
testl %eax, %eax
je 0x5a40
movq %r12, %rdi
callq 0x3195
movl $0x0, 0x683a(%rip)      # 0xc268
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6a87
movq 0x28(%r14), %rdx
movq (%rdx), %rcx
movq 0x8(%rdx), %r8
leaq 0x38d8(%rip), %rsi      # 0x932f
leaq 0x398f(%rip), %r9       # 0x93ed
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movq %rax, %rdx
xorl %eax, %eax
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6840
movq 0x9023(%rip), %r15      # 0xeaa8
jmp 0x546e
callq 0x2080