// File: dnegovan[P]Intruder-On-Donnar-V/Game.cpp
// Function: Game::decrementTime()
bool Game::decrementTime()
{
    std::string temp;
	if (timeLeft > 1)
    {
		timeLeft--;

        //check if we should show hint
        if (timeTilHint > 1)
        {
            timeTilHint--;
        }
        else
        {
            printFile("hint.txt", RED, 0);
            std::cout << "\nPress enter to continue" << std::endl;
            getline(std::cin, temp);
            timeTilHint = TIME_HINT;
        }
        //keep playing
        return true;
    }
    else
    {
        if (!markNelson.incubated)
        {
    		markNelson.incubated = true;
    		std::cout << RED
                      << "\nTHE PARASITE HAS INCUBATED.  You must now kill the "
                      << "host before it \nspreads to another crew member.\n"
                      << RESET << "\nPress enter to continue" << std::endl;
            getline(std::cin, temp);
            if (!markNelson.pack.checkFor(compound))
            {
    		          objective2 =
                      "-Neutralize the parasite - FAILED";
            }
            objective3 = "-kill any infected crewMembers";
    		timeLeft = TIME_TIL_SPREAD;
    		deadline = "          TIME UNTIL NEXT CREW MEMBER IS INFECTED";
            //keep playing
            return true;
        }
    	else
        {
            //check if gameOver
            bool continueGame = parasiteSpreads();
            //if not display updates
            if (markNelson.state == UNFINISHED)
            {   //don't need to display this if the game is over
                std::cout << RED
                          << "THE PARASITE HAS SPREAD TO ANOTHER CREW MEMBER.\n"
                          << "Kill any infected to save the rest of your crew\n"
                          << RESET << "\nPress enter to continue" << std::endl
                          << std::endl;
                getline(std::cin, temp);
        		timeLeft = TIME_TIL_SPREAD;
        		objective1 =
                    "-talk to the crew to discover all imposters";
            }
            return continueGame;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3300
movq -0xc0(%rbp), %rax
cmpl $0x1, 0x38(%rax)
jle 0x1b244
movq -0xc0(%rbp), %rax
movl 0x38(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x38(%rax)
cmpl $0x1, 0x3c(%rax)
jle 0x1b0df
movq -0xc0(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x3c(%rax)
jmp 0x1b231
leaq -0x51(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x33d0
movq -0xc8(%rbp), %rdx
leaq 0x48bd(%rip), %rsi      # 0x1f9ba
leaq -0x50(%rbp), %rdi
callq 0x32f0
jmp 0x1b108
leaq -0x89(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x33d0
movq -0xd0(%rbp), %rdx
leaq 0x489a(%rip), %rsi      # 0x1f9c3
leaq -0x88(%rbp), %rdi
callq 0x32f0
jmp 0x1b137
leaq -0x50(%rbp), %rdi
leaq -0x88(%rbp), %rsi
xorps %xmm0, %xmm0
callq 0x18550
jmp 0x1b14c
leaq -0x88(%rbp), %rdi
callq 0x3448
leaq -0x89(%rbp), %rdi
callq 0x3250
leaq -0x50(%rbp), %rdi
callq 0x3448
leaq -0x51(%rbp), %rdi
callq 0x3250
movq 0xde4b(%rip), %rdi      # 0x28fc8
leaq 0x4845(%rip), %rsi      # 0x1f9c9
callq 0x3210
movq %rax, -0xd8(%rbp)
jmp 0x1b192
movq -0xd8(%rbp), %rdi
movq 0xde10(%rip), %rsi      # 0x28fb0
callq 0x3240
jmp 0x1b1a7
movq 0xde2a(%rip), %rdi      # 0x28fd8
leaq -0x30(%rbp), %rsi
callq 0x3050
jmp 0x1b1b9
movq -0xc0(%rbp), %rax
movl $0xe, 0x3c(%rax)
jmp 0x1b231
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1b212
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1b1fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3448
leaq -0x89(%rbp), %rdi
callq 0x3250
leaq -0x50(%rbp), %rdi
callq 0x3448
leaq -0x51(%rbp), %rdi
callq 0x3250
jmp 0x1b54f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1b54f
movb $0x1, -0x1(%rbp)
movl $0x1, -0x90(%rbp)
jmp 0x1b538
movq -0xc0(%rbp), %rax
testb $0x1, 0x28(%rax)
jne 0x1b3fe
movq -0xc0(%rbp), %rax
movb $0x1, 0x28(%rax)
movq 0xdd61(%rip), %rdi      # 0x28fc8
leaq 0x4755(%rip), %rsi      # 0x1f9c3
callq 0x3210
movq %rax, -0xe0(%rbp)
jmp 0x1b27c
movq -0xe0(%rbp), %rdi
leaq 0x4758(%rip), %rsi      # 0x1f9e2
callq 0x3210
movq %rax, -0xe8(%rbp)
jmp 0x1b298
movq -0xe8(%rbp), %rdi
leaq 0x4771(%rip), %rsi      # 0x1fa17
callq 0x3210
movq %rax, -0xf0(%rbp)
jmp 0x1b2b4
movq -0xf0(%rbp), %rdi
leaq 0x3e11(%rip), %rsi      # 0x1f0d3
callq 0x3210
movq %rax, -0xf8(%rbp)
jmp 0x1b2d0
movq -0xf8(%rbp), %rdi
leaq 0x46eb(%rip), %rsi      # 0x1f9c9
callq 0x3210
movq %rax, -0x100(%rbp)
jmp 0x1b2ec
movq -0x100(%rbp), %rdi
movq 0xdcb6(%rip), %rsi      # 0x28fb0
callq 0x3240
jmp 0x1b301
movq 0xdcd0(%rip), %rdi      # 0x28fd8
leaq -0x30(%rbp), %rsi
callq 0x3050
jmp 0x1b313
movq -0xc0(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq 0xea30(%rip), %rsi      # 0x29d58
leaq -0xb0(%rbp), %rdi
callq 0x30f0
jmp 0x1b336
movq -0x108(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x13240
movb %al, -0x109(%rbp)
jmp 0x1b351
movb -0x109(%rbp), %al
xorb $-0x1, %al
movb %al, -0x10a(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3448
movb -0x10a(%rbp), %al
testb $0x1, %al
jne 0x1b377
jmp 0x1b3af
movq -0xc0(%rbp), %rdi
subq $-0x80, %rdi
leaq 0x46bf(%rip), %rsi      # 0x1fa48
callq 0x32e0
jmp 0x1b390
jmp 0x1b3af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3448
jmp 0x1b54f
movq -0xc0(%rbp), %rdi
addq $0xa0, %rdi
leaq 0x46a6(%rip), %rsi      # 0x1fa6a
callq 0x32e0
jmp 0x1b3cb
movq -0xc0(%rbp), %rdi
movl $0x4, 0x38(%rdi)
addq $0x40, %rdi
leaq 0x46a5(%rip), %rsi      # 0x1fa89
callq 0x32e0
jmp 0x1b3eb
movb $0x1, -0x1(%rbp)
movl $0x1, -0x90(%rbp)
jmp 0x1b538
movq -0xc0(%rbp), %rdi
callq 0x1bb70
movb %al, -0x10b(%rbp)
jmp 0x1b412
movq -0xc0(%rbp), %rax
movb -0x10b(%rbp), %cl
andb $0x1, %cl
movb %cl, -0xb1(%rbp)
cmpl $0x0, 0x30(%rax)
jne 0x1b523
movq 0xdb8f(%rip), %rdi      # 0x28fc8
leaq 0x4583(%rip), %rsi      # 0x1f9c3
callq 0x3210
movq %rax, -0x118(%rbp)
jmp 0x1b44e
movq -0x118(%rbp), %rdi
leaq 0x465f(%rip), %rsi      # 0x1fabb
callq 0x3210
movq %rax, -0x120(%rbp)
jmp 0x1b46a
movq -0x120(%rbp), %rdi
leaq 0x4674(%rip), %rsi      # 0x1faec
callq 0x3210
movq %rax, -0x128(%rbp)
jmp 0x1b486
movq -0x128(%rbp), %rdi
leaq 0x3c3f(%rip), %rsi      # 0x1f0d3
callq 0x3210
movq %rax, -0x130(%rbp)
jmp 0x1b4a2
movq -0x130(%rbp), %rdi
leaq 0x4519(%rip), %rsi      # 0x1f9c9
callq 0x3210
movq %rax, -0x138(%rbp)
jmp 0x1b4be
movq -0x138(%rbp), %rdi
movq 0xdae4(%rip), %rsi      # 0x28fb0
callq 0x3240
movq %rax, -0x140(%rbp)
jmp 0x1b4da
movq -0x140(%rbp), %rdi
movq 0xdac8(%rip), %rsi      # 0x28fb0
callq 0x3240
jmp 0x1b4ef
movq 0xdae2(%rip), %rdi      # 0x28fd8
leaq -0x30(%rbp), %rsi
callq 0x3050
jmp 0x1b501
movq -0xc0(%rbp), %rdi
movl $0x4, 0x38(%rdi)
addq $0x60, %rdi
leaq 0x4603(%rip), %rsi      # 0x1fb1d
callq 0x32e0
jmp 0x1b521
jmp 0x1b523
movb -0xb1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x90(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3448
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x3448
movq -0x60(%rbp), %rdi
callq 0x33c0
nopw %cs:(%rax,%rax)