// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::export_driver_db(char const*)
void TaxiAgency::export_driver_db(const char* DRIVERS_FILE){
    ofstream File;
    File.open(DRIVERS_FILE);
    if(File.is_open()){
        File << "\"firtsname\",\"lastname\",\"uuid\",\"dln\",\"status\"\n";
        for(auto driver : driver_db){
            File << "\"" << driver.getFirstname() << "\",";
            File << "\"" << driver.getLastname() << "\",";
            File << "\"" << driver.getUUID() << "\",";
            File << "\"" << driver.getDLN() << "\",";
            File << "\"" << (driver.getStatus() == IDLE ? "IDLE" : "ONSHIFT") << "\"\n";
        }
        File.close();
    }else{
        throw runtime_error("File couldn't be resolved");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3c0, %rsp            # imm = 0x3C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x350(%rbp)
leaq -0x210(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x44a0
movq -0x348(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x10, %edx
callq 0x4060
jmp 0x267c8
leaq -0x210(%rbp), %rdi
callq 0x4250
movb %al, -0x351(%rbp)
jmp 0x267dc
movb -0x351(%rbp), %al
testb $0x1, %al
jne 0x267eb
jmp 0x26b85
leaq 0xb632(%rip), %rsi      # 0x31e24
leaq -0x210(%rbp), %rdi
callq 0x42d0
jmp 0x26800
movq -0x350(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rdi
callq 0x2a230
movq %rax, -0x230(%rbp)
movq -0x228(%rbp), %rdi
callq 0x2a260
movq %rax, -0x238(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x2a290
testb $0x1, %al
jne 0x26854
jmp 0x26b75
leaq -0x230(%rbp), %rdi
callq 0x2a2d0
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x2a2f0
jmp 0x26871
leaq 0xa141(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x360(%rbp)
jmp 0x2688d
leaq -0x2e0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x1e000
jmp 0x268a2
movq -0x360(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x4290
movq %rax, -0x368(%rbp)
jmp 0x268be
movq -0x368(%rbp), %rdi
leaq 0xb3fa(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x268d3
leaq -0x2e0(%rbp), %rdi
callq 0x41f0
leaq 0xa0d3(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x370(%rbp)
jmp 0x268fb
leaq -0x300(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x1e030
jmp 0x26910
movq -0x370(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x4290
movq %rax, -0x378(%rbp)
jmp 0x2692c
movq -0x378(%rbp), %rdi
leaq 0xb38c(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x26941
leaq -0x300(%rbp), %rdi
callq 0x41f0
leaq 0xa065(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x380(%rbp)
jmp 0x26969
leaq -0x320(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x2a0e0
jmp 0x2697e
movq -0x380(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x4290
movq %rax, -0x388(%rbp)
jmp 0x2699a
movq -0x388(%rbp), %rdi
leaq 0xb31e(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x269af
leaq -0x320(%rbp), %rdi
callq 0x41f0
leaq 0x9ff7(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x390(%rbp)
jmp 0x269d7
leaq -0x340(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x1ed90
jmp 0x269ec
movq -0x390(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x4290
movq %rax, -0x398(%rbp)
jmp 0x26a08
movq -0x398(%rbp), %rdi
leaq 0xb2b0(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x26a1d
leaq -0x340(%rbp), %rdi
callq 0x41f0
leaq 0x9f89(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x3a0(%rbp)
jmp 0x26a45
leaq -0x2c0(%rbp), %rdi
callq 0x1edc0
movl %eax, -0x3a4(%rbp)
jmp 0x26a59
movq -0x3a0(%rbp), %rdi
movl -0x3a4(%rbp), %eax
subl $0x1, %eax
leaq 0xb53e(%rip), %rax      # 0x31fae
leaq 0xb2ef(%rip), %rsi      # 0x31d66
cmoveq %rax, %rsi
callq 0x42d0
movq %rax, -0x3b0(%rbp)
jmp 0x26a89
movq -0x3b0(%rbp), %rdi
leaq 0xb435(%rip), %rsi      # 0x31ecc
callq 0x42d0
jmp 0x26a9e
leaq -0x2c0(%rbp), %rdi
callq 0x2a190
leaq -0x230(%rbp), %rdi
callq 0x2a360
jmp 0x26838
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
jmp 0x26bfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
jmp 0x26b64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x41f0
jmp 0x26b64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x41f0
jmp 0x26b64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x41f0
jmp 0x26b64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x340(%rbp), %rdi
callq 0x41f0
leaq -0x2c0(%rbp), %rdi
callq 0x2a190
jmp 0x26bfb
leaq -0x210(%rbp), %rdi
callq 0x43f0
jmp 0x26b83
jmp 0x26be6
movl $0x10, %edi
callq 0x41a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x3b8(%rbp)
leaq 0xafab(%rip), %rsi      # 0x31b4e
callq 0x4140
jmp 0x26baa
movq -0x3b8(%rbp), %rdi
movq 0x1f438(%rip), %rsi     # 0x45ff0
movq 0x1f3b1(%rip), %rdx     # 0x45f70
callq 0x44b0
jmp 0x26c13
movq -0x3b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
callq 0x4240
jmp 0x26bfb
leaq -0x210(%rbp), %rdi
callq 0x4420
addq $0x3c0, %rsp            # imm = 0x3C0
popq %rbp
retq
leaq -0x210(%rbp), %rdi
callq 0x4420
movq -0x218(%rbp), %rdi
callq 0x44f0
nopw %cs:(%rax,%rax)