// File: /workspace/github_cpp_makefile_star2_O1/DivyanshuSaxena[P]green-vrp/Vehicle.cpp
// Function: Vehicle::addCustomerCS(int, int)
bool Vehicle::capacityCondition(Customer customer) {
    double volumeCap = this->type==1 ? capVolType1 : capVolType2;
    double weightCap = this->type==2 ? capVolType1 : capVolType2;
    bool volume = (this->currentCapVol + customer.demandVol) <= volumeCap;
    bool weight = (this->currentCapWeight + customer.demandWeight) <= weightCap;
    return (volume && weight);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
xorpd %xmm0, %xmm0
movupd %xmm0, 0x38(%rsp)
movl %edx, 0x30(%rsp)
movslq 0x70(%rdi), %rax
leaq 0x64f9(%rip), %r12      # 0x91c8
movq (%r12), %r9
movq 0x8(%r12), %rcx
subq %r9, %rcx
sarq $0x3, %rcx
movabsq $-0x5555555555555555, %r15 # imm = 0xAAAAAAAAAAAAAAAB
imulq %r15, %rcx
cmpq %rax, %rcx
jbe 0x2fa7
movl %esi, %ebp
movq %rdi, %rbx
leaq (%rax,%rax,2), %r8
movslq %edx, %rsi
movq (%r9,%r8,8), %rdi
movq 0x8(%r9,%r8,8), %rcx
subq %rdi, %rcx
sarq $0x3, %rcx
cmpq %rsi, %rcx
jbe 0x2fbf
leaq 0x6476(%rip), %r13      # 0x9198
movq (%r13), %r10
movq 0x8(%r13), %rcx
subq %r10, %rcx
sarq $0x3, %rcx
imulq %r15, %rcx
cmpq %rax, %rcx
jbe 0x2fa7
movq (%r10,%r8,8), %r9
movq 0x8(%r10,%r8,8), %rax
subq %r9, %rax
sarq $0x3, %rax
cmpq %rsi, %rax
jbe 0x2fc8
movq 0x8(%rbx), %r10
movq 0x10(%rbx), %rax
movq %rax, %rcx
subq %r10, %rcx
sarq $0x3, %rcx
imulq %r15, %rcx
leaq -0x2(%rcx), %r8
cmpq $0x1, %rcx
jbe 0x2fd4
movsd (%rdi,%rsi,8), %xmm0
movsd (%r9,%rsi,8), %xmm1
movsd %xmm1, 0x8(%rsp)
leaq (%r8,%r8,2), %rcx
addsd 0x10(%r10,%rcx,8), %xmm0
leaq 0x30(%rsp), %rcx
movsd %xmm0, 0x8(%rcx)
leaq 0x64f0(%rip), %rsi      # 0x9298
addsd (%rsi), %xmm0
leaq 0x8(%rbx), %r14
movsd %xmm0, 0x10(%rcx)
movl %edx, 0x70(%rbx)
addq $-0x18, %rax
movq %r14, %rdi
movq %rax, %rsi
movq %rcx, %rdx
callq 0x35ea
xorpd %xmm0, %xmm0
movupd %xmm0, 0x20(%rsp)
movl %ebp, 0x18(%rsp)
movslq %ebp, %rsi
leaq 0x6416(%rip), %rax      # 0x91f8
movq (%rax), %rdi
movq 0x8(%rax), %rax
subq %rdi, %rax
sarq $0x3, %rax
movabsq $0x6db6db6db6db6db7, %rdx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rax, %rdx
cmpq %rsi, %rdx
jbe 0x2f9e
movslq 0x70(%rbx), %rax
movq (%r12), %r10
movq 0x8(%r12), %rdx
subq %r10, %rdx
sarq $0x3, %rdx
imulq %r15, %rdx
cmpq %rax, %rdx
jbe 0x2fb3
imulq $0x38, %rsi, %r8
movl (%rdi,%r8), %ecx
movslq %ecx, %rsi
leaq (%rax,%rax,2), %rcx
movq (%r10,%rcx,8), %r9
movq 0x8(%r10,%rcx,8), %rdx
subq %r9, %rdx
sarq $0x3, %rdx
cmpq %rsi, %rdx
jbe 0x2f9e
movq (%r13), %r11
movq 0x8(%r13), %rdx
subq %r11, %rdx
sarq $0x3, %rdx
imulq %r15, %rdx
cmpq %rax, %rdx
jbe 0x2fb3
movq (%r11,%rcx,8), %r10
movq 0x8(%r11,%rcx,8), %rdx
subq %r10, %rdx
sarq $0x3, %rdx
cmpq %rsi, %rdx
jbe 0x2f9e
movq 0x8(%rbx), %r11
movq 0x10(%rbx), %rax
movq %rax, %rdx
subq %r11, %rdx
sarq $0x3, %rdx
imulq %r15, %rdx
leaq -0x2(%rdx), %rcx
cmpq $0x1, %rdx
jbe 0x2fe8
movsd (%r9,%rsi,8), %xmm0
leaq (%rcx,%rcx,2), %rcx
addsd 0x10(%r11,%rcx,8), %xmm0
movsd 0x28(%rdi,%r8), %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0x8(%rsp), %xmm1
addsd (%r10,%rsi,8), %xmm1
movsd %xmm1, 0x8(%rsp)
leaq 0x18(%rsp), %r15
movsd %xmm0, 0x8(%r15)
leaq 0x6275(%rip), %rcx      # 0x9160
addsd (%rcx), %xmm0
movsd %xmm0, 0x10(%r15)
movl %esi, 0x70(%rbx)
addq $-0x18, %rax
movq %r14, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x35ea
movsd 0x8(%rsp), %xmm0
addsd 0x30(%rbx), %xmm0
movapd %xmm0, %xmm3
movsd %xmm0, 0x30(%rbx)
movsd 0x8(%r15), %xmm0
movsd 0x10(%rsp), %xmm4
movapd %xmm4, %xmm1
subsd %xmm0, %xmm1
leaq 0x636f(%rip), %rax      # 0x92a8
cvtsi2sdl (%rax), %xmm2
mulsd %xmm1, %xmm2
cmpltsd %xmm4, %xmm0
andpd %xmm2, %xmm0
addsd 0x38(%rbx), %xmm0
movsd %xmm0, 0x38(%rbx)
leaq 0x6355(%rip), %rax      # 0x92b0
movsd (%rax), %xmm1
addsd 0x28(%rbx), %xmm1
movsd %xmm1, 0x28(%rbx)
cmpl $0x1, (%rbx)
jne 0x2f77
leaq 0x62e3(%rip), %rax      # 0x9258
jmp 0x2f7e
leaq 0x62e2(%rip), %rax      # 0x9260
addsd %xmm0, %xmm3
addsd %xmm1, %xmm3
addsd (%rax), %xmm3
movsd %xmm3, 0x20(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3087(%rip), %rdi      # 0x602c
jmp 0x2fe1
leaq 0x307e(%rip), %rdi      # 0x602c
movq %rax, %rsi
jmp 0x2fde
leaq 0x3072(%rip), %rdi      # 0x602c
movq %rax, %rsi
jmp 0x2fe1
leaq 0x3066(%rip), %rdi      # 0x602c
jmp 0x2fde
leaq 0x305d(%rip), %rdi      # 0x602c
movq %rax, %rdx
jmp 0x2fe1
leaq 0x3051(%rip), %rdi      # 0x602c
movq %r8, %rsi
movq %rcx, %rdx
xorl %eax, %eax
callq 0x21e0
leaq 0x303d(%rip), %rdi      # 0x602c
movq %rcx, %rsi
jmp 0x2fe1