// File: /workspace/github_c_makefile_star2_O2/ajpaulson[P]srogue11/potions.c
// Function: quaff
int quaff()
{
	struct object *obj;
	struct linked_list *item, *titem;
	struct thing *th;
	int wh;
	char buf[LINLEN];
	bool bless, curse;

	/*
	 * Make certain that it is somethings that we want to drink
	 */
	if ((item = get_item("quaff", POTION)) == NULL)
		return 0;
	obj = OBJPTR(item);
	if (obj->o_type != POTION) {
		msg("That's undrinkable!");
		after = FALSE;
		return 0;
	}
	wh = obj->o_which;
	bless = o_on(obj, ISBLESS);
	curse = o_on(obj, ISCURSED);
	del_pack(item);		/* get rid of it */

	/*
	 * Calculate the effect it has on the poor guy.
	 */
	switch(wh) {
	case P_CONFUSE:
		if (!bless) {
			if (pl_on(ISINVINC))
				msg("You remain level-headed.");
			else {
				chg_abil(WIS,-1,TRUE);		/* confuse his mind */
				if (pl_off(ISHUH)) {
					msg("Wait, what's going on here. Huh? What? Who?");
					if (pl_on(ISHUH))
						lengthen(unconfuse,rnd(8)+HUHDURATION);
					else
						fuse(unconfuse,TRUE,rnd(8)+HUHDURATION);
					player.t_flags |= ISHUH;
				}
			}
			p_know[P_CONFUSE] = TRUE;
		}
	when P_POISON:
		if (!bless) {
			if (pl_off(ISINVINC) && !iswearing(R_SUSTSTR) &&
			  !iswearing(R_SUSAB)) {
				chg_abil(CON,-1,TRUE);		
				chg_abil(STR,-(rnd(3)+1),TRUE);
				msg("You feel very sick now.");
			}
			else
				msg("You feel momentarily sick.");
			p_know[P_POISON] = TRUE;
		}
	when P_HEALING:
		if (!curse) {
			heal_self(4, TRUE);
			msg("You begin to feel better.");
			if (!iswearing(R_SLOW))
				notslow(FALSE);
			sight(FALSE);
			p_know[P_HEALING] = TRUE;
		}
	when P_STRENGTH:
		if (!curse) {
			msg("You feel stronger, now.  What bulging muscles!");
			chg_abil(STR,1,TRUE);
			p_know[P_STRENGTH] = TRUE;
		}
	when P_MFIND:
		/*
		 * Potion of monster detection - find all monsters
		 */
		if (mlist != NULL && !curse) {
			dispmons();
			mpos = 0;
			msg("You begin to sense the presence of monsters--More--");
			p_know[P_MFIND] = TRUE;
			wait_for(cw,' ');
			msg("");		/* clear line */
		}
		else
			msg("You have a strange feeling for a moment, then it passes.");
	when P_TFIND:
		/*
		 * Potion of magic detection.  Show the potions and scrolls
		 */
		if (lvl_obj != NULL && !curse) {
			struct linked_list *mobj;
			struct object *tp;
			bool show;

			show = FALSE;
			wclear(hw);
			for (mobj = lvl_obj; mobj != NULL; mobj = next(mobj)) {
				tp = OBJPTR(mobj);
				if (is_magic(tp)) {
					show = TRUE;
					mvwaddch(hw, tp->o_pos.y, tp->o_pos.x, MAGIC);
				}
			}
			for(titem = mlist; titem != NULL; titem = next(titem)) {
				struct linked_list *pitem;

				th = THINGPTR(titem);
				for(pitem=th->t_pack;pitem!=NULL;pitem=next(pitem)) {
					if (is_magic(ldata(pitem))) {
						show = TRUE;
						mvwaddch(hw,th->t_pos.y, th->t_pos.x, MAGIC);
					}
				}
			}
			if (show) {
				msg("You begin to sense the presence of magic.");
				overlay(hw,cw);
				p_know[P_TFIND] = TRUE;
				break;
			}
		}
		msg("You have a strange feeling for a moment, then it passes.");
	when P_PARALYZE:
		if (!bless) {
			if (pl_on(ISINVINC))
				msg("You feel numb for a moment.");
			else {
				msg("You can't move.");
				player.t_nocmd = HOLDTIME;
			}
			p_know[P_PARALYZE] = TRUE;
		}
	when P_SEEINVIS:
		if (!curse) {
			int invlen = roll(40,20);

			msg("This potion tastes like %s juice.", fruit);
			if (pl_off(CANSEE)) {
				player.t_flags |= CANSEE;
				fuse(unsee, TRUE, invlen);
				light(&hero);
			}
			else
				lengthen(unsee, invlen);
			sight(FALSE);
		}
	when P_RAISE:
		if (!curse) {
			msg("You suddenly feel much more skillful.");
			p_know[P_RAISE] = TRUE;
			chg_abil(DEX,1,TRUE);
			chg_abil(WIS,1,TRUE);
			chg_abil(CON,1,TRUE);
			raise_level();
		}
	when P_XHEAL:
		if (!curse) {
			heal_self(8, TRUE);
			if (rnd(100) < 50)
				chg_abil(CON,1,TRUE);
			msg("You begin to feel much better.");
			p_know[P_XHEAL] = TRUE;
			if (!iswearing(R_SLOW))
				notslow(FALSE);
			unconfuse();
			extinguish(unconfuse);
			sight(FALSE);
		}
	when P_HASTE:
		if (!curse) {
			add_haste(TRUE);
			msg("You feel yourself moving much faster.");
			p_know[P_HASTE] = TRUE;
		}
	when P_INVINC:
		if (!curse) {
			int time = rnd(400) + 350;

			msg("You feel invincible.");
			if (player.t_flags & ISINVINC)
				lengthen(notinvinc,time);
			else
				fuse(notinvinc,TRUE,time);
			player.t_flags |= ISINVINC;
			p_know[P_INVINC] = TRUE;
		}
	when P_SMART:
		if (!curse) {
			msg("You feel more perceptive.");
			p_know[P_SMART] = TRUE;
			chg_abil(WIS,1,TRUE);
		}
	when P_RESTORE:
		if (!curse) {
			msg("Hey, this tastes great. You feel warm all over.");
			him->s_re = max_stats.s_re;
			him->s_ef = max_stats.s_re;
			ringabil();				/* add in rings */
			updpack();				/* update weight */
			p_know[P_RESTORE] = TRUE;
			extinguish(rchg_str);	/* kill restore in from ulodyte */
		}
	when P_BLIND:
		if (!bless) {
			if (pl_on(ISINVINC))
				msg("The light dims for a moment.");
			else {
				chg_abil(WIS,-1,TRUE);
				msg("A cloak of darkness falls around you.");
				if (pl_off(ISBLIND)) {
					player.t_flags |= ISBLIND;
					fuse(sight, TRUE, rnd(400) + 450);
					light(&hero);
				}
			}
			p_know[P_BLIND] = TRUE;
		}
	when P_ETH:
		if (!curse) {
			int ethlen = roll(40,20);

			msg("You feel more vaporous.");
			if (pl_on(ISETHER))
				lengthen(noteth,ethlen);
			else
				fuse(noteth,TRUE,ethlen);
			player.t_flags |= ISETHER;
			p_know[P_ETH] = TRUE;
		}
	when P_NOP:
		msg("This potion tastes extremely dull.");
	when P_DEX:
		if (!curse) {
			chg_abil(DEX,1,TRUE);		/* increase dexterity */
			p_know[P_DEX] = TRUE;
			msg("You feel much more agile.");
		}
	when P_REGEN:
		if (!curse) {
			int reglen = rnd(450) + 450;

			if (pl_on(ISREGEN))
				lengthen(notregen, reglen);
			else
				fuse(notregen, TRUE, reglen);
			player.t_flags |= ISREGEN;
			msg("You feel yourself improved.");
			p_know[P_REGEN] = TRUE;
		}
	when P_DECREP:
	case P_SUPHERO: {
		int howmuch = rnd(3) + 1;

		if (wh == P_DECREP) {
			if (!bless) {
				if (iswearing(R_SUSAB) || pl_on(ISINVINC)) {
					msg("You feel momentarily woozy.");
					howmuch = 0;
				}
				else {
					msg("You feel crippled.");
					howmuch = -howmuch;
					if (!iswearing(R_SUSTSTR))
						chg_abil(STR,howmuch,TRUE);
				}
			}
			else
				howmuch = 0;
		}
		else {			/* potion of superhero */
			if (curse)
				howmuch = 0;
			msg("You feel invigorated.");
			chg_abil(STR,howmuch,TRUE);
		}
		chg_abil(CON,howmuch,TRUE);
		chg_abil(DEX,howmuch,TRUE);
		chg_abil(WIS,howmuch,TRUE);		/* change abilities */
		p_know[wh] = TRUE;
	}
	otherwise:
		msg("What an odd tasting potion!");
		return 0;
	}
	nochange = FALSE;
	if (p_know[wh] && p_guess[wh]) {
		free(p_guess[wh]);
		p_guess[wh] = NULL;
	}
	else if(!p_know[wh] && p_guess[wh] == NULL) {
		strcpy(buf, p_colors[wh]);
		msg(callit);
		if (get_str(buf, cw) == NORM) {
			p_guess[wh] = new(strlen(buf) + 1);
			strcpy(p_guess[wh], buf);
		}
	}
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
leaq 0xef5b(%rip), %rdi      # 0x1f6e8
pushq $0x21
popq %rsi
callq 0xfd08
testq %rax, %rax
je 0x11145
movq %rax, %rbx
movq 0x10(%rax), %r14
cmpl $0x21, 0x20(%r14)
jne 0x10847
movl 0x28(%r14), %r13d
pushq $0x20
popq %rsi
movq %r14, %rdi
callq 0x934a
movl %eax, %r15d
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x934a
movl %eax, %r14d
movq %rbx, %rdi
callq 0x1008d
cmpq $0x14, %r13
ja 0x10ca0
movslq %r13d, %r12
leaq 0xeea8(%rip), %rax      # 0x1f694
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
xorl %ebx, %ebx
pushq $0x3
popq %rdi
xorl %eax, %eax
callq 0xc004
movl %eax, %ebp
cmpl $0x13, %r13d
jne 0x10927
testb %r15b, %r15b
jne 0x10949
pushq $0x10
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x10832
pushq $0x8
popq %rdi
callq 0x932c
testb %al, %al
je 0x11062
leaq 0xf1ed(%rip), %rdi      # 0x1fa26
xorl %ebx, %ebx
xorl %eax, %eax
callq 0xb178
jmp 0x10949
leaq 0xeea0(%rip), %rdi      # 0x1f6ee
xorl %eax, %eax
callq 0xb178
leaq 0x19aa1(%rip), %rax     # 0x2a2fd
movb $0x0, (%rax)
jmp 0x11145
testb %r14b, %r14b
jne 0x110b0
leaq 0xf0b4(%rip), %rdi      # 0x1f928
xorl %eax, %eax
callq 0xb178
leaq 0x1fb6e(%rip), %rax     # 0x303f0
movb $0x1, 0x10(%rax)
pushq $0x4
popq %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x111a5
jmp 0x110b0
testb %r14b, %r14b
jne 0x110b0
pushq $0x2
popq %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x111a5
leaq 0x1fb3b(%rip), %rax     # 0x303f0
movb $0x1, 0xe(%rax)
leaq 0xf130(%rip), %rdi      # 0x1f9f0
jmp 0x10ec4
testb %r14b, %r14b
jne 0x110b0
leaq 0xf06d(%rip), %rdi      # 0x1f942
xorl %eax, %eax
callq 0xb178
leaq 0x1d46d(%rip), %rax     # 0x2dd50
movq (%rax), %rcx
leaq 0x1d3fb(%rip), %rdx     # 0x2dce8
movups (%rdx), %xmm0
movups %xmm0, (%rcx)
movq (%rax), %rax
movups (%rdx), %xmm0
movups %xmm0, 0x10(%rax)
xorl %eax, %eax
callq 0x11e3d
xorl %eax, %eax
callq 0x9378
leaq 0x1fade(%rip), %rax     # 0x303f0
movb $0x1, 0xb(%rax)
leaq 0x877(%rip), %rdi       # 0x11194
callq 0x8aaf
jmp 0x110b0
incl %ebp
testb %r14b, %r14b
cmovel %ebp, %ebx
leaq 0xf11f(%rip), %rdi      # 0x1fa55
xorl %eax, %eax
callq 0xb178
pushq $0x1
popq %rdi
movl %ebx, %esi
movl %edi, %edx
callq 0x111a5
pushq $0x3
popq %rdi
pushq $0x1
popq %rbp
movl %ebx, %esi
movl %ebp, %edx
callq 0x111a5
pushq $0x2
popq %rdi
movl %ebx, %esi
movl %ebp, %edx
callq 0x111a5
pushq $0x4
popq %rdi
movl %ebx, %esi
movl %ebp, %edx
callq 0x111a5
leaq 0x1fa79(%rip), %rax     # 0x303f0
movb $0x1, (%rax,%r13)
jmp 0x110b0
testb %r14b, %r14b
jne 0x110b0
pushq $0x28
popq %rdi
pushq $0x14
popq %rsi
callq 0xc025
movl %eax, %ebx
leaq 0xeee8(%rip), %rdi      # 0x1f886
leaq 0x1d57b(%rip), %rsi     # 0x2df20
xorl %eax, %eax
callq 0xb178
movl $0x1000, %edi           # imm = 0x1000
callq 0x933b
testb %al, %al
je 0x10ed0
leaq 0x1d28b(%rip), %r14     # 0x2dc50
orb $0x10, 0x79(%r14)
leaq -0x7cbe(%rip), %rdi     # 0x8d13
pushq $0x1
popq %rsi
movl %ebx, %edx
callq 0x8a46
addq $0x50, %r14
movq %r14, %rdi
callq 0xe29f
jmp 0x10ede
testb %r15b, %r15b
jne 0x110b0
pushq $0x8
popq %rdi
callq 0x932c
testb %al, %al
je 0x10eec
leaq 0xef66(%rip), %rdi      # 0x1f972
xorl %eax, %eax
callq 0xb178
jmp 0x10f4c
testb %r14b, %r14b
jne 0x110b0
pushq $0x8
popq %rdi
pushq $0x1
popq %rsi
callq 0x114f1
pushq $0x64
popq %rdi
xorl %eax, %eax
callq 0xc004
cmpl $0x31, %eax
jg 0x10a48
pushq $0x3
popq %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x111a5
leaq 0xee7f(%rip), %rdi      # 0x1f8ce
xorl %eax, %eax
callq 0xb178
leaq 0x1f993(%rip), %rax     # 0x303f0
movb $0x1, 0x9(%rax)
pushq $0x12
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x10a76
xorl %edi, %edi
xorl %eax, %eax
callq 0x8f8e
xorl %eax, %eax
callq 0x8ce7
leaq -0x7d9d(%rip), %rdi     # 0x8ce7
callq 0x8aaf
jmp 0x10ede
testb %r15b, %r15b
jne 0x110b0
pushq $0x8
popq %rdi
callq 0x933b
leaq 0xecb9(%rip), %rbx      # 0x1f75f
testb %al, %al
je 0x10af1
pushq $0x2
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x10af1
pushq $0x10
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x10af1
pushq $0x3
popq %rbx
pushq $-0x1
popq %rsi
pushq $0x1
popq %rbp
movl %ebx, %edi
movl %ebp, %edx
callq 0x111a5
movl %ebx, %edi
xorl %eax, %eax
callq 0xc004
notl %eax
movl %ebp, %edi
movl %eax, %esi
movl %ebp, %edx
callq 0x111a5
leaq 0xec56(%rip), %rbx      # 0x1f747
movq %rbx, %rdi
xorl %eax, %eax
callq 0xb178
leaq 0x1f8ee(%rip), %rax     # 0x303f0
movb $0x1, 0x2(%rax)
jmp 0x110b0
testb %r14b, %r14b
jne 0x110b0
pushq $0x28
popq %rdi
pushq $0x14
popq %rsi
callq 0xc025
movl %eax, %ebx
leaq 0xee8d(%rip), %rdi      # 0x1f9b5
xorl %eax, %eax
callq 0xb178
movl $0x10000, %edi          # imm = 0x10000
callq 0x932c
leaq -0x7c61(%rip), %rdi     # 0x8edf
testb %al, %al
je 0x10f5c
movl %ebx, %esi
callq 0x8a7d
jmp 0x10f66
testb %r14b, %r14b
jne 0x110b0
leaq 0xec30(%rip), %rdi      # 0x1f794
xorl %eax, %eax
callq 0xb178
pushq $0x1
popq %rdi
movl %edi, %esi
movl %edi, %edx
callq 0x111a5
leaq 0x1f872(%rip), %rax     # 0x303f0
movb $0x1, 0x3(%rax)
jmp 0x110b0
leaq 0x1ccaa(%rip), %r13     # 0x2d838
cmpq $0x0, (%r13)
sete %al
orb %r14b, %al
testb $0x1, %al
jne 0x10ebd
leaq 0x1fe30(%rip), %r15     # 0x309d8
movq (%r15), %rdi
callq 0x6120
xorl %ebp, %ebp
pushq $0x24
popq %rbx
movq (%r13), %r13
testq %r13, %r13
je 0x10e36
movq 0x10(%r13), %r14
movq %r14, %rdi
callq 0xab0e
testb %al, %al
je 0x10bb5
movq (%r15), %rdi
movl (%r14), %edx
movl 0x4(%r14), %esi
callq 0x6470
movb $0x1, %bpl
cmpl $-0x1, %eax
je 0x10bb5
movq (%r15), %rdi
movl %ebx, %esi
callq 0x64a0
jmp 0x10bb5
testb %r15b, %r15b
jne 0x110b0
pushq $0x8
popq %rdi
callq 0x932c
testb %al, %al
je 0x10f81
leaq 0xeaed(%rip), %rdi      # 0x1f702
xorl %eax, %eax
callq 0xb178
jmp 0x110a6
testb %r15b, %r15b
jne 0x110b0
pushq $0x8
popq %rdi
callq 0x932c
testb %al, %al
je 0x10fe3
leaq 0xec19(%rip), %rdi      # 0x1f85a
xorl %eax, %eax
callq 0xb178
jmp 0x11002
testb %r14b, %r14b
jne 0x110b0
movl $0x190, %edi            # imm = 0x190
xorl %eax, %eax
callq 0xc004
movl %eax, %ebx
addl $0x15e, %ebx            # imm = 0x15E
leaq 0xeca2(%rip), %rdi      # 0x1f913
xorl %eax, %eax
callq 0xb178
leaq 0x1cfd1(%rip), %r14     # 0x2dc50
testb $0x8, 0x78(%r14)
jne 0x11012
leaq -0x7cab(%rip), %rdi     # 0x8fe6
pushq $0x1
popq %rsi
movl %ebx, %edx
callq 0x8a46
jmp 0x11020
leaq 0xedc4(%rip), %rdi      # 0x1fa6b
xorl %eax, %eax
callq 0xb178
jmp 0x11145
testb %r14b, %r14b
jne 0x110b0
movl $0x1c2, %edi            # imm = 0x1C2
xorl %eax, %eax
callq 0xc004
movl %eax, %ebx
addl $0x1c2, %ebx            # imm = 0x1C2
movl $0x400, %edi            # imm = 0x400
callq 0x932c
leaq -0x7d27(%rip), %rdi     # 0x8fba
testb %al, %al
je 0x11032
movl %ebx, %esi
callq 0x8a7d
jmp 0x1103c
testb %r14b, %r14b
jne 0x110b0
pushq $0x4
popq %rdi
pushq $0x1
popq %rsi
callq 0x114f1
leaq 0xea6a(%rip), %rdi      # 0x1f77a
xorl %eax, %eax
callq 0xb178
pushq $0x12
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x10d2c
xorl %edi, %edi
xorl %eax, %eax
callq 0x8f8e
xorl %edi, %edi
xorl %eax, %eax
callq 0x8d21
leaq 0x1f6b4(%rip), %rax     # 0x303f0
movb $0x1, 0x5(%rax)
jmp 0x110b0
leaq 0xec81(%rip), %rdi      # 0x1f9cd
jmp 0x10ec4
leaq 0x1cad8(%rip), %rax     # 0x2d830
cmpq $0x0, (%rax)
sete %al
orb %r14b, %al
testb $0x1, %al
jne 0x10ebd
xorl %eax, %eax
callq 0x9241
leaq 0x1cae8(%rip), %rax     # 0x2d860
andl $0x0, (%rax)
leaq 0xea41(%rip), %rdi      # 0x1f7c3
xorl %eax, %eax
callq 0xb178
leaq 0x1f660(%rip), %rax     # 0x303f0
movb $0x1, 0x6(%rax)
leaq 0x1fc35(%rip), %rax     # 0x309d0
movq (%rax), %rdi
pushq $0x20
popq %rsi
callq 0xb399
leaq 0x10bdc(%rip), %rdi     # 0x21989
jmp 0x10ec4
testb %r14b, %r14b
jne 0x110b0
pushq $0x1
popq %rdi
callq 0x112ea
leaq 0xeb23(%rip), %rdi      # 0x1f8ed
xorl %eax, %eax
callq 0xb178
leaq 0x1f618(%rip), %rax     # 0x303f0
movb $0x1, 0xa(%rax)
jmp 0x110b0
testb %r14b, %r14b
jne 0x110b0
leaq 0xeab7(%rip), %rdi      # 0x1f8a8
xorl %eax, %eax
callq 0xb178
leaq 0x1f5f1(%rip), %rax     # 0x303f0
movb $0x1, 0x8(%rax)
pushq $0x2
popq %rdi
pushq $0x1
popq %rbx
movl %ebx, %esi
movl %ebx, %edx
callq 0x111a5
pushq $0x4
popq %rdi
movl %ebx, %esi
movl %ebx, %edx
callq 0x111a5
pushq $0x3
popq %rdi
movl %ebx, %esi
movl %ebx, %edx
callq 0x111a5
xorl %eax, %eax
callq 0xaae8
jmp 0x110b0
leaq 0x1c9f3(%rip), %r14     # 0x2d830
movq (%r14), %r14
testq %r14, %r14
je 0x10e87
movq 0x10(%r14), %r13
leaq 0x68(%r13), %rbx
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x10e3d
movq 0x10(%rbx), %rdi
callq 0xab0e
testb %al, %al
je 0x10e4d
movq (%r15), %rdi
movl 0x50(%r13), %edx
movl 0x54(%r13), %esi
callq 0x6470
movb $0x1, %bpl
cmpl $-0x1, %eax
je 0x10e4d
movq (%r15), %rdi
pushq $0x24
popq %rsi
callq 0x64a0
jmp 0x10e4d
testb $0x1, %bpl
je 0x10ebd
leaq 0xe99c(%rip), %rdi      # 0x1f830
xorl %eax, %eax
callq 0xb178
movq (%r15), %rdi
leaq 0x1fb2b(%rip), %rax     # 0x309d0
movq (%rax), %rsi
callq 0x6360
leaq 0x1f53c(%rip), %rax     # 0x303f0
movb $0x1, 0x7(%rax)
jmp 0x110b0
leaq 0xe933(%rip), %rdi      # 0x1f7f7
xorl %eax, %eax
callq 0xb178
jmp 0x110b0
leaq -0x81c4(%rip), %rdi     # 0x8d13
movl %ebx, %esi
callq 0x8a7d
xorl %edi, %edi
xorl %eax, %eax
callq 0x8d21
jmp 0x110b0
pushq $0x4
popq %rdi
pushq $-0x1
popq %rsi
pushq $0x1
popq %rdx
callq 0x111a5
leaq 0xea8e(%rip), %rdi      # 0x1f98f
xorl %eax, %eax
callq 0xb178
pushq $0x1
popq %rdi
callq 0x933b
testb %al, %al
je 0x10f4c
leaq 0x1cd35(%rip), %rbx     # 0x2dc50
orb $0x1, 0x78(%rbx)
movl $0x190, %edi            # imm = 0x190
xorl %eax, %eax
callq 0xc004
leal 0x1c2(%rax), %edx
leaq -0x8217(%rip), %rdi     # 0x8d21
pushq $0x1
popq %rsi
callq 0x8a46
addq $0x50, %rbx
movq %rbx, %rdi
callq 0xe29f
leaq 0x1f49d(%rip), %rax     # 0x303f0
movb $0x1, 0xc(%rax)
jmp 0x110b0
pushq $0x1
popq %rsi
movl %ebx, %edx
callq 0x8a46
leaq 0x1cce3(%rip), %rax     # 0x2dc50
orb $0x1, 0x7a(%rax)
leaq 0x1f478(%rip), %rax     # 0x303f0
movb $0x1, 0xf(%rax)
jmp 0x110b0
pushq $0x4
popq %rdi
pushq $-0x1
popq %rsi
pushq $0x1
popq %rdx
callq 0x111a5
movl $0x200, %edi            # imm = 0x200
callq 0x933b
testb %al, %al
je 0x110a6
leaq 0xe773(%rip), %rdi      # 0x1f71b
xorl %eax, %eax
callq 0xb178
movl $0x200, %edi            # imm = 0x200
callq 0x932c
movl %eax, %ebx
pushq $0x8
popq %rdi
xorl %eax, %eax
callq 0xc004
addl $0x14, %eax
leaq -0x82e8(%rip), %rdi     # 0x8ce7
testb %bl, %bl
je 0x11091
movl %eax, %esi
callq 0x8a7d
jmp 0x1109b
leaq 0xe88c(%rip), %rdi      # 0x1f876
xorl %eax, %eax
callq 0xb178
leaq 0x1cc58(%rip), %rax     # 0x2dc50
movl $0x2, 0x88(%rax)
leaq 0x1f3e7(%rip), %rax     # 0x303f0
movb $0x1, 0x1(%rax)
jmp 0x110b0
leaq -0x8033(%rip), %rdi     # 0x8fe6
movl %ebx, %esi
callq 0x8a7d
orb $0x8, 0x78(%r14)
leaq 0x1f3c4(%rip), %rax     # 0x303f0
movb $0x1, 0x14(%rax)
jmp 0x110b0
pushq $0x1
popq %rsi
movl %ebx, %edx
callq 0x8a46
leaq 0x1cc0d(%rip), %rax     # 0x2dc50
orb $0x4, 0x79(%rax)
leaq 0xe9bc(%rip), %rdi      # 0x1fa0a
xorl %eax, %eax
callq 0xb178
leaq 0x1f394(%rip), %rax     # 0x303f0
movb $0x1, 0x11(%rax)
jmp 0x110b0
leaq 0xe9d9(%rip), %rdi      # 0x1fa42
xorl %eax, %eax
callq 0xb178
notl %ebp
pushq $0x2
popq %rdi
callq 0x11fa5
testb %al, %al
jne 0x1108a
pushq $0x1
popq %rdi
movl %ebp, %esi
movl %edi, %edx
callq 0x111a5
movl %ebp, %ebx
jmp 0x10949
pushq $0x1
popq %rsi
movl %eax, %edx
callq 0x8a46
leaq 0x1cbae(%rip), %rax     # 0x2dc50
orb $0x2, 0x79(%rax)
leaq 0x1f343(%rip), %rax     # 0x303f0
movb $0x1, (%rax)
leaq 0x1c7dc(%rip), %rax     # 0x2d893
movb $0x0, (%rax)
leaq 0x1f32f(%rip), %rax     # 0x303f0
leaq 0x1f0b8(%rip), %r14     # 0x30180
movq (%r14,%r12,8), %rdi
cmpb $0x1, (%rax,%r12)
jne 0x110e4
testq %rdi, %rdi
je 0x11145
callq 0x6050
andq $0x0, (%r14,%r12,8)
jmp 0x11145
testq %rdi, %rdi
jne 0x11145
leaq 0x1f4f0(%rip), %rax     # 0x305e0
movq (%rax,%r12,8), %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x60e0
leaq 0x19280(%rip), %rdi     # 0x2a386
xorl %eax, %eax
callq 0xb178
leaq 0x1f8bc(%rip), %rax     # 0x309d0
movq (%rax), %rsi
movq %rbx, %rdi
callq 0xf37e
testl %eax, %eax
jne 0x11145
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x6170
leal 0x1(%rax), %edi
callq 0xb8a5
movq %rax, (%r14,%r12,8)
movq %rax, %rdi
movq %rbx, %rsi
callq 0x60e0
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop