// File: /workspace/github_c_makefile_star2_O0/s3lase[P]v6shell/sh6.c
// Function: execute
static void
execute(struct tnode *t, int *pin, int *pout)
{
	struct tnode *t1;
	enum tnflags f;
	pid_t cpid;
	int i, pfd[2];
	const char **gav;
	const char *cmd, *p;

	if (t == NULL)
		return;
	switch (t->ntype) {
	case TLIST:
		f = t->nflags & (FFIN | FPIN | FINTR);
		if ((t1 = t->nleft) != NULL)
			t1->nflags |= f;
		execute(t1, NULL, NULL);
		if ((t1 = t->nright) != NULL)
			t1->nflags |= f;
		execute(t1, NULL, NULL);
		return;

	case TPIPE:
		if (pipe(pfd) == -1) {
			err(SH_ERR, FMT1S, ERR_PIPE);
			if (pin != NULL) {
				(void)close(pin[0]);
				(void)close(pin[1]);
			}
			return;
		}
		f = t->nflags;
		if ((t1 = t->nleft) != NULL)
			t1->nflags |= FPOUT | (f & (FFIN|FPIN|FINTR|FPRS));
		execute(t1, pin, pfd);
		if ((t1 = t->nright) != NULL)
			t1->nflags |= FPIN | (f & (FAND|FPOUT|FINTR|FPRS));
		execute(t1, pfd, pout);
		(void)close(pfd[0]);
		(void)close(pfd[1]);
		return;

	case TCOMMAND:
		if (t->nav == NULL || t->nav[0] == NULL) {
			/* should never (but can) be true */
			err(SH_ERR, FMT1S, "execute: Invalid command");
			return;
		}
		cmd = t->nav[0];
		if (EQUAL(cmd, ":")) {
			status = SH_TRUE;
			return;
		}
		if (EQUAL(cmd, "chdir")) {
			ascan(t->nav[1], &trim);
			if (t->nav[1] == NULL)
				err(SH_ERR, FMT2S, cmd, ERR_ARGCOUNT);
			else if (chdir(t->nav[1]) == -1)
				err(SH_ERR, FMT2S, cmd, ERR_BADDIR);
			else
				status = SH_TRUE;
			return;
		}
		if (EQUAL(cmd, "exit")) {
			if (prompt == NULL) {
				(void)lseek(FD0, (off_t)0, SEEK_END);
				EXIT(status);
			}
			return;
		}
		if (EQUAL(cmd, "login") || EQUAL(cmd, "newgrp")) {
			if (prompt != NULL) {
				p = (*cmd == 'l') ? PATH_LOGIN : PATH_NEWGRP;
				vscan(t->nav, &trim);
				(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);
			}
			err(SH_ERR, FMT2S, cmd, ERR_EXEC);
			return;
		}
		if (EQUAL(cmd, "shift")) {
			if (dolc > 1) {
				dolv = &dolv[1];
				dolc--;
				status = SH_TRUE;
				return;
			}
			err(SH_ERR, FMT2S, cmd, ERR_NOARGS);
			return;
		}
		if (EQUAL(cmd, "wait")) {
			pwait(-1);
			return;
		}
		/*FALLTHROUGH*/

	case TSUBSHELL:
		f = t->nflags;
		if ((cpid = ((f & FNOFORK) != 0) ? 0 : fork()) == -1) {
			err(SH_ERR, FMT1S, ERR_FORK);
			return;
		}
		/**** Parent! ****/
		if (cpid != 0) {
			if (pin != NULL && (f & FPIN) != 0) {
				(void)close(pin[0]);
				(void)close(pin[1]);
			}
			if ((f & FPRS) != 0)
				fd_print(FD2, "%u\n", (unsigned)cpid);
			if ((f & FAND) != 0)
				return;
			if ((f & FPOUT) == 0)
				pwait(cpid);
			return;
		}
		/**** Child! ****/
		/*
		 * Redirect (read) input from pipe.
		 */
		if (pin != NULL && (f & FPIN) != 0) {
			if (dup2(pin[0], FD0) == -1)
				err(FC_ERR, FMT1S, strerror(errno));
			(void)close(pin[0]);
			(void)close(pin[1]);
		}
		/*
		 * Redirect (write) output to pipe.
		 */
		if (pout != NULL && (f & FPOUT) != 0) {
			if (dup2(pout[1], FD1) == -1)
				err(FC_ERR, FMT1S, strerror(errno));
			(void)close(pout[0]);
			(void)close(pout[1]);
		}
		/*
		 * Redirect (read) input from file.
		 */
		if (t->nfin != NULL && (f & FPIN) == 0) {
			f |= FFIN;
			ascan(t->nfin, &trim);
			if ((i = open(t->nfin, O_RDONLY)) == -1)
				err(FC_ERR, FMT2S, t->nfin, ERR_OPEN);
			if (dup2(i, FD0) == -1)
				err(FC_ERR, FMT1S, strerror(errno));
			(void)close(i);
		}
		/*
		 * Redirect (write) output to file.
		 */
		if (t->nfout != NULL && (f & FPOUT) == 0) {
			if ((f & FCAT) != 0)
				i = O_WRONLY | O_APPEND | O_CREAT;
			else
				i = O_WRONLY | O_TRUNC | O_CREAT;
			ascan(t->nfout, &trim);
			if ((i = open(t->nfout, i, 0666)) == -1)
				err(FC_ERR, FMT2S, t->nfout, ERR_CREATE);
			if (dup2(i, FD1) == -1)
				err(FC_ERR, FMT1S, strerror(errno));
			(void)close(i);
		}
		/*
		 * Set the action for the SIGINT and SIGQUIT signals, and
		 * redirect input for `&' commands from `/dev/null' if needed.
		 */
		if ((f & FINTR) != 0) {
			(void)sasignal(SIGINT, SIG_IGN);
			(void)sasignal(SIGQUIT, SIG_IGN);
			if (t->nfin == NULL && (f & (FFIN|FPIN|FPRS)) == FPRS) {
				(void)close(FD0);
				if (open("/dev/null", O_RDONLY) != FD0)
					err(FC_ERR,FMT2S,"/dev/null",ERR_OPEN);
			}
		} else {
			if ((sig_child & S_SIGINT) != 0)
				(void)sasignal(SIGINT, SIG_DFL);
			if ((sig_child & S_SIGQUIT) != 0)
				(void)sasignal(SIGQUIT, SIG_DFL);
		}
		/* Set the SIGTERM signal to its default action if needed. */
		if ((sig_child & S_SIGTERM) != 0)
			(void)sasignal(SIGTERM, SIG_DFL);
		if (t->ntype == TSUBSHELL) {
			if ((t1 = t->nsub) != NULL)
				t1->nflags |= (f & (FFIN | FPIN | FINTR));
			execute(t1, NULL, NULL);
			_exit(status);
		}
		glob_flag = false;
		vscan(t->nav, &tglob);
		if (glob_flag) {
			for (i = 0; t->nav[i] != NULL; i++)
				;	/* nothing */
			gav = xmalloc((i + 2) * sizeof(char *));
			gav[0] = "glob6";
			cmd = gav[0];
			(void)memcpy(&gav[1], t->nav, (i + 1) * sizeof(char *));
			(void)err_pexec(cmd, (char *const *)gav);
		} else {
			vscan(t->nav, &trim);
			cmd = t->nav[0];
			(void)err_pexec(cmd, (char *const *)t->nav);
		}
		/*NOTREACHED*/
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x2d40
jmp 0x3724
movq -0x8(%rbp), %rax
movl 0x34(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x58(%rbp)
subl $0x3, %eax
ja 0x3724
movq -0x58(%rbp), %rax
leaq 0x3575(%rip), %rcx      # 0x62d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
andl $0x4c, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x2d97
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
orl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x2d20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x2dc6
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
orl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x2d20
jmp 0x3724
leaq -0x34(%rbp), %rdi
callq 0x2190
cmpl $-0x1, %eax
jne 0x2e26
movl $0x2, %edi
leaq 0x3911(%rip), %rsi      # 0x6706
leaq 0x369c(%rip), %rdx      # 0x6498
movb $0x0, %al
callq 0x4590
cmpq $0x0, -0x10(%rbp)
je 0x2e21
movq -0x10(%rbp), %rax
movl (%rax), %edi
callq 0x2180
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x2180
jmp 0x3724
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x2e57
movl -0x24(%rbp), %ecx
andl $0xcc, %ecx
orl $0x10, %ecx
movq -0x20(%rbp), %rax
orl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x34(%rbp), %rdx
callq 0x2d20
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x2e90
movl -0x24(%rbp), %ecx
andl $0xd1, %ecx
orl $0x8, %ecx
movq -0x20(%rbp), %rax
orl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
leaq -0x34(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2d20
movl -0x34(%rbp), %edi
callq 0x2180
movl -0x30(%rbp), %edi
callq 0x2180
jmp 0x3724
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x2ecf
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, (%rax)
jne 0x2eee
movl $0x2, %edi
leaq 0x382b(%rip), %rsi      # 0x6706
leaq 0x35ce(%rip), %rdx      # 0x64b0
movb $0x0, %al
callq 0x4590
jmp 0x3724
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x35be(%rip), %ecx      # 0x64c9
cmpl %ecx, %eax
jne 0x2f33
movq -0x48(%rbp), %rdi
leaq 0x35af(%rip), %rsi      # 0x64c9
callq 0x21c0
cmpl $0x0, %eax
jne 0x2f33
movl $0x0, 0x5286(%rip)      # 0x81b4
jmp 0x3724
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x358a(%rip), %ecx      # 0x64cb
cmpl %ecx, %eax
jne 0x2ff0
movq -0x48(%rbp), %rdi
leaq 0x3577(%rip), %rsi      # 0x64cb
callq 0x21c0
cmpl $0x0, %eax
jne 0x2ff0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x129b(%rip), %rsi      # 0x4210
callq 0x41b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0x2fa9
movq -0x48(%rbp), %rdx
movl $0x2, %edi
leaq 0x3769(%rip), %rsi      # 0x6702
leaq 0x3531(%rip), %rcx      # 0x64d1
movb $0x0, %al
callq 0x4590
jmp 0x2feb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x2100
cmpl $-0x1, %eax
jne 0x2fdf
movq -0x48(%rbp), %rdx
movl $0x2, %edi
leaq 0x3733(%rip), %rsi      # 0x6702
leaq 0x3505(%rip), %rcx      # 0x64db
movb $0x0, %al
callq 0x4590
jmp 0x2fe9
movl $0x0, 0x51cb(%rip)      # 0x81b4
jmp 0x2feb
jmp 0x3724
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x34eb(%rip), %ecx      # 0x64e9
cmpl %ecx, %eax
jne 0x3062
movq -0x48(%rbp), %rdi
leaq 0x34dc(%rip), %rsi      # 0x64e9
callq 0x21c0
cmpl $0x0, %eax
jne 0x3062
cmpq $0x0, 0x5189(%rip)      # 0x81a8
jne 0x305d
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x2150
callq 0x20e0
movl %eax, -0x5c(%rbp)
callq 0x48c0
movl %eax, %ecx
movl -0x5c(%rbp), %eax
cmpl %ecx, %eax
jne 0x3052
movl 0x5167(%rip), %edi      # 0x81b4
callq 0x2250
movl 0x515c(%rip), %edi      # 0x81b4
callq 0x2080
jmp 0x3724
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x3487(%rip), %ecx      # 0x64f7
cmpl %ecx, %eax
jne 0x3089
movq -0x48(%rbp), %rdi
leaq 0x3478(%rip), %rsi      # 0x64f7
callq 0x21c0
cmpl $0x0, %eax
je 0x30b8
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x346f(%rip), %ecx      # 0x6506
cmpl %ecx, %eax
jne 0x3164
movq -0x48(%rbp), %rdi
leaq 0x345c(%rip), %rsi      # 0x6506
callq 0x21c0
cmpl $0x0, %eax
jne 0x3164
cmpq $0x0, 0x50e8(%rip)      # 0x81a8
je 0x3141
movq -0x48(%rbp), %rax
movsbl (%rax), %edx
leaq 0x342d(%rip), %rax      # 0x64fd
leaq 0x3417(%rip), %rcx      # 0x64ee
cmpl $0x6c, %edx
cmoveq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
leaq 0x111f(%rip), %rsi      # 0x4210
callq 0x4220
movl $0x2, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5090
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5090
movq -0x50(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x4a20
movl $0x2, %edi
movl $0x1, %esi
callq 0x5090
movl $0x3, %edi
movl $0x1, %esi
callq 0x5090
movq -0x48(%rbp), %rdx
movl $0x2, %edi
leaq 0x35b1(%rip), %rsi      # 0x6702
leaq 0x33b5(%rip), %rcx      # 0x650d
movb $0x0, %al
callq 0x4590
jmp 0x3724
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x33aa(%rip), %ecx      # 0x651c
cmpl %ecx, %eax
jne 0x31e7
movq -0x48(%rbp), %rdi
leaq 0x339b(%rip), %rsi      # 0x651c
callq 0x21c0
cmpl $0x0, %eax
jne 0x31e7
cmpl $0x1, 0x4ffe(%rip)      # 0x8190
jle 0x31c4
movq 0x4fed(%rip), %rax      # 0x8188
addq $0x8, %rax
movq %rax, 0x4fe2(%rip)      # 0x8188
movl 0x4fe4(%rip), %eax      # 0x8190
addl $-0x1, %eax
movl %eax, 0x4fdb(%rip)      # 0x8190
movl $0x0, 0x4ff5(%rip)      # 0x81b4
jmp 0x3724
movq -0x48(%rbp), %rdx
movl $0x2, %edi
leaq 0x352e(%rip), %rsi      # 0x6702
leaq 0x3347(%rip), %rcx      # 0x6522
movb $0x0, %al
callq 0x4590
jmp 0x3724
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
movsbl 0x3335(%rip), %ecx      # 0x652a
cmpl %ecx, %eax
jne 0x321d
movq -0x48(%rbp), %rdi
leaq 0x3326(%rip), %rsi      # 0x652a
callq 0x21c0
cmpl $0x0, %eax
jne 0x321d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x42a0
jmp 0x3724
jmp 0x321f
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x323b
xorl %eax, %eax
movl %eax, -0x60(%rbp)
jmp 0x3243
callq 0x22a0
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %eax
movl %eax, -0x28(%rbp)
cmpl $-0x1, %eax
jne 0x326d
movl $0x2, %edi
leaq 0x34ac(%rip), %rsi      # 0x6706
leaq 0x32ce(%rip), %rdx      # 0x652f
movb $0x0, %al
callq 0x4590
jmp 0x3724
cmpl $0x0, -0x28(%rbp)
je 0x32e7
cmpq $0x0, -0x10(%rbp)
je 0x329c
movl -0x24(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x329c
movq -0x10(%rbp), %rax
movl (%rax), %edi
callq 0x2180
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x2180
movl -0x24(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x32bf
movl -0x28(%rbp), %edx
movl $0x2, %edi
leaq 0x328f(%rip), %rsi      # 0x6547
movb $0x0, %al
callq 0x47e0
movl -0x24(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x32cf
jmp 0x3724
movl -0x24(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x32e2
movl -0x28(%rbp), %edi
callq 0x42a0
jmp 0x3724
cmpq $0x0, -0x10(%rbp)
je 0x3344
movl -0x24(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x3344
movq -0x10(%rbp), %rax
movl (%rax), %edi
xorl %esi, %esi
callq 0x2120
cmpl $-0x1, %eax
jne 0x332d
callq 0x2070
movl (%rax), %edi
callq 0x2260
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x33e0(%rip), %rsi      # 0x6706
movb $0x0, %al
callq 0x4590
movq -0x10(%rbp), %rax
movl (%rax), %edi
callq 0x2180
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x2180
cmpq $0x0, -0x18(%rbp)
je 0x33a5
movl -0x24(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x33a5
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edi
movl $0x1, %esi
callq 0x2120
cmpl $-0x1, %eax
jne 0x338e
callq 0x2070
movl (%rax), %edi
callq 0x2260
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x337f(%rip), %rsi      # 0x6706
movb $0x0, %al
callq 0x4590
movq -0x18(%rbp), %rax
movl (%rax), %edi
callq 0x2180
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x2180
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x3454
movl -0x24(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x3454
movl -0x24(%rbp), %eax
orl $0x4, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xe35(%rip), %rsi       # 0x4210
callq 0x41b0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
movb $0x0, %al
callq 0x2230
movl %eax, -0x2c(%rbp)
cmpl $-0x1, %eax
jne 0x341b
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
movl $0x7c, %edi
leaq 0x32f5(%rip), %rsi      # 0x6702
leaq 0x300e(%rip), %rcx      # 0x6422
movb $0x0, %al
callq 0x4590
movl -0x2c(%rbp), %edi
xorl %esi, %esi
callq 0x2120
cmpl $-0x1, %eax
jne 0x344c
callq 0x2070
movl (%rax), %edi
callq 0x2260
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x32c1(%rip), %rsi      # 0x6706
movb $0x0, %al
callq 0x4590
movl -0x2c(%rbp), %edi
callq 0x2180
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x351e
movl -0x24(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x351e
movl -0x24(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x3486
movl $0x441, -0x2c(%rbp)     # imm = 0x441
jmp 0x348d
movl $0x241, -0x2c(%rbp)     # imm = 0x241
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq 0xd74(%rip), %rsi       # 0x4210
callq 0x41b0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl -0x2c(%rbp), %esi
movl $0x1b6, %edx            # imm = 0x1B6
movb $0x0, %al
callq 0x2230
movl %eax, -0x2c(%rbp)
cmpl $-0x1, %eax
jne 0x34e2
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdx
movl $0x7c, %edi
leaq 0x322e(%rip), %rsi      # 0x6702
leaq 0x3070(%rip), %rcx      # 0x654b
movb $0x0, %al
callq 0x4590
movl -0x2c(%rbp), %edi
movl $0x1, %esi
callq 0x2120
cmpl $-0x1, %eax
jne 0x3516
callq 0x2070
movl (%rax), %edi
callq 0x2260
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x31f7(%rip), %rsi      # 0x6706
movb $0x0, %al
callq 0x4590
movl -0x2c(%rbp), %edi
callq 0x2180
movl -0x24(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x35a2
movl $0x2, %edi
movl $0x1, %esi
callq 0x5090
movl $0x3, %edi
movl $0x1, %esi
callq 0x5090
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x35a0
movl -0x24(%rbp), %eax
andl $0x8c, %eax
cmpl $0x80, %eax
jne 0x35a0
xorl %edi, %edi
callq 0x2180
leaq 0x2fea(%rip), %rdi      # 0x6559
xorl %esi, %esi
movb $0x0, %al
callq 0x2230
cmpl $0x0, %eax
je 0x359e
movl $0x7c, %edi
leaq 0x3179(%rip), %rsi      # 0x6702
leaq 0x2fc9(%rip), %rdx      # 0x6559
leaq 0x2e8b(%rip), %rcx      # 0x6422
movb $0x0, %al
callq 0x4590
jmp 0x35a0
jmp 0x35dc
movl 0x4c08(%rip), %eax      # 0x81b0
andl $0x1, %eax
cmpl $0x0, %eax
je 0x35be
movl $0x2, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5090
movl 0x4bec(%rip), %eax      # 0x81b0
andl $0x2, %eax
cmpl $0x0, %eax
je 0x35da
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5090
jmp 0x35dc
movl 0x4bce(%rip), %eax      # 0x81b0
andl $0x4, %eax
cmpl $0x0, %eax
je 0x35f8
movl $0xf, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x5090
movq -0x8(%rbp), %rax
cmpl $0x4, 0x34(%rax)
jne 0x363f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x3624
movl -0x24(%rbp), %ecx
andl $0x4c, %ecx
movq -0x20(%rbp), %rax
orl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x2d20
movl 0x4b7a(%rip), %edi      # 0x81b4
callq 0x2080
movb $0x0, 0x73db(%rip)      # 0xaa21
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
leaq 0xd3b(%rip), %rsi       # 0x4390
callq 0x4220
testb $0x1, 0x73c0(%rip)      # 0xaa21
je 0x36ee
movl $0x0, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x2c(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x368e
jmp 0x3683
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x366e
movl -0x2c(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x3e60
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
leaq 0x2eb4(%rip), %rcx      # 0x6563
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
addq $0x8, %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
shlq $0x3, %rdx
callq 0x21f0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x4e30
jmp 0x3722
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
leaq 0xb13(%rip), %rsi       # 0x4210
callq 0x4220
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x4e30
jmp 0x3724
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)