// File: /workspace/github_c_makefile_star2_O0/ajpaulson[P]srogue11/command.c
// Function: command
void command()
{
	char ch;
	int ntimes = 1;		/* Number of player moves */
	static char countch, direction, newcount = FALSE;

	if (pl_on(ISHASTE))
		ntimes++;
	/*
	 * Let the daemons start up
	 */
	while (ntimes-- > 0) {
		do_daemons(BEFORE);
		look(TRUE);
		if (!running)
			door_stop = FALSE;
		lastscore = purse;
		wmove(cw, hero.y, hero.x);
		if (!(running || count))
			draw(cw);			/* Draw screen */
		take = 0;
		after = TRUE;
		/*
		 * Read command or continue run
		 */
		if (wizard)
			waswizard = TRUE;
		if (player.t_nocmd <= 0) {
			player.t_nocmd = 0;
			if (running)
				ch = runch;
			else if (count)
				ch = countch;
			else {
				ch = readchar();
				if (mpos != 0 && !running) /* Erase message if its there */
					msg("");
			}
		}
		else
			ch = '.';
		if (player.t_nocmd > 0) {
			if (--player.t_nocmd <= 0)
				msg("You can move again.");	
		}
		else {
			/*
			 * check for prefixes
			 */
			if (isdigit(ch)) {
				count = 0;
				newcount = TRUE;
				while (isdigit(ch)) {
					count = count * 10 + (ch - '0');
					ch = readchar();
				}
				countch = ch;
				/*
				 * turn off count for commands which don't make sense
				 * to repeat
				 */
				switch (ch) {
					case 'h': case 'j': case 'k': case 'l':
					case 'y': case 'u': case 'b': case 'n':
					case 'H': case 'J': case 'K': case 'L':
					case 'Y': case 'U': case 'B': case 'N':
					case 'q': case 'r': case 's': case 'f':
					case 't': case 'C': case 'I': case '.':
					case 'z': case 'p':
						break;
					default:
						count = 0;
				}
			}
			switch (ch) {
			case 'f':
			case 'g':
				if (pl_off(ISBLIND)) {
					door_stop = TRUE;
					firstmove = TRUE;
				}
				if (count && !newcount)
					ch = direction;
				else
					ch = readchar();
				switch (ch) {
					case 'h': case 'j': case 'k': case 'l':
					case 'y': case 'u': case 'b': case 'n':
						ch = toupper(ch);
				}
				direction = ch;
			}
			newcount = FALSE;
			/*
			 * execute a command
			 */
			if (count && !running)
				count--;
			switch (ch) {
				case '!' : shell(); after = FALSE;
				when 'h' : do_move(0, -1);
				when 'j' : do_move(1, 0);
				when 'k' : do_move(-1, 0);
				when 'l' : do_move(0, 1);
				when 'y' : do_move(-1, -1);
				when 'u' : do_move(-1, 1);
				when 'b' : do_move(1, -1);
				when 'n' : do_move(1, 1);
				when 'H' : do_run('h');
				when 'J' : do_run('j');
				when 'K' : do_run('k');
				when 'L' : do_run('l');
				when 'Y' : do_run('y');
				when 'U' : do_run('u');
				when 'B' : do_run('b');
				when 'N' : do_run('n');
				when 't':
					if (!get_dir())
						after = FALSE;
					else
						missile(delta.y, delta.x);
				when 'Q' : after = FALSE; quit(-1);
				when 'i' : after = FALSE; inventory(pack, 0);
				when 'I' : after = FALSE; picky_inven();
				when 'd' : drop(NULL);
				when 'q' : quaff();
				when 'r' : read_scroll();
				when 'e' : eat();
				when 'w' : wield();
				when 'W' : wear();
				when 'T' : take_off();
				when 'P' : ring_on();
				when 'R' : ring_off();
				when 'O' : option();
				when 'c' : call();
				when '>' : after = FALSE; d_level();
				when '<' : after = FALSE; u_level();
				when '?' : after = FALSE; help();
				when '/' : after = FALSE; identify(0);
				when 's' : search();
				when 'z' : do_zap(FALSE);
				when 'p':
					if (get_dir())
						do_zap(TRUE);
					else
						after = FALSE;
				when 'v': msg("Super Rogue version %s.",release);
				when 'D': dip_it();
				when CTRL('L') : after = FALSE; restscr(cw);
				when CTRL('R') : after = FALSE; msg(huh);
				when 'a': after = FALSE; dispmax();
				when '@' : if (author())
					msg("Hero @ %d,%d : Stairs @ %d,%d",hero.y,hero.x,stairs.y,stairs.x);
				when 'S' : 
					after = FALSE;
					if (save_game()) {
						wclear(cw);
						draw(cw);
						endwin();
						byebye(0);
					}
				when '.' : ;				/* Rest command */
				when ' ' : after = FALSE;	/* do nothing */
				when '=' :
					if (author()) {
						activity();
						after = FALSE;
					}
				when CTRL('P') :
					after = FALSE;
					if (wizard) {
						wizard = FALSE;
						msg("Not wizard any more");
					}
					else {
						wizard = passwd();
						if (wizard) {
							msg("Welcome back, Bob!!!!!");
							waswizard = TRUE;
						}
						else
							msg("Sorry");
					}
				when ESCAPE :	/* Escape */
					door_stop = FALSE;
					count = 0;
					after = FALSE;
				when '#':
					if (levtype == POSTLEV)		/* buy something */
						buy_it();
					after = FALSE;
				when '$':
					if (levtype == POSTLEV)		/* price something */
						price_it();
					after = FALSE;
				when '%':
					if (levtype == POSTLEV)		/* sell something */
						sell_it();
					after = FALSE;
				otherwise :
					after = FALSE;
					if (wizard) switch (ch) {
					case CTRL('A') : ;
					when 'C'     :	create_obj(FALSE);
					when CTRL('I') :	inventory(lvl_obj, 1);
					when CTRL('W') :	whatis(NULL);
					when CTRL('D') :	level++; new_level(NORMLEV);
					when CTRL('U') :	if (level > 1) level--; new_level(NORMLEV);
					when CTRL('F') :	displevl();
					when CTRL('X') :	dispmons();
					when CTRL('T') :	teleport(rndspot,&player);
					when CTRL('E') :	msg("food left: %d", food_left);
					when CTRL('O') :	add_pass();
					when 'M' : {
						int tlev, whichlev;
						prbuf[0] = '\0';
						msg("Which level? ");
						if (get_str(prbuf,cw) == NORM) {
							whichlev = NORMLEV;
							tlev = atoi(prbuf);
							if (tlev < 1)
								level = 1;
							if (tlev >= 200) {
								tlev -= 199;
								whichlev = MAZELEV;
							}
							else if (tlev >= 100) {
								tlev -= 99;
								whichlev = POSTLEV;
							}
							level = tlev;
							new_level(whichlev);
						}
					}
					when CTRL('N') : {
						struct linked_list *item;

						item = get_item("charge", STICK);
						if (item != NULL) {
							(OBJPTR(item))->o_charges = 10000;
							msg("");
						}
					}
					when CTRL('H') : {
						int i;
						struct linked_list *item;
						struct object *obj;

						him->s_exp = e_levels[him->s_lvl + 7] + 1;
						check_level();
						/*
						 * Give the rogue a very good sword
						 */
						item = new_thing(FALSE, WEAPON, TWOSWORD);
						obj = OBJPTR(item);
						obj->o_hplus = 3;
						obj->o_dplus = 3;
						obj->o_flags = ISKNOW;
						i = add_pack(item, TRUE);
						if (i)
							cur_weapon = obj;
						else
							discard(item);
						/*
						 * And his suit of armor
						 */
						item = new_thing(FALSE, ARMOR, PLATEARMOR);
						obj = OBJPTR(item);
						obj->o_ac = -8;
						obj->o_flags = ISKNOW;
						i = add_pack(item, TRUE);
						if (i)
							cur_armor = obj;
						else
							discard(item);
						nochange = FALSE;
					}
					otherwise:
						msg(illegal, unctrl(ch));
						count = 0;
				}
				else {
					msg(illegal, unctrl(ch));
					count = 0;
				}
			}
			/*
			 * turn off flags if no longer needed
			 */
			if (!running)
				door_stop = FALSE;
		}
		/*
		 * If he ran into something to take, let the
		 * hero pick it up if not in a trading post.
		 */
		if (take != 0 && levtype != POSTLEV)
			pick_up(take);
		if (!running)
			door_stop = FALSE;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl $0x1, -0x8(%rbp)
movl $0x8000, %edi           # imm = 0x8000
callq 0xaa60
testb $0x1, %al
jne 0x7d1f
jmp 0x7d28
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7d2a
movl -0x8(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x8(%rbp)
cmpl $0x0, %eax
jle 0x896e
movl $0x1, %edi
callq 0x9bb0
movl $0x1, %edi
callq 0xf540
leaq 0x2efb3(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x7d68
leaq 0x2efa9(%rip), %rax     # 0x36d0e
movb $0x0, (%rax)
leaq 0x2ef6d(%rip), %rax     # 0x36cdc
movl (%rax), %ecx
leaq 0x2b580(%rip), %rax     # 0x332f8
movl %ecx, (%rax)
leaq 0x320cf(%rip), %rax     # 0x39e50
movq (%rax), %rdi
leaq 0x2f345(%rip), %rax     # 0x370d0
movl 0x54(%rax), %esi
leaq 0x2f33b(%rip), %rax     # 0x370d0
movl 0x50(%rax), %edx
callq 0x6490
leaq 0x2ef68(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x7dc4
leaq 0x2ef44(%rip), %rax     # 0x36cf4
cmpl $0x0, (%rax)
jne 0x7dc4
leaq 0x32094(%rip), %rax     # 0x39e50
movq (%rax), %rdi
callq 0x61f0
leaq 0x2f519(%rip), %rax     # 0x372e4
movb $0x0, (%rax)
leaq 0x2b538(%rip), %rax     # 0x3330d
movb $0x1, (%rax)
leaq 0x2ef2e(%rip), %rax     # 0x36d0d
testb $0x1, (%rax)
je 0x7dee
leaq 0x2ef25(%rip), %rax     # 0x36d10
movb $0x1, (%rax)
leaq 0x2f2db(%rip), %rax     # 0x370d0
cmpl $0x0, 0x88(%rax)
jg 0x7e76
leaq 0x2f2cb(%rip), %rax     # 0x370d0
movl $0x0, 0x88(%rax)
leaq 0x2eef6(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
je 0x7e29
leaq 0x2f4c3(%rip), %rax     # 0x372e5
movb (%rax), %al
movb %al, -0x1(%rbp)
jmp 0x7e74
leaq 0x2eec4(%rip), %rax     # 0x36cf4
cmpl $0x0, (%rax)
je 0x7e40
movb 0x2ec31(%rip), %al      # 0x36a6c
movb %al, -0x1(%rbp)
jmp 0x7e72
movb $0x0, %al
callq 0xdce0
movb %al, -0x1(%rbp)
leaq 0x2ee8f(%rip), %rax     # 0x36ce0
cmpl $0x0, (%rax)
je 0x7e70
leaq 0x2eeaf(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x7e70
leaq 0x26446(%rip), %rdi     # 0x2e2af
movb $0x0, %al
callq 0xd8f0
jmp 0x7e72
jmp 0x7e74
jmp 0x7e7a
movb $0x2e, -0x1(%rbp)
leaq 0x2f24f(%rip), %rax     # 0x370d0
cmpl $0x0, 0x88(%rax)
jle 0x7ebf
leaq 0x2f23f(%rip), %rax     # 0x370d0
movl 0x88(%rax), %eax
addl $-0x1, %eax
leaq 0x2f22f(%rip), %rcx     # 0x370d0
movl %eax, 0x88(%rcx)
cmpl $0x0, %eax
jg 0x7eba
leaq 0x21801(%rip), %rdi     # 0x296b4
movb $0x0, %al
callq 0xd8f0
jmp 0x8929
callq 0x65b0
movq (%rax), %rax
movsbl -0x1(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x7f79
leaq 0x2ee0d(%rip), %rax     # 0x36cf4
movl $0x0, (%rax)
movb $0x1, 0x2eb7a(%rip)     # 0x36a6e
callq 0x65b0
movq (%rax), %rax
movsbl -0x1(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x7f39
leaq 0x2eddc(%rip), %rax     # 0x36cf4
imull $0xa, (%rax), %ecx
movsbl -0x1(%rbp), %eax
subl $0x30, %eax
addl %eax, %ecx
leaq 0x2edc9(%rip), %rax     # 0x36cf4
movl %ecx, (%rax)
movb $0x0, %al
callq 0xdce0
movb %al, -0x1(%rbp)
jmp 0x7ef4
movb -0x1(%rbp), %al
movb %al, 0x2eb2a(%rip)      # 0x36a6c
movsbl -0x1(%rbp), %eax
addl $-0x2e, %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x4c, %eax
ja 0x7f6a
movq -0x40(%rbp), %rax
leaq 0x21139(%rip), %rcx     # 0x29098
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x7f77
leaq 0x2ed83(%rip), %rax     # 0x36cf4
movl $0x0, (%rax)
jmp 0x7f79
movsbl -0x1(%rbp), %eax
addl $-0x66, %eax
subl $0x1, %eax
ja 0x8031
jmp 0x7f8b
movl $0x1, %edi
callq 0xaa90
testb $0x1, %al
jne 0x7f9b
jmp 0x7faf
leaq 0x2ed6c(%rip), %rax     # 0x36d0e
movb $0x1, (%rax)
leaq 0x2ed63(%rip), %rax     # 0x36d0f
movb $0x1, (%rax)
leaq 0x2ed3e(%rip), %rax     # 0x36cf4
cmpl $0x0, (%rax)
je 0x7fcf
cmpb $0x0, 0x2eaac(%rip)     # 0x36a6e
jne 0x7fcf
movb 0x2eaa3(%rip), %al      # 0x36a6d
movb %al, -0x1(%rbp)
jmp 0x7fd9
movb $0x0, %al
callq 0xdce0
movb %al, -0x1(%rbp)
movsbl -0x1(%rbp), %eax
movl %eax, -0x44(%rbp)
subl $0x62, %eax
je 0x801c
jmp 0x7fe7
movl -0x44(%rbp), %eax
subl $0x68, %eax
je 0x801c
jmp 0x7ff1
movl -0x44(%rbp), %eax
addl $-0x6a, %eax
subl $0x3, %eax
jb 0x801c
jmp 0x7ffe
movl -0x44(%rbp), %eax
subl $0x6e, %eax
je 0x801c
jmp 0x8008
movl -0x44(%rbp), %eax
subl $0x75, %eax
je 0x801c
jmp 0x8012
movl -0x44(%rbp), %eax
subl $0x79, %eax
jne 0x8028
jmp 0x801c
movsbl -0x1(%rbp), %edi
callq 0x60e0
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
movb %al, 0x2ea3c(%rip)      # 0x36a6d
movb $0x0, 0x2ea36(%rip)     # 0x36a6e
leaq 0x2ecb5(%rip), %rax     # 0x36cf4
cmpl $0x0, (%rax)
je 0x8065
leaq 0x2ecc1(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x8065
leaq 0x2ec9d(%rip), %rax     # 0x36cf4
movl (%rax), %ecx
addl $-0x1, %ecx
leaq 0x2ec91(%rip), %rax     # 0x36cf4
movl %ecx, (%rax)
movsbl -0x1(%rbp), %eax
addl $-0xc, %eax
movl %eax, %ecx
movq %rcx, -0x50(%rbp)
subl $0x6e, %eax
ja 0x858d
movq -0x50(%rbp), %rax
leaq 0x21146(%rip), %rcx     # 0x291cc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x94f0
leaq 0x2b272(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
xorl %edi, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11070
jmp 0x8911
movl $0x1, %edi
xorl %esi, %esi
callq 0x11070
jmp 0x8911
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
xorl %esi, %esi
callq 0x11070
jmp 0x8911
xorl %edi, %edi
movl $0x1, %esi
callq 0x11070
jmp 0x8911
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl %esi, %edi
callq 0x11070
jmp 0x8911
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0x1, %esi
callq 0x11070
jmp 0x8911
movl $0x1, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11070
jmp 0x8911
movl $0x1, %esi
movl %esi, %edi
callq 0x11070
jmp 0x8911
movl $0x68, %edi
callq 0x11040
jmp 0x8911
movl $0x6a, %edi
callq 0x11040
jmp 0x8911
movl $0x6b, %edi
callq 0x11040
jmp 0x8911
movl $0x6c, %edi
callq 0x11040
jmp 0x8911
movl $0x79, %edi
callq 0x11040
jmp 0x8911
movl $0x75, %edi
callq 0x11040
jmp 0x8911
movl $0x62, %edi
callq 0x11040
jmp 0x8911
movl $0x6e, %edi
callq 0x11040
jmp 0x8911
movb $0x0, %al
callq 0x10040
testb $0x1, %al
jne 0x81c0
leaq 0x2b152(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x81d8
leaq 0x3170d(%rip), %rax     # 0x398d4
movl 0x4(%rax), %edi
leaq 0x31703(%rip), %rax     # 0x398d4
movl (%rax), %esi
callq 0x25760
jmp 0x8911
leaq 0x2b129(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x8cf0
jmp 0x8911
leaq 0x2b110(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
leaq 0x2eec9(%rip), %rax     # 0x370d0
movq 0x68(%rax), %rdi
xorl %esi, %esi
callq 0x14800
jmp 0x8911
leaq 0x2b0ef(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
movb $0x0, %al
callq 0x14a30
jmp 0x8911
xorl %eax, %eax
movl %eax, %edi
callq 0x23c10
jmp 0x8911
movb $0x0, %al
callq 0x15b10
jmp 0x8911
movb $0x0, %al
callq 0x1a640
jmp 0x8911
movb $0x0, %al
callq 0xfd20
jmp 0x8911
movb $0x0, %al
callq 0x26080
jmp 0x8911
movb $0x0, %al
callq 0x66c0
jmp 0x8911
movb $0x0, %al
callq 0x67c0
jmp 0x8911
movb $0x0, %al
callq 0x17180
jmp 0x8911
movb $0x0, %al
callq 0x178f0
jmp 0x8911
movb $0x0, %al
callq 0x139a0
jmp 0x8911
callq 0x96b0
jmp 0x8911
leaq 0x2b055(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
callq 0x9390
jmp 0x8911
leaq 0x2b041(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
callq 0x9420
jmp 0x8911
leaq 0x2b02d(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
callq 0x90f0
jmp 0x8911
leaq 0x2b019(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
xorl %edi, %edi
callq 0x8a50
jmp 0x8911
callq 0x8e60
jmp 0x8911
xorl %edi, %edi
callq 0x21350
jmp 0x8911
movb $0x0, %al
callq 0x10040
testb $0x1, %al
jne 0x8326
jmp 0x8332
movl $0x1, %edi
callq 0x21350
jmp 0x833c
leaq 0x2afd4(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2e348(%rip), %rax     # 0x36690
movq (%rax), %rsi
leaq 0x21376(%rip), %rdi     # 0x296c8
movb $0x0, %al
callq 0xd8f0
jmp 0x8911
movb $0x0, %al
callq 0x127c0
jmp 0x8911
leaq 0x2af9c(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
leaq 0x31ad5(%rip), %rax     # 0x39e50
movq (%rax), %rdi
callq 0xe2d0
jmp 0x8911
leaq 0x2af7e(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
leaq 0x2f057(%rip), %rdi     # 0x373f0
movb $0x0, %al
callq 0xd8f0
jmp 0x8911
leaq 0x2af61(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
movb $0x0, %al
callq 0xe1d0
jmp 0x8911
movb $0x0, %al
callq 0xf130
testb $0x1, %al
jne 0x83c8
jmp 0x83fe
leaq 0x2ed01(%rip), %rax     # 0x370d0
movl 0x54(%rax), %esi
leaq 0x2ecf7(%rip), %rax     # 0x370d0
movl 0x50(%rax), %edx
leaq 0x314f9(%rip), %rax     # 0x398dc
movl 0x4(%rax), %ecx
leaq 0x314ef(%rip), %rax     # 0x398dc
movl (%rax), %r8d
leaq 0x212e9(%rip), %rdi     # 0x296e0
movb $0x0, %al
callq 0xd8f0
jmp 0x8911
leaq 0x2af03(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
movb $0x0, %al
callq 0x19e00
cmpl $0x0, %eax
je 0x8445
leaq 0x31a30(%rip), %rax     # 0x39e50
movq (%rax), %rdi
callq 0x6110
leaq 0x31a21(%rip), %rax     # 0x39e50
movq (%rax), %rdi
callq 0x61f0
callq 0x6530
xorl %edi, %edi
movb $0x0, %al
callq 0xeef0
jmp 0x8911
jmp 0x8911
leaq 0x2aeb7(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
movb $0x0, %al
callq 0xf130
testb $0x1, %al
jne 0x846b
jmp 0x847c
movb $0x0, %al
callq 0x9dd0
leaq 0x2ae94(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2ae85(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
leaq 0x2e87b(%rip), %rax     # 0x36d0d
testb $0x1, (%rax)
je 0x84b1
leaq 0x2e86f(%rip), %rax     # 0x36d0d
movb $0x0, (%rax)
leaq 0x21256(%rip), %rdi     # 0x296fe
movb $0x0, %al
callq 0xd8f0
jmp 0x84fc
movb $0x0, %al
callq 0x26f00
movb %al, %cl
andb $0x1, %cl
leaq 0x2e849(%rip), %rax     # 0x36d0d
movb %cl, (%rax)
leaq 0x2e840(%rip), %rax     # 0x36d0d
testb $0x1, (%rax)
je 0x84ec
leaq 0x21239(%rip), %rdi     # 0x29712
movb $0x0, %al
callq 0xd8f0
leaq 0x2e829(%rip), %rax     # 0x36d10
movb $0x1, (%rax)
jmp 0x84fa
leaq 0x21236(%rip), %rdi     # 0x29729
movb $0x0, %al
callq 0xd8f0
jmp 0x84fc
jmp 0x8911
leaq 0x2e806(%rip), %rax     # 0x36d0e
movb $0x0, (%rax)
leaq 0x2e7e2(%rip), %rax     # 0x36cf4
movl $0x0, (%rax)
leaq 0x2adee(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2e7a6(%rip), %rax     # 0x36cd4
cmpl $0x1, (%rax)
jne 0x853a
movb $0x0, %al
callq 0x24ac0
leaq 0x2adcc(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2e784(%rip), %rax     # 0x36cd4
cmpl $0x1, (%rax)
jne 0x855c
movb $0x0, %al
callq 0x247a0
leaq 0x2adaa(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2e762(%rip), %rax     # 0x36cd4
cmpl $0x1, (%rax)
jne 0x857e
movb $0x0, %al
callq 0x24c70
leaq 0x2ad88(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
jmp 0x8911
leaq 0x2ad79(%rip), %rax     # 0x3330d
movb $0x0, (%rax)
leaq 0x2e76f(%rip), %rax     # 0x36d0d
testb $0x1, (%rax)
je 0x88e8
movsbl -0x1(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x58(%rbp)
subl $0x4c, %eax
ja 0x88bf
movq -0x58(%rbp), %rax
leaq 0x20dc1(%rip), %rcx     # 0x29388
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x88e6
xorl %edi, %edi
callq 0x26350
jmp 0x88e6
leaq 0x2e6d0(%rip), %rax     # 0x36cb8
movq (%rax), %rdi
movl $0x1, %esi
callq 0x14800
jmp 0x88e6
xorl %eax, %eax
movl %eax, %edi
callq 0x26160
jmp 0x88e6
leaq 0x2ace1(%rip), %rax     # 0x332f0
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x2acd5(%rip), %rax     # 0x332f0
movl %ecx, (%rax)
xorl %edi, %edi
callq 0x13060
jmp 0x88e6
leaq 0x2acc0(%rip), %rax     # 0x332f0
cmpl $0x1, (%rax)
jle 0x864a
leaq 0x2acb4(%rip), %rax     # 0x332f0
movl (%rax), %ecx
addl $-0x1, %ecx
leaq 0x2aca8(%rip), %rax     # 0x332f0
movl %ecx, (%rax)
xorl %edi, %edi
callq 0x13060
jmp 0x88e6
movb $0x0, %al
callq 0xa580
jmp 0x88e6
movb $0x0, %al
callq 0xa890
jmp 0x88e6
leaq 0x2ad3b(%rip), %rax     # 0x333b0
movq (%rax), %rdi
leaq 0x2ea51(%rip), %rsi     # 0x370d0
callq 0x26c70
jmp 0x88e6
leaq 0x2ac70(%rip), %rax     # 0x33300
movl (%rax), %esi
leaq 0x21096(%rip), %rdi     # 0x2972f
movb $0x0, %al
callq 0xd8f0
jmp 0x88e6
movb $0x0, %al
callq 0x15a30
jmp 0x88e6
leaq 0x2ec48(%rip), %rax     # 0x37300
movb $0x0, (%rax)
leaq 0x2107b(%rip), %rdi     # 0x2973d
movb $0x0, %al
callq 0xd8f0
leaq 0x31780(%rip), %rax     # 0x39e50
movq (%rax), %rsi
leaq 0x2ec26(%rip), %rdi     # 0x37300
callq 0x13c10
cmpl $0x0, %eax
jne 0x8756
movl $0x0, -0x10(%rbp)
leaq 0x2ec0e(%rip), %rdi     # 0x37300
callq 0x64b0
movl %eax, -0xc(%rbp)
cmpl $0x1, -0xc(%rbp)
jge 0x870d
leaq 0x2abe9(%rip), %rax     # 0x332f0
movl $0x1, (%rax)
cmpl $0xc8, -0xc(%rbp)
jl 0x872a
movl -0xc(%rbp), %eax
subl $0xc7, %eax
movl %eax, -0xc(%rbp)
movl $0x2, -0x10(%rbp)
jmp 0x8742
cmpl $0x64, -0xc(%rbp)
jl 0x8740
movl -0xc(%rbp), %eax
subl $0x63, %eax
movl %eax, -0xc(%rbp)
movl $0x1, -0x10(%rbp)
jmp 0x8742
movl -0xc(%rbp), %ecx
leaq 0x2aba4(%rip), %rax     # 0x332f0
movl %ecx, (%rax)
movl -0x10(%rbp), %edi
callq 0x13060
jmp 0x88e6
leaq 0x20fe9(%rip), %rdi     # 0x2974b
movl $0x2f, %esi
callq 0x14b90
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x8794
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl $0x2710, 0x34(%rax)     # imm = 0x2710
leaq 0x25b22(%rip), %rdi     # 0x2e2af
movb $0x0, %al
callq 0xd8f0
jmp 0x88e6
leaq 0x2ea30(%rip), %rax     # 0x371d0
movq (%rax), %rax
movl 0x28(%rax), %eax
addl $0x7, %eax
movslq %eax, %rcx
leaq 0x2d27d(%rip), %rax     # 0x35a30
movq (%rax,%rcx,8), %rcx
addq $0x1, %rcx
leaq 0x2ea0e(%rip), %rax     # 0x371d0
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movb $0x0, %al
callq 0xcbe0
xorl %edi, %edi
movl $0x29, %esi
movl $0x6, %edx
callq 0x24020
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movl $0x3, 0x2c(%rax)
movq -0x30(%rbp), %rax
movl $0x3, 0x30(%rax)
movq -0x30(%rbp), %rax
movl $0x2, 0x38(%rax)
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x14280
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x883e
movq -0x30(%rbp), %rcx
leaq 0x2e487(%rip), %rax     # 0x36cc0
movq %rcx, (%rax)
jmp 0x8847
movq -0x28(%rbp), %rdi
callq 0xe490
xorl %edi, %edi
movl $0x5d, %esi
movl $0x9, %edx
callq 0x24020
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movl $0xfffffff8, 0x34(%rax) # imm = 0xFFFFFFF8
movq -0x30(%rbp), %rax
movl $0x2, 0x38(%rax)
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x14280
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x88aa
movq -0x30(%rbp), %rcx
leaq 0x2e423(%rip), %rax     # 0x36cc8
movq %rcx, (%rax)
jmp 0x88b3
movq -0x28(%rbp), %rdi
callq 0xe490
leaq 0x2e459(%rip), %rax     # 0x36d13
movb $0x0, (%rax)
jmp 0x88e6
movsbl -0x1(%rbp), %edi
callq 0x6420
movq %rax, %rsi
leaq 0x2aaae(%rip), %rdi     # 0x33380
movb $0x0, %al
callq 0xd8f0
leaq 0x2e414(%rip), %rax     # 0x36cf4
movl $0x0, (%rax)
jmp 0x890f
movsbl -0x1(%rbp), %edi
callq 0x6420
movq %rax, %rsi
leaq 0x2aa85(%rip), %rdi     # 0x33380
movb $0x0, %al
callq 0xd8f0
leaq 0x2e3eb(%rip), %rax     # 0x36cf4
movl $0x0, (%rax)
jmp 0x8911
leaq 0x2e3f4(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x8927
leaq 0x2e3ea(%rip), %rax     # 0x36d0e
movb $0x0, (%rax)
jmp 0x8929
leaq 0x2e9b4(%rip), %rax     # 0x372e4
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x8953
leaq 0x2e395(%rip), %rax     # 0x36cd4
cmpl $0x1, (%rax)
je 0x8953
leaq 0x2e999(%rip), %rax     # 0x372e4
movsbl (%rax), %edi
callq 0x14990
leaq 0x2e3b2(%rip), %rax     # 0x36d0c
testb $0x1, (%rax)
jne 0x8969
leaq 0x2e3a8(%rip), %rax     # 0x36d0e
movb $0x0, (%rax)
jmp 0x7d2a
leaq 0x2a998(%rip), %rax     # 0x3330d
testb $0x1, (%rax)
je 0x8a40
xorl %edi, %edi
callq 0xf540
movl $0x2, %edi
callq 0x9bb0
movb $0x0, %al
callq 0x9d40
movl $0x4000, %edi           # imm = 0x4000
callq 0xaa60
testb $0x1, %al
jne 0x89a6
jmp 0x89ad
movb $0x0, %al
callq 0xf360
movl $0x0, -0x34(%rbp)
cmpl $0x1, -0x34(%rbp)
jg 0x8a3e
movslq -0x34(%rbp), %rcx
leaq 0x2e7f7(%rip), %rax     # 0x371c0
cmpq $0x0, (%rax,%rcx,8)
je 0x8a2e
movslq -0x34(%rbp), %rcx
leaq 0x2e7e5(%rip), %rax     # 0x371c0
movq (%rax,%rcx,8), %rax
cmpl $0x3, 0x28(%rax)
jne 0x89ec
callq 0x8e60
jmp 0x8a2c
movslq -0x34(%rbp), %rcx
leaq 0x2e7c9(%rip), %rax     # 0x371c0
movq (%rax,%rcx,8), %rax
cmpl $0xb, 0x28(%rax)
jne 0x8a2a
movl $0x64, %edi
movb $0x0, %al
callq 0xef20
cmpl $0x5, %eax
jge 0x8a28
leaq 0x2a997(%rip), %rax     # 0x333b0
movq (%rax), %rdi
leaq 0x2e6ad(%rip), %rsi     # 0x370d0
callq 0x26c70
jmp 0x8a2a
jmp 0x8a2c
jmp 0x8a2e
jmp 0x8a30
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x89b4
jmp 0x8a40
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)