// File: pc260533[P]ITC313-TP2/client.cpp
// Function: Client::modifierQuantiteProduitSelectionne(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void Client::modifierQuantiteProduitSelectionne(std::string nomProduit, int nombreDeProduits) {
    if (nombreDeProduits > 0) {
        for (int i = 0; i < this->listeProduitsSelectionnes.size(); i++) {
            if (this->listeProduitsSelectionnes.at(i)->getTitreProduit() == nomProduit) {
                if (this->listeProduitsSelectionnes.at(i)->getQuantiteDisponibleProduit() != 0) {
                    if ((this->listeProduitsSelectionnes.at(i)->getQuantiteDisponibleProduit() < nombreDeProduits - this->listeQuantitesProduitsSelectionnes.at(i))) {
                        this->listeQuantitesProduitsSelectionnes.at(i) = this->listeProduitsSelectionnes.at(i)->getQuantiteDisponibleProduit() + this->listeQuantitesProduitsSelectionnes.at(i);
                    }
                    else {
                        this->listeProduitsSelectionnes.at(i)->setQuantiteDisponibleProduit(this->listeProduitsSelectionnes.at(i)->getQuantiteDisponibleProduit() - nombreDeProduits + this->listeQuantitesProduitsSelectionnes.at(i));
                        this->listeQuantitesProduitsSelectionnes.at(i) = nombreDeProduits;
                    }
                }
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rsi, -0x48(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x8e1a
movl $0x0, -0x18(%rbp)
movq -0x40(%rbp), %rdi
movslq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
addq $0x80, %rdi
callq 0xb250
movq %rax, %rcx
movq -0x50(%rbp), %rax
cmpq %rcx, %rax
jae 0x8e18
movq -0x40(%rbp), %rdi
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq (%rax), %rsi
leaq -0x38(%rbp), %rdi
callq 0x13010
movq -0x48(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0xb350
movb %al, -0x51(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4200
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x8cc0
jmp 0x8e08
movq -0x40(%rbp), %rdi
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq (%rax), %rdi
callq 0x130d0
cmpl $0x0, %eax
je 0x8e06
movq -0x40(%rbp), %rdi
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq (%rax), %rdi
callq 0x130d0
movq -0x40(%rbp), %rdi
movl %eax, -0x58(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x5c(%rbp)
addq $0x98, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb2b0
movl -0x5c(%rbp), %ecx
movq %rax, %rdx
movl -0x58(%rbp), %eax
subl (%rdx), %ecx
cmpl %ecx, %eax
jge 0x8d86
movq -0x40(%rbp), %rdi
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq (%rax), %rdi
callq 0x130d0
movq -0x40(%rbp), %rdi
movl %eax, -0x64(%rbp)
addq $0x98, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb2b0
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl -0x64(%rbp), %eax
addl (%rcx), %eax
movl %eax, -0x60(%rbp)
addq $0x98, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb2b0
movl -0x60(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x8e04
movq -0x40(%rbp), %rdi
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq -0x40(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x70(%rbp)
addq $0x80, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb270
movq (%rax), %rdi
callq 0x130d0
movq -0x40(%rbp), %rdi
subl -0x14(%rbp), %eax
movl %eax, -0x74(%rbp)
addq $0x98, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb2b0
movl -0x74(%rbp), %esi
movq -0x70(%rbp), %rdi
addl (%rax), %esi
callq 0x130f0
movq -0x40(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x68(%rbp)
addq $0x98, %rdi
movslq -0x18(%rbp), %rsi
callq 0xb2b0
movl -0x68(%rbp), %ecx
movl %ecx, (%rax)
jmp 0x8e06
jmp 0x8e08
jmp 0x8e0a
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x8c53
jmp 0x8e1a
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)