// File: /workspace/github_c_makefile_star2_O3/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 0x1042b(%rip), %rdi     # 0x216e8
movl $0x21, %esi
callq 0x10749
testq %rax, %rax
je 0x11d28
movq %rax, %rbx
movq 0x10(%rax), %r14
cmpl $0x21, 0x20(%r14)
jne 0x11383
movl 0x28(%r14), %r13d
movl $0x20, %esi
movq %r14, %rdi
callq 0x9531
movl %eax, %r15d
movl $0x1, %esi
movq %r14, %rdi
callq 0x9531
movl %eax, %r14d
movq %rbx, %rdi
callq 0x10b63
cmpq $0x14, %r13
ja 0x11834
movslq %r13d, %r12
leaq 0x10372(%rip), %rax     # 0x21694
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
xorl %ebx, %ebx
movl $0x3, %edi
xorl %eax, %eax
callq 0xc674
movl %eax, %ebp
cmpl $0x13, %r13d
jne 0x11471
testb %r15b, %r15b
jne 0x11498
movl $0x10, %edi
callq 0x12c34
testb %al, %al
jne 0x1136e
movl $0x8, %edi
callq 0x9513
testb %al, %al
je 0x11c39
leaq 0x106b1(%rip), %rdi     # 0x21a26
xorl %ebx, %ebx
xorl %eax, %eax
callq 0xb620
jmp 0x11498
leaq 0x10364(%rip), %rdi     # 0x216ee
xorl %eax, %eax
callq 0xb620
leaq 0x18f75(%rip), %rax     # 0x2a30d
movb $0x0, (%rax)
jmp 0x11d28
testb %r14b, %r14b
jne 0x11c90
leaq 0x10578(%rip), %rdi     # 0x21928
xorl %eax, %eax
callq 0xb620
leaq 0x1f042(%rip), %rax     # 0x30400
movb $0x1, 0x10(%rax)
movl $0x4, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
jmp 0x11c90
testb %r14b, %r14b
jne 0x11c90
movl $0x2, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
leaq 0x1f001(%rip), %rax     # 0x30400
movb $0x1, 0xe(%rax)
leaq 0x105e6(%rip), %rdi     # 0x219f0
jmp 0x11a82
testb %r14b, %r14b
jne 0x11c90
leaq 0x10523(%rip), %rdi     # 0x21942
xorl %eax, %eax
callq 0xb620
leaq 0x1c933(%rip), %rax     # 0x2dd60
movq (%rax), %rcx
leaq 0x1c8c1(%rip), %rdx     # 0x2dcf8
movups (%rdx), %xmm0
movups %xmm0, (%rcx)
movq (%rax), %rax
movups (%rdx), %xmm0
movups %xmm0, 0x10(%rax)
xorl %eax, %eax
callq 0x12abb
xorl %eax, %eax
callq 0x9560
leaq 0x1efa4(%rip), %rax     # 0x30400
movb $0x1, 0xb(%rax)
leaq 0x911(%rip), %rdi       # 0x11d78
callq 0x8c14
jmp 0x11c90
incl %ebp
testb %r14b, %r14b
cmovel %ebp, %ebx
leaq 0x105d5(%rip), %rdi     # 0x21a55
xorl %eax, %eax
callq 0xb620
movl $0x1, %edi
movl %ebx, %esi
movl $0x1, %edx
callq 0x11d8e
movl $0x3, %edi
movl %ebx, %esi
movl $0x1, %edx
callq 0x11d8e
movl $0x2, %edi
movl %ebx, %esi
movl $0x1, %edx
callq 0x11d8e
movl $0x4, %edi
movl %ebx, %esi
movl $0x1, %edx
callq 0x11d8e
leaq 0x1ef2e(%rip), %rax     # 0x30400
movb $0x1, (%rax,%r13)
jmp 0x11c90
testb %r14b, %r14b
jne 0x11c90
movl $0x28, %edi
movl $0x14, %esi
callq 0xc695
movl %eax, %ebx
leaq 0x10389(%rip), %rdi     # 0x21886
leaq 0x1ca2c(%rip), %rsi     # 0x2df30
xorl %eax, %eax
callq 0xb620
movl $0x1000, %edi           # imm = 0x1000
callq 0x9522
testb %al, %al
je 0x11a8e
leaq 0x1c73c(%rip), %r14     # 0x2dc60
orb $0x10, 0x79(%r14)
leaq -0x8696(%rip), %rdi     # 0x8e9a
movl $0x1, %esi
movl %ebx, %edx
callq 0x8ba7
addq $0x50, %r14
movq %r14, %rdi
callq 0xeba8
jmp 0x11a9c
testb %r15b, %r15b
jne 0x11c90
movl $0x8, %edi
callq 0x9513
testb %al, %al
je 0x11aaa
leaq 0x10403(%rip), %rdi     # 0x21972
xorl %eax, %eax
callq 0xb620
jmp 0x11b14
testb %r14b, %r14b
jne 0x11c90
movl $0x8, %edi
movl $0x1, %esi
callq 0x12112
movl $0x64, %edi
xorl %eax, %eax
callq 0xc674
cmpl $0x31, %eax
jg 0x115b8
movl $0x3, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
leaq 0x1030f(%rip), %rdi     # 0x218ce
xorl %eax, %eax
callq 0xb620
leaq 0x1ee33(%rip), %rax     # 0x30400
movb $0x1, 0x9(%rax)
movl $0x12, %edi
callq 0x12c34
testb %al, %al
jne 0x115e8
xorl %edi, %edi
xorl %eax, %eax
callq 0x9135
xorl %eax, %eax
callq 0x8e6e
leaq -0x8788(%rip), %rdi     # 0x8e6e
callq 0x8c14
jmp 0x11a9c
testb %r15b, %r15b
jne 0x11c90
movl $0x8, %edi
callq 0x9522
leaq 0x10145(%rip), %rbx     # 0x2175f
testb %al, %al
je 0x11674
movl $0x2, %edi
callq 0x12c34
testb %al, %al
jne 0x11674
movl $0x10, %edi
callq 0x12c34
testb %al, %al
jne 0x11674
movl $0x3, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x11d8e
movl $0x3, %edi
xorl %eax, %eax
callq 0xc674
notl %eax
movl $0x1, %edi
movl %eax, %esi
movl $0x1, %edx
callq 0x11d8e
leaq 0x100d3(%rip), %rbx     # 0x21747
movq %rbx, %rdi
xorl %eax, %eax
callq 0xb620
leaq 0x1ed7b(%rip), %rax     # 0x30400
movb $0x1, 0x2(%rax)
jmp 0x11c90
testb %r14b, %r14b
jne 0x11c90
movl $0x28, %edi
movl $0x14, %esi
callq 0xc695
movl %eax, %ebx
leaq 0x10306(%rip), %rdi     # 0x219b5
xorl %eax, %eax
callq 0xb620
movl $0x10000, %edi          # imm = 0x10000
callq 0x9513
leaq -0x864a(%rip), %rdi     # 0x907d
testb %al, %al
je 0x11b24
movl %ebx, %esi
callq 0x8bde
jmp 0x11b30
testb %r14b, %r14b
jne 0x11c90
leaq 0x100a9(%rip), %rdi     # 0x21794
xorl %eax, %eax
callq 0xb620
movl $0x1, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
leaq 0x1ecf3(%rip), %rax     # 0x30400
movb $0x1, 0x3(%rax)
jmp 0x11c90
leaq 0x1c12b(%rip), %rbx     # 0x2d848
cmpq $0x0, (%rbx)
sete %al
orb %r14b, %al
testb $0x1, %al
jne 0x11a7b
leaq 0x1f2b2(%rip), %r14     # 0x309e8
movq (%r14), %rdi
callq 0x6120
movq (%rbx), %r15
xorl %ebp, %ebp
testq %r15, %r15
je 0x119ec
movq 0x10(%r15), %rbx
movq %rbx, %rdi
callq 0xafc3
testb %al, %al
je 0x1177e
movq (%r14), %rdi
movl (%rbx), %edx
movl 0x4(%rbx), %esi
callq 0x6490
movb $0x1, %bpl
cmpl $-0x1, %eax
je 0x1177e
movq (%r14), %rdi
movl $0x24, %esi
callq 0x64c0
movq (%r15), %r15
jmp 0x11743
testb %r15b, %r15b
jne 0x11c90
movl $0x8, %edi
callq 0x9513
testb %al, %al
je 0x11b4b
leaq 0xff5d(%rip), %rdi      # 0x21702
xorl %eax, %eax
callq 0xb620
jmp 0x11c86
testb %r15b, %r15b
jne 0x11c90
movl $0x8, %edi
callq 0x9513
testb %al, %al
je 0x11bb5
leaq 0x10087(%rip), %rdi     # 0x2185a
xorl %eax, %eax
callq 0xb620
jmp 0x11bd4
testb %r14b, %r14b
jne 0x11c90
movl $0x190, %edi            # imm = 0x190
xorl %eax, %eax
callq 0xc674
movl %eax, %ebx
addl $0x15e, %ebx            # imm = 0x15E
leaq 0x10110(%rip), %rdi     # 0x21913
xorl %eax, %eax
callq 0xb620
leaq 0x1c44f(%rip), %r14     # 0x2dc60
testb $0x8, 0x78(%r14)
jne 0x11be4
leaq -0x8696(%rip), %rdi     # 0x918d
movl $0x1, %esi
movl %ebx, %edx
callq 0x8ba7
jmp 0x11bf2
leaq 0x10230(%rip), %rdi     # 0x21a6b
xorl %eax, %eax
callq 0xb620
jmp 0x11d28
testb %r14b, %r14b
jne 0x11c90
movl $0x1c2, %edi            # imm = 0x1C2
xorl %eax, %eax
callq 0xc674
movl %eax, %ebx
addl $0x1c2, %ebx            # imm = 0x1C2
movl $0x400, %edi            # imm = 0x400
callq 0x9513
leaq -0x8714(%rip), %rdi     # 0x9161
testb %al, %al
je 0x11c07
movl %ebx, %esi
callq 0x8bde
jmp 0x11c13
testb %r14b, %r14b
jne 0x11c90
movl $0x4, %edi
movl $0x1, %esi
callq 0x12112
leaq 0xfed2(%rip), %rdi      # 0x2177a
xorl %eax, %eax
callq 0xb620
movl $0x12, %edi
callq 0x12c34
testb %al, %al
jne 0x118c6
xorl %edi, %edi
xorl %eax, %eax
callq 0x9135
xorl %edi, %edi
xorl %eax, %eax
callq 0x8ea8
leaq 0x1eb2a(%rip), %rax     # 0x30400
movb $0x1, 0x5(%rax)
jmp 0x11c90
leaq 0x100e7(%rip), %rdi     # 0x219cd
jmp 0x11a82
leaq 0x1bf4e(%rip), %rax     # 0x2d840
cmpq $0x0, (%rax)
sete %al
orb %r14b, %al
testb $0x1, %al
jne 0x11a7b
xorl %eax, %eax
callq 0x941b
leaq 0x1bf5e(%rip), %rax     # 0x2d870
movl $0x0, (%rax)
leaq 0xfea4(%rip), %rdi      # 0x217c3
xorl %eax, %eax
callq 0xb620
leaq 0x1ead3(%rip), %rax     # 0x30400
movb $0x1, 0x6(%rax)
leaq 0x1f0a8(%rip), %rax     # 0x309e0
movq (%rax), %rdi
movl $0x20, %esi
callq 0xb89e
leaq 0x1203d(%rip), %rdi     # 0x23989
jmp 0x11a82
testb %r14b, %r14b
jne 0x11c90
movl $0x1, %edi
callq 0x11ee4
leaq 0xff82(%rip), %rdi      # 0x218ed
xorl %eax, %eax
callq 0xb620
leaq 0x1ea87(%rip), %rax     # 0x30400
movb $0x1, 0xa(%rax)
jmp 0x11c90
testb %r14b, %r14b
jne 0x11c90
leaq 0xff16(%rip), %rdi      # 0x218a8
xorl %eax, %eax
callq 0xb620
leaq 0x1ea60(%rip), %rax     # 0x30400
movb $0x1, 0x8(%rax)
movl $0x2, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
movl $0x4, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
movl $0x3, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x11d8e
xorl %eax, %eax
callq 0xaf9d
jmp 0x11c90
leaq 0x1be4d(%rip), %rax     # 0x2d840
movq (%rax), %rbx
testq %rbx, %rbx
je 0x11a45
movq 0x10(%rbx), %r15
movq 0x68(%r15), %r13
testq %r13, %r13
je 0x11a40
movq 0x10(%r13), %rdi
callq 0xafc3
testb %al, %al
je 0x11a3a
movq (%r14), %rdi
movl 0x50(%r15), %edx
movl 0x54(%r15), %esi
callq 0x6490
movb $0x1, %bpl
cmpl $-0x1, %eax
je 0x11a3a
movq (%r14), %rdi
movl $0x24, %esi
callq 0x64c0
movq (%r13), %r13
jmp 0x11a03
movq (%rbx), %rbx
jmp 0x119f6
testb $0x1, %bpl
je 0x11a7b
leaq 0xfdde(%rip), %rdi      # 0x21830
xorl %eax, %eax
callq 0xb620
movq (%r14), %rdi
leaq 0x1ef7d(%rip), %rax     # 0x309e0
movq (%rax), %rsi
callq 0x6370
leaq 0x1e98e(%rip), %rax     # 0x30400
movb $0x1, 0x7(%rax)
jmp 0x11c90
leaq 0xfd75(%rip), %rdi      # 0x217f7
xorl %eax, %eax
callq 0xb620
jmp 0x11c90
leaq -0x8bfb(%rip), %rdi     # 0x8e9a
movl %ebx, %esi
callq 0x8bde
xorl %edi, %edi
xorl %eax, %eax
callq 0x8ea8
jmp 0x11c90
movl $0x4, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x11d8e
leaq 0xfeca(%rip), %rdi      # 0x2198f
xorl %eax, %eax
callq 0xb620
movl $0x1, %edi
callq 0x9522
testb %al, %al
je 0x11b14
leaq 0x1c17f(%rip), %rbx     # 0x2dc60
orb $0x1, 0x78(%rbx)
movl $0x190, %edi            # imm = 0x190
xorl %eax, %eax
callq 0xc674
leal 0x1c2(%rax), %edx
leaq -0x8c56(%rip), %rdi     # 0x8ea8
movl $0x1, %esi
callq 0x8ba7
addq $0x50, %rbx
movq %rbx, %rdi
callq 0xeba8
leaq 0x1e8e5(%rip), %rax     # 0x30400
movb $0x1, 0xc(%rax)
jmp 0x11c90
movl $0x1, %esi
movl %ebx, %edx
callq 0x8ba7
leaq 0x1c129(%rip), %rax     # 0x2dc60
orb $0x1, 0x7a(%rax)
leaq 0x1e8be(%rip), %rax     # 0x30400
movb $0x1, 0xf(%rax)
jmp 0x11c90
movl $0x4, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x11d8e
movl $0x200, %edi            # imm = 0x200
callq 0x9522
testb %al, %al
je 0x11c86
leaq 0xfba3(%rip), %rdi      # 0x2171b
xorl %eax, %eax
callq 0xb620
movl $0x200, %edi            # imm = 0x200
callq 0x9513
movl %eax, %ebx
movl $0x8, %edi
xorl %eax, %eax
callq 0xc674
addl $0x14, %eax
leaq -0x8d33(%rip), %rdi     # 0x8e6e
testb %bl, %bl
je 0x11c6f
movl %eax, %esi
callq 0x8bde
jmp 0x11c7b
leaq 0xfcba(%rip), %rdi      # 0x21876
xorl %eax, %eax
callq 0xb620
leaq 0x1c096(%rip), %rax     # 0x2dc60
movl $0x2, 0x88(%rax)
leaq 0x1e825(%rip), %rax     # 0x30400
movb $0x1, 0x1(%rax)
jmp 0x11c90
leaq -0x8a5e(%rip), %rdi     # 0x918d
movl %ebx, %esi
callq 0x8bde
orb $0x8, 0x78(%r14)
leaq 0x1e802(%rip), %rax     # 0x30400
movb $0x1, 0x14(%rax)
jmp 0x11c90
movl $0x1, %esi
movl %ebx, %edx
callq 0x8ba7
leaq 0x1c046(%rip), %rax     # 0x2dc60
orb $0x4, 0x79(%rax)
leaq 0xfde5(%rip), %rdi      # 0x21a0a
xorl %eax, %eax
callq 0xb620
leaq 0x1e7cd(%rip), %rax     # 0x30400
movb $0x1, 0x11(%rax)
jmp 0x11c90
leaq 0xfe02(%rip), %rdi      # 0x21a42
xorl %eax, %eax
callq 0xb620
notl %ebp
movl $0x2, %edi
callq 0x12c34
testb %al, %al
jne 0x11c68
movl $0x1, %edi
movl %ebp, %esi
movl $0x1, %edx
callq 0x11d8e
movl %ebp, %ebx
jmp 0x11498
movl $0x1, %esi
movl %eax, %edx
callq 0x8ba7
leaq 0x1bfde(%rip), %rax     # 0x2dc60
orb $0x2, 0x79(%rax)
leaq 0x1e773(%rip), %rax     # 0x30400
movb $0x1, (%rax)
leaq 0x1bc0c(%rip), %rax     # 0x2d8a3
movb $0x0, (%rax)
leaq 0x1e75f(%rip), %rax     # 0x30400
leaq 0x1e4e8(%rip), %r14     # 0x30190
movq (%r14,%r12,8), %rdi
cmpb $0x1, (%rax,%r12)
jne 0x11cc7
testq %rdi, %rdi
je 0x11d28
callq 0x6050
movq $0x0, (%r14,%r12,8)
jmp 0x11d28
testq %rdi, %rdi
jne 0x11d28
leaq 0x1e91d(%rip), %rax     # 0x305f0
movq (%rax,%r12,8), %rsi
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x60e0
leaq 0x186ad(%rip), %rdi     # 0x2a396
xorl %eax, %eax
callq 0xb620
leaq 0x1ece9(%rip), %rax     # 0x309e0
movq (%rax), %rsi
movq %rbx, %rdi
callq 0xfd31
testl %eax, %eax
jne 0x11d28
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x6170
leal 0x1(%rax), %edi
callq 0xbe2a
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
nopl (%rax)