// File: /workspace/github_cpp_makefile_star2_O1/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 0x2412(%rip), %rsi      # 0x8243
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f30
leaq 0x2406(%rip), %rsi      # 0x824e
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f41
leaq 0x23ea(%rip), %rsi      # 0x8249
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f52
leaq 0x2699(%rip), %rsi      # 0x850f
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f63
leaq 0x23c7(%rip), %rsi      # 0x8254
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f74
leaq 0x23b6(%rip), %rsi      # 0x825a
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5f85
leaq 0x2659(%rip), %rsi      # 0x8514
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5fdb
leaq 0x2947(%rip), %rsi      # 0x8819
movq %r14, %rdi
callq 0x2050
testl %eax, %eax
je 0x5fec
leaq 0x2d46(%rip), %rsi      # 0x8c2f
movq %r14, %rdi
callq 0x2050
movq 0x80d8(%rip), %r14      # 0xdfd0
testl %eax, %eax
je 0x5ffd
leaq 0x2dfa(%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 0x6025
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x37e8
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3aee
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3b5a
movq %r15, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x3bc6
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x6056
movq %r15, %rdi
callq 0x3c44
movq %rsp, %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x7662
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x8027(%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 0x6025
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
jmp 0x6025
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x61d0
movq %rbx, %rdi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x6284
leaq 0x2c30(%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 0x604d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2150
movq %rbx, %rdi
callq 0x2220
nop