// File: /workspace/github_c_makefile_star2_O3/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 0x9513
movzbl %al, %r15d
leaq 0x26358(%rip), %r12     # 0x2d89c
leaq 0x26321(%rip), %rbp     # 0x2d86c
leaq 0x2670e(%rip), %rdx     # 0x2dc60
leaq 0x2632b(%rip), %r14     # 0x2d884
leaq 0x26914(%rip), %r13     # 0x2de74
movq %rdx, %rbx
movl $0x1, %edi
callq 0x8b48
movl $0x1, %edi
callq 0xcae0
cmpb $0x0, (%r12)
jne 0x7588
leaq 0x26319(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
movl (%rbp), %eax
leaq 0x22d66(%rip), %rcx     # 0x2a2f8
movl %eax, (%rcx)
leaq 0x29445(%rip), %rax     # 0x309e0
movq (%rax), %rdi
movl 0x50(%rbx), %edx
movl 0x54(%rbx), %esi
callq 0x6490
cmpb $0x0, (%r12)
jne 0x75c5
cmpl $0x0, (%r14)
jne 0x75c5
leaq 0x29423(%rip), %rax     # 0x309e0
movq (%rax), %rdi
callq 0x6200
movb $0x0, (%r13)
leaq 0x22d3c(%rip), %rax     # 0x2a30d
movb $0x1, (%rax)
leaq 0x262c2(%rip), %rax     # 0x2d89d
cmpb $0x1, (%rax)
jne 0x75ea
leaq 0x262b9(%rip), %rax     # 0x2d8a0
movb $0x1, (%rax)
movq %rbx, %rdx
movl 0x88(%rbx), %eax
testl %eax, %eax
jle 0x761f
leal -0x1(%rax), %ecx
movl %ecx, 0x88(%rdx)
cmpl $0x1, %eax
jne 0x7b8a
leaq 0x17d4c(%rip), %rdi     # 0x1f35c
xorl %eax, %eax
callq 0xb620
movq %rbx, %rdx
jmp 0x7b8a
movl $0x0, 0x88(%rdx)
cmpb $0x1, (%r12)
jne 0x763c
leaq 0x2683e(%rip), %rax     # 0x2de75
movb (%rax), %r13b
jmp 0x7687
cmpl $0x0, (%r14)
je 0x764b
movb 0x25fa7(%rip), %r13b    # 0x2d5f0
jmp 0x7679
xorl %eax, %eax
callq 0xb94c
movl %eax, %r13d
leaq 0x26214(%rip), %rax     # 0x2d870
cmpl $0x0, (%rax)
je 0x7676
cmpb $0x0, (%r12)
jne 0x7676
leaq 0x1c31a(%rip), %rdi     # 0x23989
xorl %eax, %eax
callq 0xb620
movq %rbx, %rdx
movl 0x88(%rdx), %eax
testl %eax, %eax
jg 0x75f7
movq %rbp, %r12
callq 0x65b0
movq %rax, %rbp
movq (%rax), %rax
movsbq %r13b, %rcx
testb $0x8, 0x1(%rax,%rcx,2)
je 0x7705
movl $0x0, (%r14)
movb $0x1, 0x25f44(%rip)     # 0x2d5f2
movsbl %r13b, %eax
movl (%r14), %ecx
leal (%rcx,%rcx,4), %ecx
leal (%rax,%rcx,2), %eax
addl $-0x30, %eax
movl %eax, (%r14)
xorl %eax, %eax
callq 0xb94c
movl %eax, %r13d
movq (%rbp), %rax
movsbq %r13b, %rcx
testb $0x8, 0x1(%rax,%rcx,2)
jne 0x76ae
movb %r13b, 0x25f0f(%rip)    # 0x2d5f0
movzbl %r13b, %eax
leal -0x42(%rax), %ecx
cmpl $0x38, %ecx
ja 0x77de
movabsq $0x18fd751008817c3, %rdx # imm = 0x18FD751008817C3
btq %rcx, %rdx
jae 0x77de
movq %r12, %rbp
movl %r13d, %eax
andb $-0x2, %al
cmpb $0x66, %al
jne 0x7781
movl $0x1, %edi
callq 0x9522
testb %al, %al
je 0x7733
leaq 0x26178(%rip), %rax     # 0x2d89e
movb $0x1, %cl
movb %cl, (%rax)
leaq 0x2616e(%rip), %rax     # 0x2d89f
movb %cl, (%rax)
cmpl $0x0, (%r14)
je 0x774b
testb $0x1, 0x25eb2(%rip)     # 0x2d5f2
jne 0x774b
movb 0x25ea8(%rip), %r13b    # 0x2d5f1
jmp 0x7755
xorl %eax, %eax
callq 0xb94c
movl %eax, %r13d
movzbl %r13b, %ebp
leal -0x62(%rbp), %eax
cmpl $0x17, %eax
ja 0x7777
movl $0x881741, %ecx         # imm = 0x881741
btl %eax, %ecx
jae 0x7777
callq 0x6030
movq (%rax), %rax
movb (%rax,%rbp,4), %r13b
movb %r13b, 0x25e73(%rip)    # 0x2d5f1
movq %r12, %rbp
movb $0x0, 0x25e6a(%rip)     # 0x2d5f2
movl (%r14), %eax
testl %eax, %eax
je 0x77a0
leaq 0x26106(%rip), %rcx     # 0x2d89c
cmpb $0x0, (%rcx)
jne 0x77a0
decl %eax
movl %eax, (%r14)
movzbl %r13b, %eax
leal -0xc(%rax), %ecx
cmpl $0x6e, %ecx
ja 0x7bed
leaq 0x178e1(%rip), %rdx     # 0x1f098
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x22b46(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x2920f(%rip), %rax     # 0x309e0
movq (%rax), %rdi
callq 0xbd09
jmp 0x7b6f
cmpl $0x2e, %eax
movq %r12, %rbp
je 0x7708
movl $0x0, (%r14)
jmp 0x7708
movl $0x1, %edi
jmp 0x7b46
leaq 0x25dc9(%rip), %rax     # 0x2d5d0
movq (%rax), %rsi
leaq 0x17b5f(%rip), %rdi     # 0x1f370
xorl %eax, %eax
callq 0xb620
jmp 0x7b6f
xorl %edi, %edi
jmp 0x7896
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
jmp 0x7b46
movl $0x79, %edi
jmp 0x7b59
leaq 0x22ad1(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
movq 0x68(%rbx), %rdi
xorl %esi, %esi
callq 0x104d3
jmp 0x7b6f
xorl %eax, %eax
callq 0x1267f
jmp 0x7b6f
xorl %edi, %edi
jmp 0x7b65
xorl %edi, %edi
callq 0x1b33b
jmp 0x7b6f
leaq 0x22a98(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8186
jmp 0x7b6f
xorl %eax, %eax
callq 0xd346
testb %al, %al
je 0x7abb
movl $0x1, %edi
callq 0x1961e
jmp 0x7b6f
movl $0x68, %edi
jmp 0x7b59
leaq 0x22a5c(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0xbc85
jmp 0x7b6f
leaq 0x25f9d(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7abb
xorl %eax, %eax
callq 0x1bf52
jmp 0x7abb
movl $0x6b, %edi
jmp 0x7b59
leaq 0x22a20(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8666
jmp 0x7b6f
movl $0x1, %edi
jmp 0x7a1b
xorl %eax, %eax
callq 0x12170
jmp 0x7b6f
leaq 0x229f6(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0x14030
testl %eax, %eax
je 0x7b6f
leaq 0x290b0(%rip), %r12     # 0x309e0
movq (%r12), %rdi
callq 0x6120
movq (%r12), %rdi
callq 0x6200
callq 0x6530
xorl %edi, %edi
xorl %eax, %eax
callq 0xc65c
jmp 0x7b6f
movl $0x6e, %edi
jmp 0x7b59
leaq 0x25efe(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7abb
xorl %eax, %eax
callq 0x1be47
jmp 0x7abb
leaq 0x2298b(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %edi, %edi
callq 0x7f63
jmp 0x7b6f
leaq 0x25ecc(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7abb
xorl %eax, %eax
callq 0x1bbc6
jmp 0x7abb
xorl %eax, %eax
callq 0x67c0
jmp 0x7b6f
xorl %eax, %eax
callq 0x671c
jmp 0x7b6f
leaq 0x22941(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x25ec7(%rip), %r12     # 0x2d89d
cmpb $0x1, (%r12)
jne 0x7c2d
movb $0x0, (%r12)
leaq 0x179b9(%rip), %rdi     # 0x1f3a6
jmp 0x7a0a
callq 0x8727
jmp 0x7abb
leaq 0x2290d(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x26576(%rip), %rdi     # 0x2df80
xorl %eax, %eax
callq 0xb620
jmp 0x7b6f
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
xorl %esi, %esi
jmp 0x7b6a
movl $0x6c, %edi
jmp 0x7b59
xorl %eax, %eax
leaq 0x25e69(%rip), %rcx     # 0x2d89e
movb %al, (%rcx)
movl $0x0, (%r14)
leaq 0x228c8(%rip), %rcx     # 0x2a30d
movb %al, (%rcx)
jmp 0x7b6f
xorl %eax, %eax
callq 0xc818
testb %al, %al
je 0x7b6f
xorl %eax, %eax
callq 0x8ccb
jmp 0x7abb
leaq 0x228a2(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0x10659
jmp 0x7b6f
leaq 0x2288c(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x86b8
jmp 0x7b6f
xorl %eax, %eax
callq 0x112a8
jmp 0x7b6f
xorl %eax, %eax
callq 0xd346
testb %al, %al
je 0x7abb
leaq 0x289b8(%rip), %rax     # 0x30464
movl (%rax), %esi
movl 0x4(%rax), %edi
callq 0x1c69c
jmp 0x7b6f
leaq 0x2284b(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
jmp 0x7b6f
xorl %eax, %eax
callq 0x146a8
jmp 0x7b6f
xorl %eax, %eax
callq 0xd124
jmp 0x7b6f
xorl %eax, %eax
callq 0xfbe4
jmp 0x7b6f
movl $0x75, %edi
jmp 0x7b59
leaq 0x22811(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8479
jmp 0x7b6f
xorl %eax, %eax
callq 0xc818
testb %al, %al
je 0x7b6f
movl 0x50(%rbx), %edx
movl 0x54(%rbx), %esi
leaq 0x2894e(%rip), %rax     # 0x3046c
movl (%rax), %r8d
movl 0x4(%rax), %ecx
leaq 0x1785d(%rip), %rdi     # 0x1f388
xorl %eax, %eax
callq 0xb620
jmp 0x7b6f
movl $0x1, %edi
jmp 0x7b65
xorl %eax, %eax
callq 0xeedb
jmp 0x7b6f
xorl %edi, %edi
movl $0x1, %esi
jmp 0x7b6a
movl $0x62, %edi
jmp 0x7b59
movl $0x6a, %edi
callq 0xdd50
jmp 0x7b6f
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xdd6f
leaq 0x25d26(%rip), %r12     # 0x2d89c
cmpb $0x0, (%r12)
movq %rbx, %rdx
jne 0x7b8a
leaq 0x25d17(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
leaq 0x262e3(%rip), %r13     # 0x2de74
movb (%r13), %al
testb %al, %al
je 0x7bb0
leaq 0x25cc4(%rip), %rcx     # 0x2d864
cmpl $0x1, (%rcx)
je 0x7bb0
movsbl %al, %edi
callq 0x105fa
movq %rbx, %rdx
cmpb $0x0, (%r12)
jne 0x7bc1
leaq 0x25ce0(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
leal -0x1(%r15), %eax
testl %r15d, %r15d
movl %eax, %r15d
jg 0x7560
jmp 0x7eb4
callq 0x8854
jmp 0x7b6f
callq 0x82a2
jmp 0x7b6f
xorl %eax, %eax
callq 0x1ccc4
jmp 0x7b6f
movsbl %r13b, %edi
leaq 0x22715(%rip), %rcx     # 0x2a30d
movb $0x0, (%rcx)
leaq 0x25c9b(%rip), %rcx     # 0x2d89d
cmpb $0x1, (%rcx)
jne 0x7c7f
leal -0x1(%rax), %ecx
cmpl $0x17, %ecx
ja 0x7c65
leaq 0x1763e(%rip), %rdx     # 0x1f254
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
leaq 0x226ca(%rip), %rax     # 0x2a2f0
incl (%rax)
jmp 0x7cba
xorl %eax, %eax
callq 0x1d6dc
movb %al, (%r12)
testb %al, %al
je 0x7c59
leaq 0x17777(%rip), %rdi     # 0x1f3ba
xorl %eax, %eax
callq 0xb620
leaq 0x25c4f(%rip), %rax     # 0x2d8a0
movb $0x1, (%rax)
jmp 0x7b6f
leaq 0x17771(%rip), %rdi     # 0x1f3d1
jmp 0x7a0a
cmpl $0x4d, %eax
je 0x7de0
cmpl $0x43, %eax
jne 0x7c7f
xorl %edi, %edi
callq 0x1ce21
jmp 0x7b6f
callq 0x6420
leaq 0x226f5(%rip), %rdi     # 0x2a380
movq %rax, %rsi
xorl %eax, %eax
callq 0xb620
movl $0x0, (%r14)
jmp 0x7b6f
leaq 0x22648(%rip), %rax     # 0x2a2f0
movl (%rax), %eax
cmpl $0x2, %eax
jl 0x7cba
decl %eax
leaq 0x22638(%rip), %rcx     # 0x2a2f0
movl %eax, (%rcx)
xorl %edi, %edi
callq 0xf534
jmp 0x7b6f
leaq 0x17726(%rip), %rdi     # 0x1f3f3
movl $0x2f, %esi
callq 0x10749
testq %rax, %rax
je 0x7b6f
movq 0x10(%rax), %rax
movl $0x2710, 0x34(%rax)     # imm = 0x2710
leaq 0x1bc97(%rip), %rdi     # 0x23989
jmp 0x7a0a
leaq 0x25b4a(%rip), %rax     # 0x2d848
movq (%rax), %rdi
movl $0x1, %esi
jmp 0x7845
xorl %eax, %eax
callq 0x111eb
jmp 0x7b6f
leaq 0x225e2(%rip), %rax     # 0x2a300
movl (%rax), %esi
leaq 0x176b0(%rip), %rdi     # 0x1f3d7
xorl %eax, %eax
callq 0xb620
jmp 0x7b6f
xorl %eax, %eax
callq 0x91bc
jmp 0x7b6f
xorl %edi, %edi
callq 0x1cd40
jmp 0x7b6f
leaq 0x2265e(%rip), %rax     # 0x2a3b0
movq (%rax), %rdi
movq %rbx, %rsi
callq 0x1d502
jmp 0x7b6f
leaq 0x25ff7(%rip), %rax     # 0x2dd60
movq (%rax), %rax
movslq 0x28(%rax), %rcx
leaq 0x24cb9(%rip), %rdx     # 0x2ca30
movq 0x38(%rdx,%rcx,8), %rcx
incq %rcx
movq %rcx, 0x20(%rax)
xorl %eax, %eax
callq 0xaea5
xorl %edi, %edi
movl $0x29, %esi
movl $0x6, %edx
callq 0x1b640
movq %rax, %r13
movq 0x10(%rax), %rbp
movabsq $0x300000003, %rax      # imm = 0x300000003
movq %rax, 0x2c(%rbp)
movl $0x2, 0x38(%rbp)
movq %r13, %rdi
movl $0x1, %esi
callq 0x10180
testb %al, %al
je 0x7e33
leaq 0x25a81(%rip), %rax     # 0x2d850
movq %rbp, (%rax)
jmp 0x7e3b
xorl %eax, %eax
callq 0x941b
jmp 0x7b6f
leaq 0x260a9(%rip), %r12     # 0x2de90
movb $0x0, (%r12)
leaq 0x175f2(%rip), %rdi     # 0x1f3e5
xorl %eax, %eax
callq 0xb620
leaq 0x28bdf(%rip), %rax     # 0x309e0
movq (%rax), %rsi
movq %r12, %rdi
callq 0xfd31
testl %eax, %eax
jne 0x7b6f
leaq 0x26075(%rip), %rdi     # 0x2de90
callq 0x64b0
cmpl $0xc8, %eax
jl 0x7e95
addl $0xffffff39, %eax       # imm = 0xFFFFFF39
movl $0x2, %edi
jmp 0x7ea6
movq %r13, %rdi
callq 0xbdda
xorl %edi, %edi
movl $0x5d, %esi
movl $0x9, %edx
callq 0x1b640
movq %rax, %r13
movq 0x10(%rax), %rbp
movabsq $0x2fffffff8, %rax      # imm = 0x2FFFFFFF8
movq %rax, 0x34(%rbp)
movq %r13, %rdi
movl $0x1, %esi
callq 0x10180
testb %al, %al
je 0x7e7e
leaq 0x259df(%rip), %rax     # 0x2d858
movq %rbp, (%rax)
jmp 0x7e86
movq %r13, %rdi
callq 0xbdda
movq %r12, %rbp
leaq 0x25a13(%rip), %rax     # 0x2d8a3
jmp 0x7ac2
leal -0x63(%rax), %ecx
xorl %edi, %edi
cmpl $0x64, %eax
setge %dil
cmovll %eax, %ecx
movl %ecx, %eax
leaq 0x22443(%rip), %rcx     # 0x2a2f0
movl %eax, (%rcx)
jmp 0x7cbc
leaq 0x22452(%rip), %rax     # 0x2a30d
cmpb $0x1, (%rax)
leaq 0x224eb(%rip), %r15     # 0x2a3b0
jne 0x7f54
xorl %edi, %edi
callq 0xcae0
movl $0x2, %edi
callq 0x8b48
xorl %eax, %eax
callq 0x8c6e
movl $0x4000, %edi           # imm = 0x4000
callq 0x9513
testb %al, %al
je 0x7ef8
xorl %eax, %eax
callq 0xc9bc
movb $0x1, %bpl
leaq 0x25e4e(%rip), %r14     # 0x2dd50
leaq 0x25d57(%rip), %rbx     # 0x2dc60
xorl %eax, %eax
movq (%r14,%rax,8), %rax
testq %rax, %rax
je 0x7f44
movl 0x28(%rax), %eax
cmpl $0xb, %eax
je 0x7f28
cmpl $0x3, %eax
jne 0x7f44
callq 0x82a2
jmp 0x7f44
movl $0x64, %edi
xorl %eax, %eax
callq 0xc674
cmpl $0x4, %eax
jg 0x7f44
movq (%r15), %rdi
movq %rbx, %rsi
callq 0x1d502
movl $0x1, %eax
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x7f0b
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq