// File: /workspace/github_cpp_makefile_star2_O2/sagardoshi[P]NegotiationsEncounter/src/Negotiator.cpp
// Function: Negotiator::rejectTerms(int, bool)
void Negotiator::rejectTerms(int turnsLeft, bool isPrologue) {


    string rejection = "";
    bool plural = (name == "Mosta and Pepita" ? true : false);

    rejection  = name + " reject" + (plural ? " " : "s ") + "your offer.";

    // You offered something at least
    if (generosityOfOffer > 0) rejection += " You take it back.";
    rejection += "\n\n";

    // So people aren't confused on their first level
    if (isPrologue) {
        handlePrologueRejection(turnsLeft, rejection);
        return;
    }

    // Try to give somewhat customised feedback after each rejected offer
    if (generosityOfOffer == 0) {
        rejection += "You offered nothing! Do you really expect that " + name;
        rejection += " would consider that?";
    } else if (generosityOfOffer > 0 && generosityOfOffer <= 0.5) {
        rejection += "It was far from acceptable to " + name;
        rejection += (plural ? "s. " : ". ");
        rejection += "Try looking for items that might\n";
        rejection += "be more valuable to " + name + " in particular.";
    } else if (generosityOfOffer > 0.5 && generosityOfOffer < 1) {
        if (amiability < 0.5) {  // offered 0.5 and 1; amiable opponent
            rejection += "A little off. Your offer was reasonable, but " + name;
            rejection += (plural ? " are " : " is ");
            rejection += "not easy to crack.\n";
            rejection += "Try a slightly bigger offer or select items that may";
            rejection += " appeal more to " + name + " in particular.";
        } else { // offered 0.5 and 1; non-amiable opponent
            rejection += "You just missed it! Your offer was reasonable, and ";
            rejection += name + (plural ? " are " : " is ");
            rejection += "relatively friendly.\n";
            rejection += "Try a slightly bigger offer or select items that may";
            rejection += " appeal more to " + name + " in particular.";
        }
    }

    // Note turns left
    rejection += "\n\nYou only have " + to_string(turnsLeft) + " more turn";
    rejection += (turnsLeft == 1 ? " " : "s ");
    rejection += "before " + name + "'s patience runs out.\n\n";

    // Flush out string
    std::cout << rejection;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %edx, %r13d
movl %esi, %r14d
movq %rdi, %r12
leaq 0x1b69(%rip), %rsi      # 0xc3b8
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3860
leaq 0x68(%r12), %rbx
leaq 0x1a6a(%rip), %rsi      # 0xc2d4
movq %rbx, %rdi
callq 0x5c90
movl %eax, %r15d
leaq 0x2b2d(%rip), %rdx      # 0xd3a9
leaq 0x68(%rsp), %rdi
movq %rbx, %rsi
callq 0x5cda
leaq 0x222e(%rip), %rax      # 0xcabe
leaq 0x1e38(%rip), %rdx      # 0xc6cf
testb %r15b, %r15b
cmovneq %rax, %rdx
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x5a9a
leaq 0x2afd(%rip), %rdx      # 0xd3b1
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rbp
movq %rbp, %rsi
callq 0x3270
movq %rbp, %rdi
callq 0x3130
leaq 0x48(%rsp), %rdi
callq 0x3130
leaq 0x68(%rsp), %rdi
callq 0x3130
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xa914
leaq 0x2ab3(%rip), %rsi      # 0xd3bd
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x1a9b(%rip), %rsi      # 0xc3b6
leaq 0x28(%rsp), %rdi
callq 0x33b0
testb %r13b, %r13b
je 0xa93c
leaq 0x28(%rsp), %rdx
movl %r14d, %esi
callq 0xa770
jmp 0xab38
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xa993
jp 0xa993
leaq 0x2a79(%rip), %rsi      # 0xd3d0
leaq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x2a7c(%rip), %rsi      # 0xd400
leaq 0x28(%rsp), %rdi
callq 0x33b0
jmp 0xaa54
jbe 0xab54
movss 0x18df(%rip), %xmm1     # 0xc280
ucomiss %xmm0, %xmm1
jb 0xab54
leaq 0x2a65(%rip), %rsi      # 0xd416
leaq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x2a57(%rip), %rax      # 0xd435
leaq 0x23ba(%rip), %rsi      # 0xcd9f
testb %r15b, %r15b
cmovneq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2a3c(%rip), %rsi      # 0xd439
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2a4d(%rip), %rsi      # 0xd45b
leaq 0x48(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x2a4e(%rip), %rdx      # 0xd470
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x48(%rsp), %rdi
callq 0x3130
leaq 0x68(%rsp), %rdi
movl %r14d, %esi
callq 0x5b3f
leaq 0x2af5(%rip), %rsi      # 0xd55d
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x8472
leaq 0x2af0(%rip), %rdx      # 0xd56e
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x48(%rsp), %rdi
callq 0x3130
leaq 0x68(%rsp), %rdi
callq 0x3130
cmpl $0x1, %r14d
leaq 0x1c0a(%rip), %rsi      # 0xc6cf
leaq 0x1ff2(%rip), %rax      # 0xcabe
cmoveq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x1ad5(%rip), %rsi      # 0xc5b6
leaq 0x48(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x2a84(%rip), %rdx      # 0xd579
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x48(%rsp), %rdi
callq 0x3130
movq 0x849a(%rip), %rdi      # 0x12fc8
leaq 0x28(%rsp), %rsi
callq 0x3200
leaq 0x28(%rsp), %rdi
callq 0x3130
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
ucomiss 0x1725(%rip), %xmm0     # 0xc280
jbe 0xaa54
movss 0x229f(%rip), %xmm1     # 0xce08
ucomiss %xmm0, %xmm1
jbe 0xaa54
movss 0x1706(%rip), %xmm0     # 0xc280
ucomiss 0x88(%r12), %xmm0
jbe 0xac35
leaq 0x28f0(%rip), %rsi      # 0xd480
leaq 0x8(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x28f1(%rip), %rax      # 0xd4ae
leaq 0x28f0(%rip), %rsi      # 0xd4b4
testb %r15b, %r15b
cmovneq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x28dd(%rip), %rsi      # 0xd4b9
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x28e0(%rip), %rsi      # 0xd4cd
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2904(%rip), %rsi      # 0xd502
leaq 0x48(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x285e(%rip), %rdx      # 0xd470
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
jmp 0xaa40
leaq 0x28d7(%rip), %rsi      # 0xd513
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2861(%rip), %rax      # 0xd4ae
leaq 0x2860(%rip), %rdx      # 0xd4b4
testb %r15b, %r15b
cmovneq %rax, %rdx
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x5cda
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
leaq 0x8(%rsp), %rdi
callq 0x3130
leaq 0x28bf(%rip), %rsi      # 0xd547
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2834(%rip), %rsi      # 0xd4cd
leaq 0x28(%rsp), %rdi
callq 0x33b0
leaq 0x2858(%rip), %rsi      # 0xd502
leaq 0x48(%rsp), %rdi
movq %rbx, %rdx
callq 0x5c1a
leaq 0x27b2(%rip), %rdx      # 0xd470
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x5a9a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33d0
jmp 0xaa40
jmp 0xad0b
jmp 0xad0b
jmp 0xad1a
jmp 0xad1a
jmp 0xad5b
jmp 0xad5b
jmp 0xacff
jmp 0xad5b
jmp 0xacff
jmp 0xad5b
jmp 0xad0b
jmp 0xad1a
jmp 0xad5b
jmp 0xacff
jmp 0xad5b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0xad52
jmp 0xad5b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3130
jmp 0xad1d
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0xad52
jmp 0xad5b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3130
jmp 0xad3e
jmp 0xad3b
jmp 0xad4a
jmp 0xad5b
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3130
jmp 0xad4d
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x3130
jmp 0xad5e
jmp 0xad5b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3380