// File: /workspace/github_cpp_makefile_star2_O3/sagardoshi[P]NegotiationsEncounter/src/Negotiator.cpp
// Function: Negotiator::acceptTerms()
void Negotiator::acceptTerms() {

    string acceptance = "You think over the encounter you just had.\n\n";

    // Try to give somewhat customised feedback after each rejected offer
    if (generosityOfOffer > 1.5) {
        acceptance += "Your offer was far too generous! " + name + " ";
        acceptance += "would have accepted a much\n";
        acceptance += "lower offer, if you had a way to give it. ";
        acceptance += "You have progressed ";
        acceptance += "onward in your\njourney, but you may find ";
        acceptance += "yourself short of inventory in the future, having\n";
        acceptance += "given away what you have here.\n\n";
        acceptance += "Nevertheless, you survive to fight ";
        acceptance += "another day. Well done!\n";
    } else if (generosityOfOffer >= 1 && generosityOfOffer <= 1.5) {
        acceptance += "Your offer was generous. A little more, even, ";
        acceptance += "than what may have sufficed.\n";
        acceptance += "Manage your inventory carefully in future ";
        acceptance += "encounters.\n\n";
        acceptance += "Still, you survive to fight ";
        acceptance += "another day. Well done!\n";
    }
     else if (generosityOfOffer >= 0.5 && generosityOfOffer < 0.75) {
        acceptance += "Wow, you drove an extremely hard bargain and won! ";
        acceptance += "Very, very impressive. You've\nmoved along efficiently ";
        acceptance += "and set yourself up well for the future. Well done!\n";
    } else if (generosityOfOffer >= 0.75 && generosityOfOffer < 1.0) {
        acceptance += "You made a solid offer and won the day. ";
        acceptance += "It's up to you now to continue to manage\nyour stock ";
        acceptance += "efficiently and get out of here safely. Well done!\n";
    } else {
        acceptance += "It's impossible to win the way you did, so you must ";
        acceptance += "be a superuser. All hail\n";
        acceptance += "the superuser. Happy supering.\n";
    }

    std::cout << acceptance << endl;

}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x60, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x345a(%rip), %rsi      # 0xfe54
leaq 0x347f(%rip), %rdx      # 0xfe80
movq %rsp, %rdi
callq 0x290e
movss 0x8c(%rbx), %xmm0
ucomiss 0x3434(%rip), %xmm0     # 0xfe4c
jbe 0xca71
addq $0x68, %rbx
leaq 0x345c(%rip), %rsi      # 0xfe81
leaq 0x40(%rsp), %rdi
movq %rbx, %rdx
callq 0x6852
leaq 0x30c5(%rip), %rsi      # 0xfafe
leaq 0x40(%rsp), %rdi
callq 0x23d0
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xcb17
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xcb1e
ucomiss 0x33d0(%rip), %xmm0     # 0xfe48
jb 0xcacf
movss 0x33ca(%rip), %xmm1     # 0xfe4c
ucomiss %xmm0, %xmm1
jb 0xcacf
leaq 0x352c(%rip), %rsi      # 0xffba
movq %rsp, %rdi
callq 0x23d0
leaq 0x354c(%rip), %rsi      # 0xffe9
movq %rsp, %rdi
callq 0x23d0
leaq 0x355b(%rip), %rsi      # 0x10007
movq %rsp, %rdi
callq 0x23d0
leaq 0x3577(%rip), %rsi      # 0x10032
movq %rsp, %rdi
callq 0x23d0
leaq 0x3576(%rip), %rsi      # 0x10040
jmp 0xcbdb
ucomiss 0x27aa(%rip), %xmm0     # 0xf280
jb 0xcc51
movss 0x336c(%rip), %xmm1     # 0xfe50
ucomiss %xmm0, %xmm1
jbe 0xcc51
leaq 0x3569(%rip), %rsi      # 0x1005d
movq %rsp, %rdi
callq 0x23d0
leaq 0x358d(%rip), %rsi      # 0x10090
movq %rsp, %rdi
callq 0x23d0
leaq 0x35b5(%rip), %rsi      # 0x100c7
jmp 0xcbea
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %rsp, %rdi
callq 0x20d0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xcb5f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xcb7a
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x3322(%rip), %rsi      # 0xfea3
movq %rsp, %rdi
callq 0x23d0
leaq 0x332f(%rip), %rsi      # 0xfebf
movq %rsp, %rdi
callq 0x23d0
leaq 0x334b(%rip), %rsi      # 0xfeea
movq %rsp, %rdi
callq 0x23d0
leaq 0x3351(%rip), %rsi      # 0xfeff
movq %rsp, %rdi
callq 0x23d0
leaq 0x336c(%rip), %rsi      # 0xff29
movq %rsp, %rdi
callq 0x23d0
leaq 0x3390(%rip), %rsi      # 0xff5c
movq %rsp, %rdi
callq 0x23d0
leaq 0x33a2(%rip), %rsi      # 0xff7d
movq %rsp, %rdi
callq 0x23d0
leaq 0x33b7(%rip), %rsi      # 0xffa1
movq %rsp, %rdi
callq 0x23d0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x83ce(%rip), %rdi      # 0x14fd0
callq 0x2260
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2170
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xcc47
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
addq $0x60, %rsp
popq %rbx
popq %r14
popq %r15
retq
ucomiss 0x31f8(%rip), %xmm0     # 0xfe50
jb 0xcc91
movss 0x31e6(%rip), %xmm1     # 0xfe48
ucomiss %xmm0, %xmm1
jbe 0xcc91
leaq 0x348e(%rip), %rsi      # 0x100fc
movq %rsp, %rdi
callq 0x23d0
leaq 0x34a8(%rip), %rsi      # 0x10125
movq %rsp, %rdi
callq 0x23d0
leaq 0x34ce(%rip), %rsi      # 0x1015a
jmp 0xcbea
leaq 0x34f6(%rip), %rsi      # 0x1018e
movq %rsp, %rdi
callq 0x23d0
leaq 0x351c(%rip), %rsi      # 0x101c3
movq %rsp, %rdi
callq 0x23d0
leaq 0x3527(%rip), %rsi      # 0x101dd
jmp 0xcbea
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xccda
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xccda
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xccfc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0xccfc
jmp 0xccf9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xcd12
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
movq %rbx, %rdi
callq 0x2390