// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0x8000, %edi           # imm = 0x8000
callq 0x932c
movzbl %al, %r15d
incl %r15d
pushq $0x1
popq %r12
leaq 0x263e9(%rip), %r13     # 0x2d88c
leaq 0x267a6(%rip), %rdx     # 0x2dc50
leaq 0x263c3(%rip), %rbx     # 0x2d874
leaq 0x269ac(%rip), %rbp     # 0x2de64
testl %r15d, %r15d
jle 0x7dbc
movq %rdx, %r14
movl %r12d, %edi
callq 0x89ea
movl %r12d, %edi
callq 0xc377
cmpb $0x0, (%r13)
jne 0x74e5
leaq 0x263ac(%rip), %rax     # 0x2d88e
movb $0x0, (%rax)
leaq 0x26370(%rip), %rax     # 0x2d85c
movl (%rax), %eax
leaq 0x22df3(%rip), %rcx     # 0x2a2e8
movl %eax, (%rcx)
leaq 0x294d2(%rip), %rax     # 0x309d0
movq (%rax), %rdi
movl 0x50(%r14), %edx
movl 0x54(%r14), %esi
callq 0x6470
cmpb $0x0, (%r13)
jne 0x7529
cmpl $0x0, (%rbx)
jne 0x7529
leaq 0x294af(%rip), %rax     # 0x309d0
movq (%rax), %rdi
callq 0x6200
movb $0x0, (%rbp)
leaq 0x22dc9(%rip), %rax     # 0x2a2fd
movb $0x1, (%rax)
leaq 0x2634f(%rip), %rax     # 0x2d88d
cmpb $0x1, (%rax)
jne 0x754d
leaq 0x26346(%rip), %rax     # 0x2d890
movb $0x1, (%rax)
movq %r14, %rdx
movl 0x88(%r14), %eax
testl %eax, %eax
jle 0x7583
leal -0x1(%rax), %ecx
movl %ecx, 0x88(%rdx)
cmpl $0x1, %eax
jne 0x7aaf
leaq 0x15de8(%rip), %rdi     # 0x1d35c
xorl %eax, %eax
callq 0xb178
movq %r14, %rdx
jmp 0x7aaf
andl $0x0, 0x88(%rdx)
cmpb $0x1, (%r13)
jne 0x759d
leaq 0x268cd(%rip), %rax     # 0x2de65
movb (%rax), %bpl
jmp 0x75e6
cmpl $0x0, (%rbx)
je 0x75ab
movb 0x26037(%rip), %bpl     # 0x2d5e0
jmp 0x75d8
xorl %eax, %eax
callq 0xb447
movl %eax, %ebp
leaq 0x262a5(%rip), %rax     # 0x2d860
cmpl $0x0, (%rax)
je 0x75d5
cmpb $0x0, (%r13)
jne 0x75d5
leaq 0x1a3bb(%rip), %rdi     # 0x21989
xorl %eax, %eax
callq 0xb178
movq %r14, %rdx
movl 0x88(%rdx), %eax
testl %eax, %eax
jg 0x755b
movl %r12d, %r13d
callq 0x6590
movq %rax, %r12
movq (%rax), %rax
movsbq %bpl, %rcx
movzwl (%rax,%rcx,2), %eax
btl $0xb, %eax
jae 0x7662
andl $0x0, (%rbx)
movb $0x1, 0x25fd6(%rip)     # 0x2d5e2
btl $0xb, %eax
jae 0x7637
movsbl %bpl, %eax
imull $0xa, (%rbx), %ecx
addl %ecx, %eax
addl $-0x30, %eax
movl %eax, (%rbx)
xorl %eax, %eax
callq 0xb447
movl %eax, %ebp
movq (%r12), %rax
movsbq %bpl, %rcx
movzwl (%rax,%rcx,2), %eax
jmp 0x760c
movb %bpl, 0x25fa2(%rip)     # 0x2d5e0
movzbl %bpl, %eax
leal -0x42(%rax), %ecx
cmpl $0x38, %ecx
ja 0x7736
movabsq $0x18fd751008817c3, %rdx # imm = 0x18FD751008817C3
btq %rcx, %rdx
jae 0x7736
movl %r13d, %r12d
movl %ebp, %eax
andb $-0x2, %al
cmpb $0x66, %al
jne 0x76db
pushq $0x1
popq %rdi
callq 0x933b
testb %al, %al
je 0x768d
leaq 0x2620e(%rip), %rax     # 0x2d88e
movb $0x1, %cl
movb %cl, (%rax)
leaq 0x26204(%rip), %rax     # 0x2d88f
movb %cl, (%rax)
cmpl $0x0, (%rbx)
je 0x76a4
testb $0x1, 0x25f49(%rip)     # 0x2d5e2
jne 0x76a4
movb 0x25f3f(%rip), %bpl     # 0x2d5e1
jmp 0x76ad
xorl %eax, %eax
callq 0xb447
movl %eax, %ebp
movzbl %bpl, %r12d
leal -0x62(%r12), %eax
cmpl $0x17, %eax
ja 0x76d1
movl $0x881741, %ecx         # imm = 0x881741
btl %eax, %ecx
jae 0x76d1
callq 0x6030
movq (%rax), %rax
movb (%rax,%r12,4), %bpl
movb %bpl, 0x25f09(%rip)     # 0x2d5e1
movl %r13d, %r12d
movb $0x0, 0x25f00(%rip)     # 0x2d5e2
movl (%rbx), %eax
testl %eax, %eax
je 0x76f8
leaq 0x2619d(%rip), %rcx     # 0x2d88c
cmpb $0x0, (%rcx)
jne 0x76f8
decl %eax
movl %eax, (%rbx)
movzbl %bpl, %eax
leal -0xc(%rax), %ecx
cmpl $0x6e, %ecx
ja 0x7b08
leaq 0x15989(%rip), %rdx     # 0x1d098
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x22bde(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
leaq 0x292a7(%rip), %rax     # 0x309d0
movq (%rax), %rdi
callq 0xb7b6
jmp 0x7a94
cmpl $0x2e, %eax
movl %r13d, %r12d
je 0x7665
andl $0x0, (%rbx)
jmp 0x7665
pushq $0x1
jmp 0x7a8c
leaq 0x25e68(%rip), %rax     # 0x2d5c0
movq (%rax), %rsi
leaq 0x15c0e(%rip), %rdi     # 0x1d370
xorl %eax, %eax
callq 0xb178
jmp 0x7a94
xorl %edi, %edi
jmp 0x77e2
pushq $-0x1
popq %rdi
pushq $0x1
jmp 0x7a69
pushq $0x79
jmp 0x7a82
leaq 0x22b73(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
movq 0x68(%r14), %rdi
xorl %esi, %esi
callq 0xfaa2
jmp 0x7a94
xorl %eax, %eax
callq 0x11a32
jmp 0x7a94
pushq $-0x1
jmp 0x7a77
xorl %edi, %edi
callq 0x1999e
jmp 0x7a94
leaq 0x22b3a(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
callq 0x8083
jmp 0x7a94
xorl %eax, %eax
callq 0xcbbd
testb %al, %al
je 0x79f2
pushq $0x1
popq %rdi
callq 0x17da2
jmp 0x7a94
pushq $0x68
jmp 0x7a82
leaq 0x22b03(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
xorl %eax, %eax
callq 0xb737
jmp 0x7a94
leaq 0x26044(%rip), %rax     # 0x2d854
cmpl $0x1, (%rax)
jne 0x79f2
xorl %eax, %eax
callq 0x1a44a
jmp 0x79f2
pushq $0x6b
jmp 0x7a82
leaq 0x22aca(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
callq 0x851c
jmp 0x7a94
pushq $0x1
jmp 0x7958
xorl %eax, %eax
callq 0x11550
jmp 0x7a94
leaq 0x22aa3(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
xorl %eax, %eax
callq 0x13235
testl %eax, %eax
je 0x7a94
leaq 0x2915d(%rip), %r13     # 0x309d0
movq (%r13), %rdi
callq 0x6120
movq (%r13), %rdi
callq 0x6200
callq 0x6510
xorl %edi, %edi
xorl %eax, %eax
callq 0xbfec
jmp 0x7a94
pushq $0x6e
jmp 0x7a82
leaq 0x25fae(%rip), %rax     # 0x2d854
cmpl $0x1, (%rax)
jne 0x79f2
xorl %eax, %eax
callq 0x1a343
jmp 0x79f2
leaq 0x22a3b(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
xorl %edi, %edi
callq 0x7e63
jmp 0x7a94
leaq 0x25f7c(%rip), %rax     # 0x2d854
cmpl $0x1, (%rax)
jne 0x79f2
xorl %eax, %eax
callq 0x1a0f8
jmp 0x79f2
xorl %eax, %eax
callq 0x673c
jmp 0x7a94
xorl %eax, %eax
callq 0x669c
jmp 0x7a94
leaq 0x229f1(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
leaq 0x25f77(%rip), %r13     # 0x2d88d
cmpb $0x1, (%r13)
jne 0x7b48
movb $0x0, (%r13)
leaq 0x15a79(%rip), %rdi     # 0x1d3a6
jmp 0x794a
callq 0x85dd
jmp 0x79f2
leaq 0x229bd(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
leaq 0x26626(%rip), %rdi     # 0x2df70
xorl %eax, %eax
callq 0xb178
jmp 0x7a94
pushq $-0x1
popq %rdi
xorl %esi, %esi
jmp 0x7a8f
pushq $0x6c
jmp 0x7a82
xorl %eax, %eax
leaq 0x25f1e(%rip), %rcx     # 0x2d88e
movb %al, (%rcx)
andl $0x0, (%rbx)
leaq 0x22981(%rip), %rcx     # 0x2a2fd
movb %al, (%rcx)
jmp 0x7a94
xorl %eax, %eax
callq 0xc164
testb %al, %al
je 0x7a94
xorl %eax, %eax
callq 0x8b60
jmp 0x79f2
leaq 0x2295b(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
xorl %eax, %eax
callq 0xfc2a
jmp 0x7a94
leaq 0x22945(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
callq 0x856e
jmp 0x7a94
xorl %eax, %eax
callq 0x10778
jmp 0x7a94
xorl %eax, %eax
callq 0xcbbd
testb %al, %al
je 0x79f2
leaq 0x28a71(%rip), %rax     # 0x30454
movl (%rax), %esi
movl 0x4(%rax), %edi
callq 0x1ab1c
jmp 0x7a94
leaq 0x22904(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
jmp 0x7a94
xorl %eax, %eax
callq 0x13878
jmp 0x7a94
xorl %eax, %eax
callq 0xc9b3
jmp 0x7a94
xorl %eax, %eax
callq 0xf218
jmp 0x7a94
pushq $0x75
jmp 0x7a82
leaq 0x228d3(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
callq 0x8358
jmp 0x7a94
xorl %eax, %eax
callq 0xc164
testb %al, %al
je 0x7a94
movl 0x50(%r14), %edx
movl 0x54(%r14), %esi
leaq 0x28a0e(%rip), %rax     # 0x3045c
movl (%rax), %r8d
movl 0x4(%rax), %ecx
leaq 0x1592d(%rip), %rdi     # 0x1d388
xorl %eax, %eax
callq 0xb178
jmp 0x7a94
pushq $0x1
popq %rdi
pushq $-0x1
popq %rsi
jmp 0x7a8f
xorl %eax, %eax
callq 0xe573
jmp 0x7a94
pushq $0x1
popq %rsi
xorl %edi, %edi
jmp 0x7a8f
pushq $0x62
jmp 0x7a82
pushq $0x6a
popq %rdi
callq 0xd53c
jmp 0x7a94
pushq $-0x1
popq %rdi
movl %edi, %esi
callq 0xd55b
leaq 0x25df1(%rip), %r13     # 0x2d88c
cmpb $0x0, (%r13)
movq %r14, %rdx
jne 0x7aaf
leaq 0x25de2(%rip), %rax     # 0x2d88e
movb $0x0, (%rax)
leaq 0x263ae(%rip), %rbp     # 0x2de64
movb (%rbp), %al
testb %al, %al
je 0x7ad4
leaq 0x25d90(%rip), %rcx     # 0x2d854
cmpl $0x1, (%rcx)
je 0x7ad4
movsbl %al, %edi
callq 0xfbcb
movq %r14, %rdx
decl %r15d
cmpb $0x0, (%r13)
jne 0x74b8
leaq 0x25da5(%rip), %rax     # 0x2d88e
movb $0x0, (%rax)
jmp 0x74b8
callq 0x8761
jmp 0x7a94
callq 0x818a
jmp 0x7a94
xorl %eax, %eax
callq 0x1b11d
jmp 0x7a94
movsbl %bpl, %edi
leaq 0x227ea(%rip), %rcx     # 0x2a2fd
movb $0x0, (%rcx)
leaq 0x25d70(%rip), %rcx     # 0x2d88d
cmpb $0x1, (%rcx)
jne 0x7b9a
leal -0x1(%rax), %ecx
cmpl $0x17, %ecx
ja 0x7b80
leaq 0x15723(%rip), %rdx     # 0x1d254
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
leaq 0x2279f(%rip), %rax     # 0x2a2e0
incl (%rax)
jmp 0x7bd1
xorl %eax, %eax
callq 0x1bae9
movb %al, (%r13)
testb %al, %al
je 0x7b74
leaq 0x1585c(%rip), %rdi     # 0x1d3ba
xorl %eax, %eax
callq 0xb178
leaq 0x25d24(%rip), %rax     # 0x2d890
movb $0x1, (%rax)
jmp 0x7a94
leaq 0x15856(%rip), %rdi     # 0x1d3d1
jmp 0x794a
cmpl $0x4d, %eax
je 0x7ced
cmpl $0x43, %eax
jne 0x7b9a
xorl %edi, %edi
callq 0x1b26b
jmp 0x7a94
callq 0x6400
leaq 0x227ca(%rip), %rdi     # 0x2a370
movq %rax, %rsi
xorl %eax, %eax
callq 0xb178
andl $0x0, (%rbx)
jmp 0x7a94
leaq 0x22721(%rip), %rax     # 0x2a2e0
movl (%rax), %eax
cmpl $0x2, %eax
jl 0x7bd1
decl %eax
leaq 0x22711(%rip), %rcx     # 0x2a2e0
movl %eax, (%rcx)
xorl %edi, %edi
callq 0xeb48
jmp 0x7a94
leaq 0x1580f(%rip), %rdi     # 0x1d3f3
pushq $0x2f
popq %rsi
callq 0xfd08
testq %rax, %rax
je 0x7a94
movq 0x10(%rax), %rax
movl $0x2710, 0x34(%rax)     # imm = 0x2710
leaq 0x19d82(%rip), %rdi     # 0x21989
jmp 0x794a
leaq 0x25c25(%rip), %rax     # 0x2d838
movq (%rax), %rdi
movl %r12d, %esi
jmp 0x7793
xorl %eax, %eax
callq 0x106d5
jmp 0x7a94
leaq 0x226bf(%rip), %rax     # 0x2a2f0
movl (%rax), %esi
leaq 0x1579d(%rip), %rdi     # 0x1d3d7
xorl %eax, %eax
callq 0xb178
jmp 0x7a94
xorl %eax, %eax
callq 0x9010
jmp 0x7a94
xorl %edi, %edi
callq 0x1b194
jmp 0x7a94
leaq 0x2273b(%rip), %rax     # 0x2a3a0
movq (%rax), %rdi
movq %r14, %rsi
callq 0x1b91f
jmp 0x7a94
leaq 0x260d4(%rip), %rax     # 0x2dd50
movq (%rax), %rax
movslq 0x28(%rax), %rcx
leaq 0x24d96(%rip), %rdx     # 0x2ca20
movq 0x38(%rdx,%rcx,8), %rcx
incq %rcx
movq %rcx, 0x20(%rax)
xorl %eax, %eax
callq 0xaa03
xorl %edi, %edi
pushq $0x29
popq %rsi
pushq $0x6
popq %rdx
callq 0x19c8f
movl %r12d, %esi
movq %rax, %r12
movq 0x10(%rax), %rbp
movabsq $0x300000003, %rax      # imm = 0x300000003
movq %rax, 0x2c(%rbp)
movl $0x2, 0x38(%rbp)
movq %r12, %rdi
callq 0xf7ac
testb %al, %al
je 0x7d3e
leaq 0x25b64(%rip), %rax     # 0x2d840
movq %rbp, (%rax)
jmp 0x7d46
xorl %eax, %eax
callq 0x9241
jmp 0x7a94
leaq 0x2618c(%rip), %r13     # 0x2de80
movb $0x0, (%r13)
leaq 0x156e5(%rip), %rdi     # 0x1d3e5
xorl %eax, %eax
callq 0xb178
leaq 0x28cc2(%rip), %rax     # 0x309d0
movq (%rax), %rsi
movq %r13, %rdi
callq 0xf37e
testl %eax, %eax
jne 0x7a94
leaq 0x26158(%rip), %rdi     # 0x2de80
callq 0x6490
cmpl $0xc8, %eax
jl 0x7d9d
addl $0xffffff39, %eax       # imm = 0xFFFFFF39
pushq $0x2
popq %rdi
jmp 0x7dae
movq %r12, %rdi
callq 0xb857
xorl %edi, %edi
pushq $0x5d
popq %rsi
pushq $0x9
popq %rdx
callq 0x19c8f
movq %rax, %r12
movq 0x10(%rax), %rbp
movabsq $0x2fffffff8, %rax      # imm = 0x2FFFFFFF8
movq %rax, 0x34(%rbp)
movq %r12, %rdi
movl %r13d, %esi
callq 0xf7ac
testb %al, %al
je 0x7d83
leaq 0x25aca(%rip), %rax     # 0x2d848
movq %rbp, (%rax)
jmp 0x7d8b
movq %r12, %rdi
callq 0xb857
leaq 0x25b01(%rip), %rax     # 0x2d893
movb $0x0, (%rax)
movl %r13d, %r12d
jmp 0x7a94
leal -0x63(%rax), %ecx
xorl %edi, %edi
cmpl $0x64, %eax
setge %dil
cmovll %eax, %ecx
movl %ecx, %eax
leaq 0x2252b(%rip), %rcx     # 0x2a2e0
movl %eax, (%rcx)
jmp 0x7bd3
leaq 0x2253a(%rip), %rax     # 0x2a2fd
cmpb $0x1, (%rax)
leaq 0x225d3(%rip), %r13     # 0x2a3a0
jne 0x7e54
xorl %edi, %edi
callq 0xc377
pushq $0x2
popq %rdi
callq 0x89ea
xorl %eax, %eax
callq 0x8b06
movl $0x4000, %edi           # imm = 0x4000
callq 0x932c
testb %al, %al
je 0x7dfe
xorl %eax, %eax
callq 0xc284
leaq 0x25f3b(%rip), %r15     # 0x2dd40
pushq $0x64
popq %rbx
leaq 0x25e41(%rip), %r14     # 0x2dc50
xorl %r12d, %r12d
cmpq $0x2, %r12
je 0x7e54
movq (%r15,%r12,8), %rax
testq %rax, %rax
je 0x7e4f
movl 0x28(%rax), %eax
cmpl $0xb, %eax
je 0x7e35
cmpl $0x3, %eax
jne 0x7e4f
callq 0x818a
jmp 0x7e4f
movl %ebx, %edi
xorl %eax, %eax
callq 0xc004
cmpl $0x4, %eax
jg 0x7e4f
movq (%r13), %rdi
movq %r14, %rsi
callq 0x1b91f
incq %r12
jmp 0x7e12
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq