// File: /workspace/github_cpp_makefile_star2_O2/sagardoshi[P]NegotiationsEncounter/src/GameMaster.cpp
// Function: GameMaster::setUInput(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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::setUInput(string prompt, string goal1, string goal2) {

    // Simplify goals
    lower(goal1);
    lower(goal2);
    removeWS(goal1);
    removeWS(goal2);

    string output = "\n";
    createTitle('=', WIDTH, prompt, output);
    fillCleanUInput();
    if (uInput == "quit") return; // For every new entry, check for quit

    // Only worry about invalidity if goals not empty
    if (goal1 != "" || goal2 != "") {
        // Must remove situation of XOR, or else empty inputs will be accepted
        if (goal1 == "" && goal2 != "") goal1 = goal2;
        if (goal1 != "" && goal2 == "") goal2 = goal1;

        // Then if wrong input, note invalidity, and re-print prompt
        while (uInput != goal1 && uInput != goal2) {
            clearScreen();
            cout << "\nInvalid input. Try again.\n\n\n";
            output = ""; // Reset output
            createTitle('=', WIDTH, prompt, output);
            fillCleanUInput();
            if (uInput == "quit") return; // For every new entry, check for quit
        }
    }
    clearScreen();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
movq %rdx, %rsi
callq 0x4e6e
movq %r14, %rsi
callq 0x4e6e
movq %r15, %rsi
callq 0x4e9a
movq %r14, %rsi
callq 0x4e9a
leaq 0x7824(%rip), %rsi      # 0xc3b7
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x3860
leaq 0x38(%rsp), %rdi
movq %r12, 0x10(%rsp)
movq %r12, %rsi
callq 0x32b0
pushq $0x3d
popq %rsi
leaq 0x38(%rsp), %rcx
leaq 0x18(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x42aa
leaq 0x38(%rsp), %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x4ed2
leaq 0x70(%rbx), %r13
leaq 0x77a6(%rip), %rsi      # 0xc390
movq %r13, %rdi
callq 0x5c90
testb %al, %al
jne 0x4d2f
leaq 0x77b7(%rip), %rsi      # 0xc3b8
movq %r15, %rdi
callq 0x5cc6
testb %al, %al
jne 0x4c24
leaq 0x77a4(%rip), %rsi      # 0xc3b8
movq %r14, %rdi
callq 0x5cc6
testb %al, %al
je 0x4d27
leaq 0x778d(%rip), %rsi      # 0xc3b8
movq %r15, %rdi
callq 0x5c90
testb %al, %al
je 0x4c55
leaq 0x777a(%rip), %rsi      # 0xc3b8
movq %r14, %rdi
callq 0x5cc6
testb %al, %al
je 0x4c55
movq %r15, %rdi
movq %r14, %rsi
callq 0x3170
leaq 0x775c(%rip), %rsi      # 0xc3b8
movq %r15, %rdi
callq 0x5cc6
testb %al, %al
je 0x4c86
leaq 0x7749(%rip), %rsi      # 0xc3b8
movq %r14, %rdi
callq 0x5c90
testb %al, %al
je 0x4c86
movq %r14, %rdi
movq %r15, %rsi
callq 0x3170
leaq 0x18(%rsp), %rbp
leaq 0x58(%rsp), %r12
movq %r13, %rdi
movq %r15, %rsi
callq 0x5cd0
testb %al, %al
je 0x4d27
movq %r13, %rdi
movq %r14, %rsi
callq 0x5cd0
testb %al, %al
je 0x4d27
movq %rbx, %rdi
callq 0x442e
movq 0xe307(%rip), %rdi      # 0x12fc8
leaq 0x76d3(%rip), %rsi      # 0xc39b
callq 0x3210
movq %rbp, %rdi
leaq 0x76e1(%rip), %rsi      # 0xc3b8
callq 0x33c0
movq %r12, %rdi
movq 0x10(%rsp), %rsi
callq 0x32b0
movq %rbx, %rdi
pushq $0x3d
popq %rsi
movq %r12, %rcx
movq %rbp, %r8
pushq $0x1
popq %r9
callq 0x42aa
movq %r12, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x4ed2
movq %r13, %rdi
leaq 0x7678(%rip), %rsi      # 0xc390
callq 0x5c90
testb %al, %al
je 0x4c90
jmp 0x4d2f
movq %rbx, %rdi
callq 0x442e
leaq 0x18(%rsp), %rdi
callq 0x3130
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x4d5c
jmp 0x4d63
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x3130
jmp 0x4d66
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3380