// File: /workspace/github_cpp_makefile_star2_O1/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, %r15d
movq %rdi, %r12
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x26da(%rip), %rdx      # 0xf3b8
leaq 0x40(%rsp), %rdi
movq %rdx, %rsi
callq 0x290e
leaq 0x68(%r12), %rbp
leaq 0x25dd(%rip), %rsi      # 0xf2d4
movq %rbp, %rdi
callq 0x20c0
movl %eax, %r14d
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x68(%r12), %rsi
movq 0x70(%r12), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x687c
leaq 0x3680(%rip), %rsi      # 0x103a9
leaq 0x68(%rsp), %rdi
callq 0x23d0
testl %r14d, %r14d
leaq 0x2d81(%rip), %rax      # 0xfabe
leaq 0x298b(%rip), %rsi      # 0xf6cf
cmoveq %rax, %rsi
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x30(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xcd79
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xcd7f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x360f(%rip), %rsi      # 0x103b1
callq 0x23d0
movl %r14d, 0x64(%rsp)
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbp, %r14
cmpq %rcx, %rdx
je 0xcdd5
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xcddb
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %rbp
movq %rdx, 0x8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
movq %rbp, %rsi
callq 0x2280
movq (%rbp), %rdi
cmpq %rbx, %rdi
je 0xce18
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
movq %r14, %rbp
je 0xce37
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
movl %r15d, %r14d
je 0xce56
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xce79
leaq 0x354e(%rip), %rsi      # 0x103bd
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x2536(%rip), %rsi      # 0xf3b6
leaq 0x40(%rsp), %rdi
callq 0x23d0
testb %r13b, %r13b
je 0xcea1
leaq 0x40(%rsp), %rdx
movl %r14d, %esi
callq 0xcbf2
jmp 0xd3c4
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xcf06
jp 0xcf06
leaq 0x3514(%rip), %rsi      # 0x103d0
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6696
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xcef0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x3509(%rip), %rsi      # 0x10400
leaq 0x40(%rsp), %rdi
callq 0x23d0
jmp 0xd13a
jbe 0xcfd7
movss 0x236c(%rip), %xmm1     # 0xf280
ucomiss %xmm0, %xmm1
jb 0xcfd7
leaq 0x34f2(%rip), %rsi      # 0x10416
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6696
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xcf58
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x0, 0x64(%rsp)
leaq 0x34d1(%rip), %rax      # 0x10435
leaq 0x2e34(%rip), %rsi      # 0xfd9f
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x34b9(%rip), %rsi      # 0x10439
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x34ca(%rip), %rsi      # 0x1045b
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6696
leaq 0x34cb(%rip), %rsi      # 0x10470
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd0d7
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd0dd
ucomiss 0x22a2(%rip), %xmm0     # 0xf280
jbe 0xd13a
movss 0x2e1c(%rip), %xmm1     # 0xfe08
ucomiss %xmm0, %xmm1
jbe 0xd13a
movss 0x2283(%rip), %xmm0     # 0xf280
ucomiss 0x88(%r12), %xmm0
jbe 0xd3f2
leaq 0x346d(%rip), %rsi      # 0x10480
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6696
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd047
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x0, 0x64(%rsp)
leaq 0x345b(%rip), %rax      # 0x104ae
leaq 0x345a(%rip), %rsi      # 0x104b4
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x344a(%rip), %rsi      # 0x104b9
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x344d(%rip), %rsi      # 0x104cd
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x3471(%rip), %rsi      # 0x10502
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6696
leaq 0x33cb(%rip), %rsi      # 0x10470
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd4cb
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd4d1
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd11e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd13a
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movl %r14d, %r15d
negl %r15d
cmovsl %r14d, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0xd19a
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r15d, %ecx
cmpl $0x63, %ecx
jbe 0xd191
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd197
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd19a
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd15e
addl $-0x3, %r12d
jmp 0xd19a
addl $-0x2, %r12d
jmp 0xd19a
decl %r12d
movq %rbx, %r13
movl %r14d, %ebx
shrl $0x1f, %ebx
leal (%r12,%rbx), %esi
leaq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0x2270
movl %ebx, %edi
leaq 0x68(%rsp), %rbx
addq (%rbx), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x680e
leaq 0x3383(%rip), %rcx      # 0x1055d
movl $0x10, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2250
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r13, %rbx
je 0xd217
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xd21d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x332e(%rip), %rsi      # 0x1056e
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd266
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd26c
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd2ad
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd2c9
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xd2e5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x1, %r14d
leaq 0x23df(%rip), %rsi      # 0xf6cf
leaq 0x27c7(%rip), %rax      # 0xfabe
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x22aa(%rip), %rsi      # 0xf5b6
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6696
leaq 0x3259(%rip), %rsi      # 0x10579
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd34b
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd351
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd392
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd3ae
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x7c11(%rip), %rdi      # 0x14fd0
callq 0x2260
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xd3e0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2210
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x311a(%rip), %rsi      # 0x10513
leaq 0x40(%rsp), %rdi
callq 0x23d0
movq %rsp, %rdi
movq %rbx, (%rdi)
movq 0x68(%r12), %rsi
movq 0x70(%r12), %rdx
addq %rsi, %rdx
callq 0x687c
cmpl $0x0, 0x64(%rsp)
leaq 0x3087(%rip), %rax      # 0x104ae
leaq 0x3086(%rip), %rsi      # 0x104b4
cmoveq %rax, %rsi
movq %rsp, %rdi
callq 0x23d0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd463
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x30dd(%rip), %rsi      # 0x10547
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x3052(%rip), %rsi      # 0x104cd
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x3076(%rip), %rsi      # 0x10502
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6696
leaq 0x2fd0(%rip), %rsi      # 0x10470
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd501
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd507
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
jmp 0xd108
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
jmp 0xd108
jmp 0xd58b
jmp 0xd58b
jmp 0xd5a9
jmp 0xd62e
jmp 0xd5a9
jmp 0xd62e
jmp 0xd569
jmp 0xd569
jmp 0xd62e
jmp 0xd569
jmp 0xd62e
jmp 0xd58b
jmp 0xd5a9
jmp 0xd62e
jmp 0xd569
jmp 0xd62e
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
je 0xd631
movq 0x10(%rsp), %rsi
jmp 0xd622
jmp 0xd62e
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
je 0xd5ac
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd5ac
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd631
movq 0x30(%rsp), %rsi
jmp 0xd622
jmp 0xd62e
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
je 0xd5eb
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd5eb
jmp 0xd5e8
jmp 0xd60b
jmp 0xd62e
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd60e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd60e
jmp 0xd60b
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xd631
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd631
jmp 0xd62e
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xd64d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2210
movq %rbx, %rdi
callq 0x2390
nop