// File: dnegovan[P]Intruder-On-Donnar-V/Space.cpp
// Function: Space::administerCompound(Player&)
bool Space::administerCompound(Player& markNelson)
{
    std::cout << NARRATOR_COLOR
              << "Telling " << occupant->getName() << " that it's just a routine "
              "vaccine for something the crew \nmight have been exposed to on the "
              "planet, you inject the \ncompound into the side of ";

    if (occupant->getName().compare("Holly") == 0 ||
        occupant->getName().compare("Penny") == 0)
    {
        std::cout << "her neck.\n";
    }
    else
    {
        std::cout << "his neck.\n";
    }

    wait(MED);
    std::cout << std::endl;
    wait(MED);
    std::cout << std::endl;

    markNelson.pack.removeItem(compound);
    std::cout << RED;
	if (markNelson.incubated && occupant->getInfected())
    {
    	std::cout << occupant->getName() << " is unaffected. The compound is "
                  "useless because the parasite has \nincubated.\nYou'll need to "
                  " kill " << occupant->getName() << " and any other hosts "
                  "to prevent the \nparasite spreading further." << std::endl;
    }
    if (occupant->getInfected() == false)
    {
		markNelson.injectedWrong = true;
		occupant->setAlive(false);
        std::cout << occupant->getName() << " is not infected, and therefore "
                  "dies quickly and horribly before \nyour eyes.  You've wasted "
                  "the compound and must now kill \nany remaining hosts to save "
                  "the rest of the crew." << std::endl;
    }
    std::cout << RESET;

    //base can't trigger game ending, always true
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x128(%rbp)
movq 0xab43(%rip), %rdi      # 0x28fc8
leaq 0xc2c(%rip), %rsi       # 0x1f0b8
callq 0x3210
movq %rax, %rdi
leaq 0x2074(%rip), %rsi      # 0x2050f
callq 0x3210
movq %rax, %rcx
movq -0x128(%rbp), %rax
movq %rcx, -0x120(%rbp)
movq 0x8(%rax), %rsi
leaq -0x30(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x15fc0
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0x31e0
movq %rax, -0x110(%rbp)
jmp 0x1e4e1
movq -0x110(%rbp), %rdi
leaq 0x2029(%rip), %rsi      # 0x20518
callq 0x3210
jmp 0x1e4f6
leaq -0x30(%rbp), %rdi
callq 0x3448
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x60(%rbp), %rdi
callq 0x15fc0
leaq -0x60(%rbp), %rdi
leaq 0xd56(%rip), %rsi       # 0x1f274
callq 0x30b0
movl %eax, %ecx
movb $0x0, -0x81(%rbp)
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x129(%rbp)
je 0x1e572
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x80(%rbp), %rdi
callq 0x15fc0
jmp 0x1e54f
movb $0x1, -0x81(%rbp)
leaq -0x80(%rbp), %rdi
leaq 0xb45(%rip), %rsi       # 0x1f0a6
callq 0x30b0
cmpl $0x0, %eax
sete %al
movb %al, -0x129(%rbp)
movb -0x129(%rbp), %al
movb %al, -0x12a(%rbp)
testb $0x1, -0x81(%rbp)
jne 0x1e589
jmp 0x1e592
leaq -0x80(%rbp), %rdi
callq 0x3448
leaq -0x60(%rbp), %rdi
callq 0x3448
movb -0x12a(%rbp), %al
testb $0x1, %al
jne 0x1e5a7
jmp 0x1e5f0
movq 0xaa1a(%rip), %rdi      # 0x28fc8
leaq 0x1ff2(%rip), %rsi      # 0x205a7
callq 0x3210
jmp 0x1e603
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3448
jmp 0x1e8ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3448
jmp 0x1e8ee
movq 0xa9d1(%rip), %rdi      # 0x28fc8
leaq 0x1fb4(%rip), %rsi      # 0x205b2
callq 0x3210
movsd 0xe05(%rip), %xmm0      # 0x1f410
movsd %xmm0, -0x158(%rbp)
callq 0x188c0
movq 0xa9a9(%rip), %rdi      # 0x28fc8
movq %rdi, -0x150(%rbp)
movq 0xa983(%rip), %rsi      # 0x28fb0
movq %rsi, -0x148(%rbp)
callq 0x3240
movsd -0x158(%rbp), %xmm0
callq 0x188c0
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rsi
callq 0x3240
movq -0x10(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq 0xc53d(%rip), %rsi      # 0x2aba8
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x30f0
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rsi
callq 0x132c0
jmp 0x1e693
leaq -0xa8(%rbp), %rdi
callq 0x3448
movq 0xa922(%rip), %rdi      # 0x28fc8
leaq 0x1316(%rip), %rsi      # 0x1f9c3
callq 0x3210
movq -0x10(%rbp), %rax
testb $0x1, 0x28(%rax)
je 0x1e803
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x16050
testb $0x1, %al
jne 0x1e6d9
jmp 0x1e803
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x15fc0
movq -0x168(%rbp), %rsi
movq 0xa8c3(%rip), %rdi      # 0x28fc8
callq 0x31e0
movq %rax, -0x160(%rbp)
jmp 0x1e713
movq -0x160(%rbp), %rdi
leaq 0x1e9c(%rip), %rsi      # 0x205bd
callq 0x3210
movq %rax, -0x170(%rbp)
jmp 0x1e72f
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0xe8(%rbp), %rdi
callq 0x15fc0
jmp 0x1e748
movq -0x170(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x31e0
movq %rax, -0x178(%rbp)
jmp 0x1e764
movq -0x178(%rbp), %rdi
leaq 0x1eae(%rip), %rsi      # 0x20620
callq 0x3210
movq %rax, -0x180(%rbp)
jmp 0x1e780
movq -0x180(%rbp), %rdi
movq 0xa822(%rip), %rsi      # 0x28fb0
callq 0x3240
jmp 0x1e795
leaq -0xe8(%rbp), %rdi
callq 0x3448
leaq -0xc8(%rbp), %rdi
callq 0x3448
jmp 0x1e803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x3448
jmp 0x1e8ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1e7f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x3448
leaq -0xc8(%rbp), %rdi
callq 0x3448
jmp 0x1e8ee
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x16050
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x1e8ce
movq -0x128(%rbp), %rax
movq -0x10(%rbp), %rcx
movb $0x1, 0x18(%rcx)
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0x15ff0
movq -0x128(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x108(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x15fc0
movq -0x190(%rbp), %rsi
movq 0xa761(%rip), %rdi      # 0x28fc8
callq 0x31e0
movq %rax, -0x188(%rbp)
jmp 0x1e875
movq -0x188(%rbp), %rdi
leaq 0x1dde(%rip), %rsi      # 0x20661
callq 0x3210
movq %rax, -0x198(%rbp)
jmp 0x1e891
movq -0x198(%rbp), %rdi
movq 0xa711(%rip), %rsi      # 0x28fb0
callq 0x3240
jmp 0x1e8a6
leaq -0x108(%rbp), %rdi
callq 0x3448
jmp 0x1e8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x3448
jmp 0x1e8ee
movq 0xa6f3(%rip), %rdi      # 0x28fc8
leaq 0x7f7(%rip), %rsi       # 0x1f0d3
callq 0x3210
movb $0x1, %al
andb $0x1, %al
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x33c0
nopw (%rax,%rax)