// File: /workspace/github_cpp_makefile_star2_O1/Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::export_customer_db(char const*)
void TaxiAgency::export_customer_db(const char* CUSTOMERS_FILE){
    srand(time(NULL));
    ofstream File;
    File.open(CUSTOMERS_FILE);
    if(File.is_open()){
        File << "\"firtsname\",\"lastname\",\"uuid\",\"balance\",\"status\"\n";
        for(auto customer : customer_db){
            File << "\"" << customer.getFirstname() << "\",";
            File << "\"" << customer.getLastname() << "\",";
            File << "\"" << customer.getUUID() << "\",";
            File << customer.getBalance() << ",";
            File << "\"" << (customer.getStatus() == IDLE ? "IDLE" : "ONSHIFT") << "\"\n";
        }
        File.close();
    }else{
        throw runtime_error("File couldn't be resolved");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x298, %rsp            # imm = 0x298
movq %rsi, %r14
movq %rdi, %r12
xorl %edi, %edi
callq 0x4270
movl %eax, %edi
callq 0x4290
leaq -0x2b8(%rbp), %r15
movq %r15, %rdi
callq 0x4430
movq %r15, %rdi
movq %r14, %rsi
movl $0x10, %edx
callq 0x4060
leaq -0x248(%rbp), %rdi
callq 0x40d0
testb %al, %al
je 0x14266
leaq 0x7a43(%rip), %rsi      # 0x1b9c5
leaq -0x2b8(%rbp), %rdi
movl $0x31, %edx
callq 0x4320
movq 0x30(%r12), %rbx
movq 0x38(%r12), %rax
movq %rax, -0xb8(%rbp)
cmpq %rax, %rbx
je 0x14212
leaq -0x38(%rbp), %r15
leaq 0x61e5(%rip), %r12      # 0x1a19d
leaq -0x2b8(%rbp), %r13
leaq 0x7957(%rip), %r14      # 0x1b91d
leaq -0xa0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0xb0(%rbp), %rdi
callq 0xf530
leaq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
leaq -0x90(%rbp), %rdi
callq 0xf530
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq 0x40(%rbx), %rsi
movq 0x48(%rbx), %rdx
addq %rsi, %rdx
leaq -0x70(%rbp), %rdi
callq 0xf530
movq 0x60(%rbx), %rax
movq %rax, -0x50(%rbp)
movl $0x1, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x4320
movq %r15, -0x48(%rbp)
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0xf530
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r13, %rdi
callq 0x4320
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x1408c
callq 0x4280
movl $0x1, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x4320
movq %r15, -0x48(%rbp)
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0xf530
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r13, %rdi
callq 0x4320
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x140e8
callq 0x4280
movl $0x1, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x4320
movq %r15, -0x48(%rbp)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0xf530
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r13, %rdi
callq 0x4320
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x1413e
callq 0x4280
leaq -0xb0(%rbp), %rdi
callq 0x104a4
movq %r13, %rdi
movl %eax, %esi
callq 0x4460
movl $0x1, %edx
movq %rax, %rdi
leaq 0x77bb(%rip), %rsi      # 0x1b91e
callq 0x4320
movl $0x1, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x4320
leaq -0xb0(%rbp), %rdi
callq 0x1049a
xorl %ecx, %ecx
cmpl $0x1, %eax
setne %cl
leaq 0x782a(%rip), %rsi      # 0x1b9bd
leaq 0x7a6b(%rip), %rax      # 0x1bc05
cmoveq %rax, %rsi
leaq (%rcx,%rcx,2), %rdx
addq $0x4, %rdx
movq %r13, %rdi
callq 0x4320
movl $0x2, %edx
movq %r13, %rdi
leaq 0x7966(%rip), %rsi      # 0x1bb23
callq 0x4320
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x141d4
callq 0x4280
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x141e9
callq 0x4280
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x14201
callq 0x4280
addq $0x68, %rbx
cmpq -0xb8(%rbp), %rbx
jne 0x13fc6
leaq -0x2b8(%rbp), %rdi
callq 0x43a0
movq 0xed33(%rip), %rax      # 0x22f58
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x2b0(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x2b8(%rbp,%rcx)
callq 0x4250
leaq -0x1c0(%rbp), %rdi
callq 0x4110
addq $0x298, %rsp            # imm = 0x298
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x4170
movq %rax, %r14
leaq 0x752b(%rip), %rsi      # 0x1b7a5
movq %rax, %rdi
callq 0x4140
movq 0xed5f(%rip), %rsi      # 0x22fe8
movq 0xece0(%rip), %rdx      # 0x22f70
movq %r14, %rdi
callq 0x4440
movq %rax, %rbx
movq %r14, %rdi
callq 0x4220
jmp 0x1430f
jmp 0x142a7
movq %rax, %rbx
jmp 0x1430f
movq %rax, %rbx
jmp 0x142c9
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x142c9
callq 0x4280
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x1430f
callq 0x4280
jmp 0x1430f
jmp 0x14300
jmp 0x14300
jmp 0x14300
jmp 0x142ed
jmp 0x142ed
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x14303
callq 0x4280
jmp 0x14303
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x101b8
leaq -0x2b8(%rbp), %rdi
callq 0x43d0
movq %rbx, %rdi
callq 0x4490
nop