// File: sagardoshi[P]NegotiationsEncounter/src/GameMaster.cpp
// Function: GameMaster::handleSpecificInput(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void GameMaster::handleSpecificInput(string line, string &output) {
    cout << output << endl << endl; // Flush output thus far

    const int ASTERISKS_NEEDED = 3;
    int newLength = line.length() - ASTERISKS_NEEDED - ASTERISKS_NEEDED;

    string targetInput = line.substr(ASTERISKS_NEEDED, newLength);
    string prompt = "Type \"" + targetInput + "\"";

    setUInput(prompt, targetInput);
    if (uInput == "quit") return; // For every new entry, check for quit

    // Once inventory typed, display it
    if (targetInput == "inventory") player->printInv();

    output = ""; // Reset output
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rsi, -0x108(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rsi
movq 0x2039c(%rip), %rdi     # 0x26fc0
callq 0x32b0
movq %rax, %rdi
movq 0x20375(%rip), %rsi     # 0x26fa8
movq %rsi, -0x110(%rbp)
callq 0x3330
movq -0x110(%rbp), %rsi
movq %rax, %rdi
callq 0x3330
movq -0x108(%rbp), %rdi
movl $0x3, -0x1c(%rbp)
callq 0x3470
movq -0x108(%rbp), %rsi
addl $-0x6, %eax
movl %eax, -0x20(%rbp)
movslq -0x20(%rbp), %rcx
leaq -0x40(%rbp), %rdi
movq %rdi, -0x100(%rbp)
movl $0x3, %edx
callq 0x3310
movq -0x100(%rbp), %rdx
leaq 0x156dd(%rip), %rsi     # 0x1c372
leaq -0x80(%rbp), %rdi
callq 0x8970
jmp 0x6ca0
leaq 0x156d0(%rip), %rdx     # 0x1c377
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x8440
jmp 0x6cb6
leaq -0x80(%rbp), %rdi
callq 0x3200
leaq -0xb0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3170
jmp 0x6cd1
leaq -0xd0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3170
jmp 0x6ce3
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x3520
movq -0x120(%rbp), %rdx
leaq 0x156c4(%rip), %rsi     # 0x1c3c8
leaq -0xf0(%rbp), %rdi
callq 0x3b80
jmp 0x6d12
movq -0x118(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
leaq -0xf0(%rbp), %rcx
callq 0x6430
jmp 0x6d35
leaq -0xf0(%rbp), %rdi
callq 0x3200
leaq -0xf1(%rbp), %rdi
callq 0x3350
leaq -0xd0(%rbp), %rdi
callq 0x3200
leaq -0xb0(%rbp), %rdi
callq 0x3200
movq -0x118(%rbp), %rdi
addq $0x70, %rdi
leaq 0x15629(%rip), %rsi     # 0x1c3a0
callq 0x8a80
movb %al, -0x121(%rbp)
jmp 0x6d84
movb -0x121(%rbp), %al
testb $0x1, %al
jne 0x6d93
jmp 0x6e5c
movl $0x1, -0xf8(%rbp)
jmp 0x6eb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6edb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3200
jmp 0x6edb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6ed2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6e4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x6e36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3200
leaq -0xf1(%rbp), %rdi
callq 0x3350
leaq -0xd0(%rbp), %rdi
callq 0x3200
leaq -0xb0(%rbp), %rdi
callq 0x3200
jmp 0x6ed2
leaq 0x15566(%rip), %rsi     # 0x1c3c9
leaq -0x40(%rbp), %rdi
callq 0x8a80
movb %al, -0x122(%rbp)
jmp 0x6e74
movb -0x122(%rbp), %al
testb $0x1, %al
jne 0x6e80
jmp 0x6e9b
movq -0x118(%rbp), %rax
movq 0x90(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12c20
jmp 0x6e99
jmp 0x6e9b
movq -0x18(%rbp), %rdi
leaq 0x15522(%rip), %rsi     # 0x1c3c8
callq 0x3400
jmp 0x6ead
movl $0x0, -0xf8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3200
leaq -0x40(%rbp), %rdi
callq 0x3200
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
leaq -0x60(%rbp), %rdi
callq 0x3200
leaq -0x40(%rbp), %rdi
callq 0x3200
movq -0x88(%rbp), %rdi
callq 0x3510