// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::export_shift_history(char const*)
void TaxiAgency::export_shift_history(const char* SHIFT_HISTORY_FILE){
    ofstream File;
    File.open(SHIFT_HISTORY_FILE);
    if(File.is_open()){
        File << "\"customer_uuid\",\"driver_uuid\",\"taxi_id\",\"running_kms\",\"waiting_hours\",\"total_cost\"\n";
        for(list<Shift>::iterator shift = shift_history.begin(); shift != shift_history.end(); ++shift){
            File << "\"" << shift->getCustomerUUID() << "\",";
            File << "\"" << shift->getDriverUUID() << "\",";
            File << "\"" << shift->getCarID() << "\",";
            File << shift->getFareAmount() << ",";
            File << shift->getWaitingCharges() << ",";
            File << shift->getRunningKms() << ",";
            File << shift->getWaitingHours() << ",";
            File << shift->getTotalCost() << "\n";
        }
        File.close();
    }else{
        throw runtime_error("File couldn't be resolved");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2f0, %rsp            # imm = 0x2F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x210(%rbp), %rdi
movq %rdi, -0x238(%rbp)
callq 0x44a0
movq -0x238(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x10, %edx
callq 0x4060
jmp 0x277f8
leaq -0x210(%rbp), %rdi
callq 0x4250
movb %al, -0x241(%rbp)
jmp 0x2780c
movb -0x241(%rbp), %al
testb $0x1, %al
jne 0x2781b
jmp 0x27b82
leaq 0xa630(%rip), %rsi      # 0x31e52
leaq -0x210(%rbp), %rdi
callq 0x42d0
jmp 0x27830
movq -0x240(%rbp), %rdi
addq $0x60, %rdi
callq 0x2aa60
movq %rax, -0x228(%rbp)
movq -0x240(%rbp), %rdi
addq $0x60, %rdi
callq 0x2aac0
movq %rax, -0x230(%rbp)
leaq -0x228(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x2aa90
testb $0x1, %al
jne 0x2787a
jmp 0x27b72
leaq 0x9138(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x250(%rbp)
jmp 0x27896
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fab0
movq %rax, -0x258(%rbp)
jmp 0x278b3
movq -0x258(%rbp), %rsi
movq -0x250(%rbp), %rdi
callq 0x4290
movq %rax, -0x260(%rbp)
jmp 0x278cf
movq -0x260(%rbp), %rdi
leaq 0xa3e9(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x278e4
leaq 0x90ce(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x268(%rbp)
jmp 0x27900
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fa90
movq %rax, -0x270(%rbp)
jmp 0x2791d
movq -0x270(%rbp), %rsi
movq -0x268(%rbp), %rdi
callq 0x4290
movq %rax, -0x278(%rbp)
jmp 0x27939
movq -0x278(%rbp), %rdi
leaq 0xa37f(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x2794e
leaq 0x9064(%rip), %rsi      # 0x309b9
leaq -0x210(%rbp), %rdi
callq 0x42d0
movq %rax, -0x280(%rbp)
jmp 0x2796a
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fac0
movq %rax, -0x288(%rbp)
jmp 0x27987
movq -0x288(%rbp), %rsi
movq -0x280(%rbp), %rdi
callq 0x4290
movq %rax, -0x290(%rbp)
jmp 0x279a3
movq -0x290(%rbp), %rdi
leaq 0xa315(%rip), %rsi      # 0x31cc6
callq 0x42d0
jmp 0x279b8
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fae0
movq %rax, -0x298(%rbp)
jmp 0x279d5
movq -0x298(%rbp), %rax
movl (%rax), %esi
leaq -0x210(%rbp), %rdi
callq 0x44d0
movq %rax, -0x2a0(%rbp)
jmp 0x279f3
movq -0x2a0(%rbp), %rdi
leaq 0xa2c6(%rip), %rsi      # 0x31cc7
callq 0x42d0
jmp 0x27a08
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fb00
movq %rax, -0x2a8(%rbp)
jmp 0x27a25
movq -0x2a8(%rbp), %rax
movl (%rax), %esi
leaq -0x210(%rbp), %rdi
callq 0x44d0
movq %rax, -0x2b0(%rbp)
jmp 0x27a43
movq -0x2b0(%rbp), %rdi
leaq 0xa276(%rip), %rsi      # 0x31cc7
callq 0x42d0
jmp 0x27a58
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fb20
movq %rax, -0x2b8(%rbp)
jmp 0x27a75
movq -0x2b8(%rbp), %rax
movl (%rax), %esi
leaq -0x210(%rbp), %rdi
callq 0x44d0
movq %rax, -0x2c0(%rbp)
jmp 0x27a93
movq -0x2c0(%rbp), %rdi
leaq 0xa226(%rip), %rsi      # 0x31cc7
callq 0x42d0
jmp 0x27aa8
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fbc0
movq %rax, -0x2c8(%rbp)
jmp 0x27ac5
movq -0x2c8(%rbp), %rax
movl (%rax), %esi
leaq -0x210(%rbp), %rdi
callq 0x44d0
movq %rax, -0x2d0(%rbp)
jmp 0x27ae3
movq -0x2d0(%rbp), %rdi
leaq 0xa1d6(%rip), %rsi      # 0x31cc7
callq 0x42d0
jmp 0x27af8
leaq -0x228(%rbp), %rdi
callq 0x2aaf0
movq %rax, %rdi
callq 0x1fc60
movq %rax, -0x2d8(%rbp)
jmp 0x27b15
movq -0x2d8(%rbp), %rax
movl (%rax), %esi
leaq -0x210(%rbp), %rdi
callq 0x44d0
movq %rax, -0x2e0(%rbp)
jmp 0x27b33
movq -0x2e0(%rbp), %rdi
leaq 0xa38c(%rip), %rsi      # 0x31ecd
callq 0x42d0
jmp 0x27b48
jmp 0x27b4a
leaq -0x228(%rbp), %rdi
callq 0x2ab10
jmp 0x27847
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
jmp 0x27bf8
leaq -0x210(%rbp), %rdi
callq 0x43f0
jmp 0x27b80
jmp 0x27be3
movl $0x10, %edi
callq 0x41a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x2e8(%rbp)
leaq 0x9fae(%rip), %rsi      # 0x31b4e
callq 0x4140
jmp 0x27ba7
movq -0x2e8(%rbp), %rdi
movq 0x1e43b(%rip), %rsi     # 0x45ff0
movq 0x1e3b4(%rip), %rdx     # 0x45f70
callq 0x44b0
jmp 0x27c10
movq -0x2e8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
callq 0x4240
jmp 0x27bf8
leaq -0x210(%rbp), %rdi
callq 0x4420
addq $0x2f0, %rsp            # imm = 0x2F0
popq %rbp
retq
leaq -0x210(%rbp), %rdi
callq 0x4420
movq -0x218(%rbp), %rdi
callq 0x44f0