// File: /workspace/github_cpp_makefile_star2_O3/venGaza[P]starwars/src/Game.cpp
// Function: Game::doAction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Map&)
void Game::doAction(string choice, Map& map) {
    if (choice == "north") {
        map.moveNorth();
    } else if (choice == "south") {
        map.moveSouth();
    } else if (choice == "east") {
        map.moveEast();
    } else if (choice == "west") {
        map.moveWest();
    } else if (choice == "items") {
        printItems();
    } else if (choice == "look") {
        cout << map.getLocation()->getRoomDescription() << endl << endl;
    } else if (choice == "lightsaber") {
        addLightsaber();
    } else if (choice == "paper") {
        addPaper();
    } else if (choice == "open") {
        cout << "You open the cell door and discover that the prisoner being held is the most famous wookie in the galaxy, Chewbacca! He lets out a thunderous grrrwaaaaaarggggh and heads off to kick some First Order butt!" << endl << endl;
        chewbaccaFree = true;
    } else {
        cout << "You decide to enter the med pod bay for a few minutes and your health is restored."
             << endl << endl;
        playerHealth = 50;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x241a(%rip), %rsi      # 0x8243
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f28
leaq 0x240e(%rip), %rsi      # 0x824e
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f39
leaq 0x23f2(%rip), %rsi      # 0x8249
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f4a
leaq 0x26a1(%rip), %rsi      # 0x850f
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f5b
leaq 0x23cf(%rip), %rsi      # 0x8254
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f6c
leaq 0x23be(%rip), %rsi      # 0x825a
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f7d
leaq 0x2661(%rip), %rsi      # 0x8514
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5fd3
leaq 0x294f(%rip), %rsi      # 0x8819
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5fe4
leaq 0x2d4e(%rip), %rsi      # 0x8c2f
movq %r14, %rdi
callq 0x2050
movq 0x80e0(%rip), %r14      # 0xdfd0
testl %eax, %eax
je 0x5ff5
leaq 0x2e02(%rip), %rsi      # 0x8d01
movl $0x52, %edx
movq %r14, %rdi
callq 0x2160
movq %r14, %rdi
callq 0x2090
movq %rax, %rdi
callq 0x2090
movl $0x32, 0x24(%rbx)
jmp 0x601d
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x37f0
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3ae8
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3b54
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3bc0
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x604e
movq %r15, %rdi
callq 0x3c3e
movq %rsp, %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x765e
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x802f(%rip), %rdi      # 0xdfd0
callq 0x2160
movq %rax, %rdi
callq 0x2090
movq %rax, %rdi
callq 0x2090
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x601d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
jmp 0x601d
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x61c8
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x627c
leaq 0x2c38(%rip), %rsi      # 0x8c34
movl $0xcc, %edx
movq %r14, %rdi
callq 0x2160
movq %r14, %rdi
callq 0x2090
movq %rax, %rdi
callq 0x2090
movb $0x1, 0x23(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6045
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
movq %rbx, %rdi
callq 0x2220
nop