// File: 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
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movb %dl, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
andb $0x1, %al
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2a0(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x3520
movq -0x298(%rbp), %rdx
leaq 0x5036(%rip), %rsi      # 0x1c3c8
leaq -0x30(%rbp), %rdi
callq 0x3b80
jmp 0x1739d
leaq -0x31(%rbp), %rdi
callq 0x3350
movq -0x2a0(%rbp), %rdi
addq $0x68, %rdi
leaq 0x4f2c(%rip), %rsi      # 0x1c2e4
callq 0x8a80
movb %al, -0x2a1(%rbp)
jmp 0x173c5
movq -0x2a0(%rbp), %rsi
movb -0x2a1(%rbp), %al
andb $0x1, %al
movb %al, -0x45(%rbp)
addq $0x68, %rsi
leaq 0x5ff3(%rip), %rdx      # 0x1d3d5
leaq -0xa8(%rbp), %rdi
callq 0x8c30
jmp 0x173f0
movb -0x45(%rbp), %cl
leaq 0x56d4(%rip), %rax      # 0x1cace
leaq 0x52de(%rip), %rdx      # 0x1c6df
testb $0x1, %cl
cmovneq %rax, %rdx
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x8440
jmp 0x1741d
leaq 0x5fb9(%rip), %rdx      # 0x1d3dd
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x8440
jmp 0x17436
leaq -0x30(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3390
leaq -0x68(%rbp), %rdi
callq 0x3200
leaq -0x88(%rbp), %rdi
callq 0x3200
leaq -0xa8(%rbp), %rdi
callq 0x3200
movq -0x2a0(%rbp), %rax
movss 0x8c(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0x174f1
leaq 0x5f67(%rip), %rsi      # 0x1d3e9
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x1748d
jmp 0x174f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x3350
jmp 0x17bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17bd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x174e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3200
leaq -0xa8(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
leaq 0x4ece(%rip), %rsi      # 0x1c3c6
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17503
testb $0x1, -0xd(%rbp)
je 0x1752d
movq -0x2a0(%rbp), %rdi
movl -0xc(%rbp), %esi
leaq -0x30(%rbp), %rdx
callq 0x17250
jmp 0x1751e
movl $0x1, -0xac(%rbp)
jmp 0x17b3f
movq -0x2a0(%rbp), %rax
movss 0x8c(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x175b8
jp 0x175b8
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5ea4(%rip), %rsi      # 0x1d3fc
leaq -0xd0(%rbp), %rdi
callq 0x8970
jmp 0x17566
leaq -0x30(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x33e0
jmp 0x17578
leaq -0xd0(%rbp), %rdi
callq 0x3200
leaq 0x5ea1(%rip), %rsi      # 0x1d42c
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17596
jmp 0x17a1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq -0x2a0(%rbp), %rax
movss 0x8c(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0x1772a
movq -0x2a0(%rbp), %rax
movss 0x8c(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x5832(%rip), %xmm0     # 0x1ce20
ucomisd %xmm1, %xmm0
jb 0x1772a
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5e38(%rip), %rsi      # 0x1d442
leaq -0xf0(%rbp), %rdi
callq 0x8970
jmp 0x17618
leaq -0x30(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x33e0
jmp 0x1762a
leaq -0xf0(%rbp), %rdi
callq 0x3200
movb -0x45(%rbp), %cl
leaq 0x5e21(%rip), %rax      # 0x1d461
leaq 0x5768(%rip), %rsi      # 0x1cdaf
testb $0x1, %cl
cmovneq %rax, %rsi
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17659
leaq 0x5e05(%rip), %rsi      # 0x1d465
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x1766b
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5e0a(%rip), %rsi      # 0x1d487
leaq -0x130(%rbp), %rdi
callq 0x8970
jmp 0x1768b
leaq 0x5e0a(%rip), %rdx      # 0x1d49c
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x8440
jmp 0x176a7
leaq -0x30(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x33e0
jmp 0x176b9
leaq -0x110(%rbp), %rdi
callq 0x3200
leaq -0x130(%rbp), %rdi
callq 0x3200
jmp 0x17a19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17719
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x3200
leaq -0x130(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq -0x2a0(%rbp), %rax
movss 0x8c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56db(%rip), %xmm1     # 0x1ce20
ucomisd %xmm1, %xmm0
jbe 0x17a17
movq -0x2a0(%rbp), %rax
movss 0x56b6(%rip), %xmm0     # 0x1ce14
ucomiss 0x8c(%rax), %xmm0
jbe 0x17a17
movq -0x2a0(%rbp), %rax
movss 0x88(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x569a(%rip), %xmm0     # 0x1ce20
ucomisd %xmm1, %xmm0
jbe 0x178d4
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5d0a(%rip), %rsi      # 0x1d4ac
leaq -0x150(%rbp), %rdi
callq 0x8970
jmp 0x177b0
leaq -0x30(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x33e0
jmp 0x177c2
leaq -0x150(%rbp), %rdi
callq 0x3200
movb -0x45(%rbp), %cl
leaq 0x5d02(%rip), %rax      # 0x1d4da
leaq 0x5d01(%rip), %rsi      # 0x1d4e0
testb $0x1, %cl
cmovneq %rax, %rsi
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x177f1
leaq 0x5ced(%rip), %rsi      # 0x1d4e5
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17803
leaq 0x5cef(%rip), %rsi      # 0x1d4f9
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17815
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5d07(%rip), %rsi      # 0x1d52e
leaq -0x190(%rbp), %rdi
callq 0x8970
jmp 0x17835
leaq 0x5c60(%rip), %rdx      # 0x1d49c
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x8440
jmp 0x17851
leaq -0x30(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x33e0
jmp 0x17863
leaq -0x170(%rbp), %rdi
callq 0x3200
leaq -0x190(%rbp), %rdi
callq 0x3200
jmp 0x17a15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x178c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x3200
leaq -0x190(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
leaq 0x5c64(%rip), %rsi      # 0x1d53f
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x178e6
movq -0x2a0(%rbp), %rsi
addq $0x68, %rsi
movb -0x45(%rbp), %cl
leaq 0x5bdf(%rip), %rax      # 0x1d4da
leaq 0x5bde(%rip), %rdx      # 0x1d4e0
testb $0x1, %cl
cmovneq %rax, %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x8c30
jmp 0x17917
leaq -0x30(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x33e0
jmp 0x17929
leaq -0x1b0(%rbp), %rdi
callq 0x3200
leaq 0x5c37(%rip), %rsi      # 0x1d573
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17947
leaq 0x5bab(%rip), %rsi      # 0x1d4f9
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17959
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x5bc3(%rip), %rsi      # 0x1d52e
leaq -0x1f0(%rbp), %rdi
callq 0x8970
jmp 0x17979
leaq 0x5b1c(%rip), %rdx      # 0x1d49c
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x8440
jmp 0x17995
leaq -0x30(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x33e0
jmp 0x179a7
leaq -0x1d0(%rbp), %rdi
callq 0x3200
leaq -0x1f0(%rbp), %rdi
callq 0x3200
jmp 0x17a15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17a04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x3200
leaq -0x1f0(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
jmp 0x17a17
jmp 0x17a19
jmp 0x17a1b
movl -0xc(%rbp), %esi
leaq -0x250(%rbp), %rdi
callq 0x8620
jmp 0x17a2c
leaq 0x5b56(%rip), %rsi      # 0x1d589
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rdx
callq 0x11340
jmp 0x17a48
leaq 0x5b4b(%rip), %rdx      # 0x1d59a
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x8440
jmp 0x17a64
leaq -0x30(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x33e0
jmp 0x17a76
leaq -0x210(%rbp), %rdi
callq 0x3200
leaq -0x230(%rbp), %rdi
callq 0x3200
leaq -0x250(%rbp), %rdi
callq 0x3200
movl -0xc(%rbp), %eax
subl $0x1, %eax
leaq 0x5027(%rip), %rax      # 0x1cace
leaq 0x4c31(%rip), %rsi      # 0x1c6df
cmoveq %rax, %rsi
leaq -0x30(%rbp), %rdi
callq 0x32d0
jmp 0x17abd
movq -0x2a0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x4af7(%rip), %rsi      # 0x1c5c6
leaq -0x290(%rbp), %rdi
callq 0x8970
jmp 0x17add
leaq 0x5ac1(%rip), %rdx      # 0x1d5a5
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x8440
jmp 0x17af9
leaq -0x30(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x33e0
jmp 0x17b0b
leaq -0x270(%rbp), %rdi
callq 0x3200
leaq -0x290(%rbp), %rdi
callq 0x3200
movq 0xf496(%rip), %rdi      # 0x26fc0
leaq -0x30(%rbp), %rsi
callq 0x32b0
jmp 0x17b35
movl $0x0, -0xac(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3200
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17b91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17b85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x3200
leaq -0x230(%rbp), %rdi
callq 0x3200
leaq -0x250(%rbp), %rdi
callq 0x3200
jmp 0x17bd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17bc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x3200
leaq -0x290(%rbp), %rdi
callq 0x3200
leaq -0x30(%rbp), %rdi
callq 0x3200
movq -0x40(%rbp), %rdi
callq 0x3510
nopw %cs:(%rax,%rax)
nopl (%rax)