// File: /workspace/github_cpp_makefile_star2_O3/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 0x25f6(%rip), %rdx      # 0xf3fc
leaq 0x40(%rsp), %rdi
movq %rdx, %rsi
callq 0x290e
leaq 0x68(%r12), %rbp
leaq 0x24f9(%rip), %rsi      # 0xf318
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 0x6a38
leaq 0x3598(%rip), %rsi      # 0x103e9
leaq 0x68(%rsp), %rdi
callq 0x23d0
testl %r14d, %r14d
leaq 0x2c99(%rip), %rax      # 0xfafe
leaq 0x28a3(%rip), %rsi      # 0xf70f
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 0xcea1
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xcea7
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 0x3527(%rip), %rsi      # 0x103f1
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 0xcefd
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xcf03
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 0xcf40
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
movq %r14, %rbp
je 0xcf5f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
movl %r15d, %r14d
je 0xcf7e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0xcfa1
leaq 0x3466(%rip), %rsi      # 0x103fd
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x2452(%rip), %rsi      # 0xf3fa
leaq 0x40(%rsp), %rdi
callq 0x23d0
testb %r13b, %r13b
je 0xcfc9
leaq 0x40(%rsp), %rdx
movl %r14d, %esi
callq 0xcd1a
jmp 0xd4eb
movss 0x8c(%r12), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0xd033
jp 0xd033
leaq 0x342c(%rip), %rsi      # 0x10410
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6852
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd01d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x341c(%rip), %rsi      # 0x10440
leaq 0x40(%rsp), %rdi
callq 0x23d0
jmp 0xd267
jbe 0xd104
movss 0x223f(%rip), %xmm1     # 0xf280
ucomiss %xmm0, %xmm1
jb 0xd104
leaq 0x3405(%rip), %rsi      # 0x10456
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6852
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd085
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x0, 0x64(%rsp)
leaq 0x33e4(%rip), %rax      # 0x10475
leaq 0x2d47(%rip), %rsi      # 0xfddf
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x33cc(%rip), %rsi      # 0x10479
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x33dd(%rip), %rsi      # 0x1049b
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6852
leaq 0x33de(%rip), %rsi      # 0x104b0
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd204
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd20a
ucomiss 0x2175(%rip), %xmm0     # 0xf280
jbe 0xd267
movss 0x2d2f(%rip), %xmm1     # 0xfe48
ucomiss %xmm0, %xmm1
jbe 0xd267
movss 0x2156(%rip), %xmm0     # 0xf280
ucomiss 0x88(%r12), %xmm0
jbe 0xd519
leaq 0x3380(%rip), %rsi      # 0x104c0
movq %rsp, %rdi
movq %rbp, %rdx
callq 0x6852
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd174
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x0, 0x64(%rsp)
leaq 0x336e(%rip), %rax      # 0x104ee
leaq 0x336d(%rip), %rsi      # 0x104f4
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x335d(%rip), %rsi      # 0x104f9
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x3360(%rip), %rsi      # 0x1050d
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x3384(%rip), %rsi      # 0x10542
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6852
leaq 0x32de(%rip), %rsi      # 0x104b0
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd5f2
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd5f8
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 0xd24b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd267
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movl %r14d, %r15d
negl %r15d
cmovsl %r14d, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0xd2c7
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r15d, %ecx
cmpl $0x63, %ecx
jbe 0xd2be
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd2c4
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd2c7
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd28b
addl $-0x3, %r12d
jmp 0xd2c7
addl $-0x2, %r12d
jmp 0xd2c7
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 0x69ca
leaq 0x3296(%rip), %rcx      # 0x1059d
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 0xd344
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xd34a
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 0x3241(%rip), %rsi      # 0x105ae
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd393
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd399
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 0xd3da
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd3f6
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xd412
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
cmpl $0x1, %r14d
leaq 0x22f2(%rip), %rsi      # 0xf70f
leaq 0x26da(%rip), %rax      # 0xfafe
cmoveq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x21bd(%rip), %rsi      # 0xf5f6
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6852
leaq 0x316c(%rip), %rsi      # 0x105b9
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0xd478
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd481
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rbx, %rsi
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
callq 0x20d0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xd4b9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd4d5
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x7aea(%rip), %rdi      # 0x14fd0
callq 0x2260
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xd507
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 0x3033(%rip), %rsi      # 0x10553
leaq 0x40(%rsp), %rdi
callq 0x23d0
movq %rsp, %rdi
movq %rbx, (%rdi)
movq 0x68(%r12), %rsi
movq 0x70(%r12), %rdx
addq %rsi, %rdx
callq 0x6a38
cmpl $0x0, 0x64(%rsp)
leaq 0x2fa0(%rip), %rax      # 0x104ee
leaq 0x2f9f(%rip), %rsi      # 0x104f4
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 0xd58a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x2ff6(%rip), %rsi      # 0x10587
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x2f6b(%rip), %rsi      # 0x1050d
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x2f8f(%rip), %rsi      # 0x10542
leaq 0x20(%rsp), %rdi
movq %rbp, %rdx
callq 0x6852
leaq 0x2ee9(%rip), %rsi      # 0x104b0
leaq 0x20(%rsp), %rdi
callq 0x23d0
movq %rbx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd628
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xd62e
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 0xd235
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 0xd235
jmp 0xd6c9
jmp 0xd6c9
jmp 0xd6e7
jmp 0xd76c
jmp 0xd6e7
jmp 0xd76c
jmp 0xd68c
jmp 0xd68c
jmp 0xd76c
jmp 0xd68c
jmp 0xd76c
jmp 0xd6c9
jmp 0xd6e7
jmp 0xd76c
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
jne 0xd6ba
jmp 0xd76f
jmp 0xd76c
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd76f
movq 0x10(%rsp), %rsi
jmp 0xd760
jmp 0xd76c
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
je 0xd6ea
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd6ea
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd76f
movq 0x30(%rsp), %rsi
jmp 0xd760
jmp 0xd76c
movq %rbx, %rcx
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rcx, %rdi
je 0xd729
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd729
jmp 0xd726
jmp 0xd749
jmp 0xd76c
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xd74c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd74c
jmp 0xd749
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xd76f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xd76f
jmp 0xd76c
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0xd78b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2210
movq %rbx, %rdi
callq 0x2390
nop