// File: /workspace/github_c_makefile_star2_O1/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 0x9595
movzbl %al, %r14d
leaq 0x26294(%rip), %rbp     # 0x2d89c
leaq 0x2625d(%rip), %r13     # 0x2d86c
leaq 0x2664a(%rip), %rbx     # 0x2dc60
leaq 0x26267(%rip), %r15     # 0x2d884
leaq 0x26850(%rip), %r12     # 0x2de74
movl $0x1, %edi
callq 0x8c14
movl $0x1, %edi
callq 0xcb98
cmpb $0x0, (%rbp)
jne 0x7648
leaq 0x26259(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
movl (%r13), %eax
leaq 0x22ca5(%rip), %rcx     # 0x2a2f8
movl %eax, (%rcx)
leaq 0x29384(%rip), %rax     # 0x309e0
movq (%rax), %rdi
movl 0x50(%rbx), %edx
movl 0x54(%rbx), %esi
callq 0x6490
cmpb $0x0, (%rbp)
jne 0x7685
cmpl $0x0, (%r15)
jne 0x7685
leaq 0x29363(%rip), %rax     # 0x309e0
movq (%rax), %rdi
callq 0x6200
movb $0x0, (%r12)
leaq 0x22c7c(%rip), %rax     # 0x2a30d
movb $0x1, (%rax)
leaq 0x26202(%rip), %rax     # 0x2d89d
cmpb $0x1, (%rax)
jne 0x76aa
leaq 0x261f9(%rip), %rax     # 0x2d8a0
movb $0x1, (%rax)
movb $0x2e, %r12b
cmpl $0x0, 0x88(%rbx)
jg 0x76e3
movl $0x0, 0x88(%rbx)
cmpb $0x1, (%rbp)
jne 0x76d2
leaq 0x267a8(%rip), %rax     # 0x2de75
movb (%rax), %r12b
jmp 0x76e3
cmpl $0x0, (%r15)
je 0x7875
movb 0x25f0d(%rip), %r12b    # 0x2d5f0
movl 0x88(%rbx), %eax
testl %eax, %eax
jle 0x7712
leal -0x1(%rax), %ecx
movl %ecx, 0x88(%rbx)
cmpl $0x1, %eax
jne 0x7c54
leaq 0x17c56(%rip), %rdi     # 0x1f35c
xorl %eax, %eax
callq 0xb6e0
jmp 0x7c54
movq %r13, %rbp
callq 0x65b0
movq %rax, %r13
movq (%rax), %rcx
movsbq %r12b, %rax
testb $0x8, 0x1(%rcx,%rax,2)
je 0x779b
movl $0x0, (%r15)
movb $0x1, 0x25eb9(%rip)     # 0x2d5f2
movq (%r13), %rcx
testb $0x8, 0x1(%rcx,%rax,2)
je 0x7770
movsbl %r12b, %eax
movl (%r15), %ecx
leal (%rcx,%rcx,4), %ecx
leal (%rax,%rcx,2), %eax
addl $-0x30, %eax
movl %eax, (%r15)
xorl %eax, %eax
callq 0xb9fd
movl %eax, %r12d
movq (%r13), %rax
movsbq %r12b, %rcx
testb $0x8, 0x1(%rax,%rcx,2)
jne 0x7744
movb %r12b, 0x25e79(%rip)    # 0x2d5f0
movzbl %r12b, %eax
leal -0x42(%rax), %ecx
cmpl $0x38, %ecx
ja 0x78ac
movabsq $0x18fd751008817c3, %rdx # imm = 0x18FD751008817C3
btq %rcx, %rdx
jae 0x78ac
movq %rbp, %r13
movl %r12d, %eax
andb $-0x2, %al
cmpb $0x66, %al
jne 0x7818
movl $0x1, %edi
callq 0x95a4
testb %al, %al
je 0x77c9
movb $0x1, %al
leaq 0x260e0(%rip), %rcx     # 0x2d89e
movb %al, (%rcx)
leaq 0x260d8(%rip), %rcx     # 0x2d89f
movb %al, (%rcx)
cmpl $0x0, (%r15)
je 0x77e1
testb $0x1, 0x25e1c(%rip)     # 0x2d5f2
jne 0x77e1
movb 0x25e12(%rip), %r12b    # 0x2d5f1
jmp 0x77eb
xorl %eax, %eax
callq 0xb9fd
movl %eax, %r12d
movzbl %r12b, %eax
addl $-0x62, %eax
cmpl $0x17, %eax
ja 0x7811
movl $0x881741, %ecx         # imm = 0x881741
btl %eax, %ecx
jae 0x7811
callq 0x6030
movq (%rax), %rax
movsbq %r12b, %rcx
movb (%rax,%rcx,4), %r12b
movb %r12b, 0x25dd9(%rip)    # 0x2d5f1
movb $0x0, 0x25dd3(%rip)     # 0x2d5f2
movl (%r15), %eax
testl %eax, %eax
je 0x7837
leaq 0x2606f(%rip), %rcx     # 0x2d89c
cmpb $0x0, (%rcx)
jne 0x7837
decl %eax
movl %eax, (%r15)
movzbl %r12b, %eax
leal -0xc(%rax), %ecx
cmpl $0x6e, %ecx
ja 0x7cb3
leaq 0x1784a(%rip), %rdx     # 0x1f098
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x22aaf(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x29178(%rip), %rax     # 0x309e0
movq (%rax), %rdi
callq 0xbdbb
jmp 0x7c3d
xorl %eax, %eax
callq 0xb9fd
movl %eax, %r12d
leaq 0x25fea(%rip), %rax     # 0x2d870
cmpl $0x0, (%rax)
je 0x76e3
cmpb $0x0, (%rbp)
jne 0x76e3
leaq 0x1c071(%rip), %rdi     # 0x23911
xorl %eax, %eax
callq 0xb6e0
jmp 0x76e3
cmpl $0x2e, %eax
movq %rbp, %r13
je 0x779e
movl $0x0, (%r15)
jmp 0x779e
movl $0x1, %edi
jmp 0x7c14
leaq 0x25cfb(%rip), %rax     # 0x2d5d0
movq (%rax), %rsi
leaq 0x17a91(%rip), %rdi     # 0x1f370
xorl %eax, %eax
callq 0xb6e0
jmp 0x7c3d
xorl %edi, %edi
jmp 0x7964
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
jmp 0x7c14
movl $0x79, %edi
jmp 0x7c27
leaq 0x22a03(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
movq 0x68(%rbx), %rdi
xorl %esi, %esi
callq 0x10616
jmp 0x7c3d
xorl %eax, %eax
callq 0x12804
jmp 0x7c3d
xorl %edi, %edi
jmp 0x7c33
xorl %edi, %edi
callq 0x1b412
jmp 0x7c3d
leaq 0x229ca(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8256
jmp 0x7c3d
xorl %eax, %eax
callq 0xd3a0
testb %al, %al
je 0x7b89
movl $0x1, %edi
callq 0x19778
jmp 0x7c3d
movl $0x68, %edi
jmp 0x7c27
leaq 0x2298e(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0xbd37
jmp 0x7c3d
leaq 0x25ecf(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7b89
xorl %eax, %eax
callq 0x1c02b
jmp 0x7b89
movl $0x6b, %edi
jmp 0x7c27
leaq 0x22952(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x872f
jmp 0x7c3d
movl $0x1, %edi
jmp 0x7ae9
xorl %eax, %eax
callq 0x122fc
jmp 0x7c3d
leaq 0x22928(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0x14190
testl %eax, %eax
je 0x7c3d
leaq 0x28fe2(%rip), %r12     # 0x309e0
movq (%r12), %rdi
callq 0x6120
movq (%r12), %rdi
callq 0x6200
callq 0x6530
xorl %edi, %edi
xorl %eax, %eax
callq 0xc715
jmp 0x7c3d
movl $0x6e, %edi
jmp 0x7c27
leaq 0x25e30(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7b89
xorl %eax, %eax
callq 0x1bf1b
jmp 0x7b89
leaq 0x228bd(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %edi, %edi
callq 0x8033
jmp 0x7c3d
leaq 0x25dfe(%rip), %rax     # 0x2d864
cmpl $0x1, (%rax)
jne 0x7b89
xorl %eax, %eax
callq 0x1bc9a
jmp 0x7b89
xorl %eax, %eax
callq 0x67c0
jmp 0x7c3d
xorl %eax, %eax
callq 0x671c
jmp 0x7c3d
leaq 0x22873(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x25df9(%rip), %r12     # 0x2d89d
cmpb $0x1, (%r12)
jne 0x7cf3
movb $0x0, (%r12)
leaq 0x178eb(%rip), %rdi     # 0x1f3a6
jmp 0x7ad8
callq 0x87f0
jmp 0x7b89
leaq 0x2283f(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
leaq 0x264a8(%rip), %rdi     # 0x2df80
xorl %eax, %eax
callq 0xb6e0
jmp 0x7c3d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
xorl %esi, %esi
jmp 0x7c38
movl $0x6c, %edi
jmp 0x7c27
xorl %eax, %eax
leaq 0x25d9b(%rip), %rcx     # 0x2d89e
movb %al, (%rcx)
movl $0x0, (%r15)
leaq 0x227fa(%rip), %rcx     # 0x2a30d
movb %al, (%rcx)
jmp 0x7c3d
xorl %eax, %eax
callq 0xc8d1
testb %al, %al
je 0x7c3d
xorl %eax, %eax
callq 0x8d8b
jmp 0x7b89
leaq 0x227d4(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
xorl %eax, %eax
callq 0x10794
jmp 0x7c3d
leaq 0x227be(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8781
jmp 0x7c3d
xorl %eax, %eax
callq 0x11428
jmp 0x7c3d
xorl %eax, %eax
callq 0xd3a0
testb %al, %al
je 0x7b89
leaq 0x288ea(%rip), %rax     # 0x30464
movl (%rax), %esi
movl 0x4(%rax), %edi
callq 0x1c770
jmp 0x7c3d
leaq 0x2277d(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
jmp 0x7c3d
xorl %eax, %eax
callq 0x14800
jmp 0x7c3d
xorl %eax, %eax
callq 0xd17e
jmp 0x7c3d
xorl %eax, %eax
callq 0xfd10
jmp 0x7c3d
movl $0x75, %edi
jmp 0x7c27
leaq 0x22743(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
callq 0x8549
jmp 0x7c3d
xorl %eax, %eax
callq 0xc8d1
testb %al, %al
je 0x7c3d
movl 0x50(%rbx), %edx
movl 0x54(%rbx), %esi
leaq 0x28880(%rip), %rax     # 0x3046c
movl (%rax), %r8d
movl 0x4(%rax), %ecx
leaq 0x1778f(%rip), %rdi     # 0x1f388
xorl %eax, %eax
callq 0xb6e0
jmp 0x7c3d
movl $0x1, %edi
jmp 0x7c33
xorl %eax, %eax
callq 0xefd9
jmp 0x7c3d
xorl %edi, %edi
movl $0x1, %esi
jmp 0x7c38
movl $0x62, %edi
jmp 0x7c27
movl $0x6a, %edi
callq 0xddb0
jmp 0x7c3d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xddcf
leaq 0x25c58(%rip), %rbp     # 0x2d89c
cmpb $0x0, (%rbp)
jne 0x7c54
leaq 0x25c4d(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
leaq 0x26219(%rip), %r12     # 0x2de74
movb (%r12), %al
testb %al, %al
je 0x7c77
leaq 0x25bfa(%rip), %rcx     # 0x2d864
cmpl $0x1, (%rcx)
je 0x7c77
movsbl %al, %edi
callq 0x10735
cmpb $0x0, (%rbp)
jne 0x7c87
leaq 0x25c1a(%rip), %rax     # 0x2d89e
movb $0x0, (%rax)
leal -0x1(%r14), %eax
testl %r14d, %r14d
movl %eax, %r14d
jg 0x7624
jmp 0x7f8c
callq 0x891d
jmp 0x7c3d
callq 0x8372
jmp 0x7c3d
xorl %eax, %eax
callq 0x1cd94
jmp 0x7c3d
movsbl %r12b, %edi
leaq 0x2264f(%rip), %rcx     # 0x2a30d
movb $0x0, (%rcx)
leaq 0x25bd5(%rip), %rcx     # 0x2d89d
cmpb $0x1, (%rcx)
jne 0x7d45
leal -0x1(%rax), %ecx
cmpl $0x17, %ecx
ja 0x7d2b
leaq 0x17578(%rip), %rdx     # 0x1f254
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
leaq 0x22604(%rip), %rax     # 0x2a2f0
incl (%rax)
jmp 0x7d80
xorl %eax, %eax
callq 0x1d7ca
movb %al, (%r12)
testb %al, %al
je 0x7d1f
leaq 0x176b1(%rip), %rdi     # 0x1f3ba
xorl %eax, %eax
callq 0xb6e0
leaq 0x25b89(%rip), %rax     # 0x2d8a0
movb $0x1, (%rax)
jmp 0x7c3d
leaq 0x176ab(%rip), %rdi     # 0x1f3d1
jmp 0x7ad8
cmpl $0x4d, %eax
je 0x7ea7
cmpl $0x43, %eax
jne 0x7d45
xorl %edi, %edi
callq 0x1cef1
jmp 0x7c3d
callq 0x6420
leaq 0x2262f(%rip), %rdi     # 0x2a380
movq %rax, %rsi
xorl %eax, %eax
callq 0xb6e0
movl $0x0, (%r15)
jmp 0x7c3d
leaq 0x22582(%rip), %rax     # 0x2a2f0
movl (%rax), %eax
cmpl $0x2, %eax
jl 0x7d80
decl %eax
leaq 0x22572(%rip), %rcx     # 0x2a2f0
movl %eax, (%rcx)
xorl %edi, %edi
callq 0xf658
jmp 0x7c3d
leaq 0x17660(%rip), %rdi     # 0x1f3f3
movl $0x2f, %esi
callq 0x10881
testq %rax, %rax
je 0x7c3d
movq 0x10(%rax), %rax
movl $0x2710, 0x34(%rax)     # imm = 0x2710
leaq 0x1bb59(%rip), %rdi     # 0x23911
jmp 0x7ad8
leaq 0x25a84(%rip), %rax     # 0x2d848
movq (%rax), %rdi
movl $0x1, %esi
jmp 0x7913
xorl %eax, %eax
callq 0x11363
jmp 0x7c3d
leaq 0x2251c(%rip), %rax     # 0x2a300
movl (%rax), %esi
leaq 0x175ea(%rip), %rdi     # 0x1f3d7
xorl %eax, %eax
callq 0xb6e0
jmp 0x7c3d
xorl %eax, %eax
callq 0x9270
jmp 0x7c3d
xorl %edi, %edi
callq 0x1ce10
jmp 0x7c3d
leaq 0x22598(%rip), %rax     # 0x2a3b0
movq (%rax), %rdi
movq %rbx, %rsi
callq 0x1d5fa
jmp 0x7c3d
leaq 0x25f31(%rip), %rax     # 0x2dd60
movq (%rax), %rax
movslq 0x28(%rax), %rcx
leaq 0x24bf3(%rip), %rdx     # 0x2ca30
movq 0x38(%rdx,%rcx,8), %rcx
incq %rcx
movq %rcx, 0x20(%rax)
xorl %eax, %eax
callq 0xaf58
xorl %edi, %edi
movl $0x29, %esi
movl $0x6, %edx
callq 0x1b715
movq %rax, %r12
movq 0x10(%rax), %r13
movabsq $0x300000003, %rax      # imm = 0x300000003
movq %rax, 0x2c(%r13)
movl $0x2, 0x38(%r13)
movq %r12, %rdi
movl $0x1, %esi
callq 0x10288
testb %al, %al
je 0x7f0b
leaq 0x259ba(%rip), %rax     # 0x2d850
movq %r13, (%rax)
jmp 0x7f13
xorl %eax, %eax
callq 0x949d
jmp 0x7c3d
leaq 0x25fe2(%rip), %r12     # 0x2de90
movb $0x0, (%r12)
leaq 0x1752b(%rip), %rdi     # 0x1f3e5
xorl %eax, %eax
callq 0xb6e0
leaq 0x28b18(%rip), %rax     # 0x309e0
movq (%rax), %rsi
movq %r12, %rdi
callq 0xfe5d
testl %eax, %eax
jne 0x7c3d
leaq 0x25fae(%rip), %rdi     # 0x2de90
callq 0x64b0
testl %eax, %eax
jg 0x7ef8
leaq 0x223fe(%rip), %rcx     # 0x2a2f0
movl $0x1, (%rcx)
cmpl $0xc8, %eax
jl 0x7f6d
addl $0xffffff39, %eax       # imm = 0xFFFFFF39
movl $0x2, %edi
jmp 0x7f7e
movq %r12, %rdi
callq 0xbe93
xorl %edi, %edi
movl $0x5d, %esi
movl $0x9, %edx
callq 0x1b715
movq %rax, %r12
movq 0x10(%rax), %r13
movabsq $0x2fffffff8, %rax      # imm = 0x2FFFFFFF8
movq %rax, 0x34(%r13)
movq %r12, %rdi
movl $0x1, %esi
callq 0x10288
testb %al, %al
je 0x7f56
leaq 0x25907(%rip), %rax     # 0x2d858
movq %r13, (%rax)
jmp 0x7f5e
movq %r12, %rdi
callq 0xbe93
movq %rbp, %r13
leaq 0x2593b(%rip), %rax     # 0x2d8a3
jmp 0x7b90
leal -0x63(%rax), %ecx
xorl %edi, %edi
cmpl $0x64, %eax
setge %dil
cmovll %eax, %ecx
movl %ecx, %eax
leaq 0x2236b(%rip), %rcx     # 0x2a2f0
movl %eax, (%rcx)
jmp 0x7d82
leaq 0x2237a(%rip), %rax     # 0x2a30d
cmpb $0x1, (%rax)
leaq 0x22413(%rip), %r12     # 0x2a3b0
jne 0x8024
xorl %edi, %edi
callq 0xcb98
movl $0x2, %edi
callq 0x8c14
xorl %eax, %eax
callq 0x8d32
movl $0x4000, %edi           # imm = 0x4000
callq 0x9595
testb %al, %al
je 0x7fd0
xorl %eax, %eax
callq 0xca74
leaq 0x25d79(%rip), %r14     # 0x2dd50
leaq 0x25c82(%rip), %rbx     # 0x2dc60
xorl %r15d, %r15d
movq (%r14,%r15,8), %rax
testq %rax, %rax
je 0x801b
movl 0x28(%rax), %eax
cmpl $0xb, %eax
je 0x7ffe
cmpl $0x3, %eax
jne 0x801b
callq 0x8372
jmp 0x801b
movl $0x64, %edi
xorl %eax, %eax
callq 0xc72d
cmpl $0x4, %eax
jg 0x801b
movq (%r12), %rdi
movq %rbx, %rsi
callq 0x1d5fa
incq %r15
cmpq $0x1, %r15
je 0x7fe1
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq