// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::TaxiAgency()
TaxiAgency::TaxiAgency(){
    DriverWagePerMonth = 1000;
    GarageLimit = 64;
    EachCarLimit = 4;
    DriverLimit = 64;
    WaitingCharges = 10;

    taxies.reserve(GarageLimit+1);
    driver_db.reserve(DriverLimit+1);
    customer_db.reserve(DriverLimit+1);

    cout << rang::fg::yellow << "A Taxi Agency has been instantiated" << rang::fg::reset << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
callq 0x28f00
movq -0xc8(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0xe8(%rbp)
callq 0x28f20
movq -0xc8(%rbp), %rdi
addq $0x30, %rdi
movq %rdi, -0xe0(%rbp)
callq 0x28f40
movq -0xc8(%rbp), %rdi
addq $0x48, %rdi
movq %rdi, -0xd8(%rbp)
callq 0x28f60
movq -0xc8(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0xd0(%rbp)
callq 0x28f60
movq -0xc8(%rbp), %rax
addq $0xa0, %rax
movq %rax, -0xc0(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x98(%rbp)
movl $0x0, -0x9c(%rbp)
leaq 0xf371(%rip), %rsi      # 0x319b9
leaq -0x9c(%rbp), %rdx
callq 0x28f80
jmp 0x22656
leaq -0x68(%rbp), %rdi
movq %rdi, -0x98(%rbp)
movl $0x0, -0xb0(%rbp)
leaq 0xf359(%rip), %rsi      # 0x319cb
leaq -0xb0(%rbp), %rdx
callq 0x29000
jmp 0x22680
leaq -0x40(%rbp), %rdi
movq %rdi, -0x98(%rbp)
movl $0x0, -0xb4(%rbp)
leaq 0xf33f(%rip), %rsi      # 0x319db
leaq -0xb4(%rbp), %rdx
callq 0x29080
jmp 0x226aa
leaq -0x90(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x3, -0x10(%rbp)
leaq -0xb7(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x20310
movq -0xf8(%rbp), %rcx
movq -0xc0(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0xb5(%rbp), %r8
leaq -0xb6(%rbp), %r9
callq 0x20330
jmp 0x22705
leaq -0xb7(%rbp), %rdi
callq 0x20390
leaq -0x90(%rbp), %rax
movq %rax, -0x108(%rbp)
addq $0x78, %rax
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x110(%rbp)
callq 0x202f0
movq -0x108(%rbp), %rcx
movq -0x110(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x100(%rbp)
jne 0x2272a
movq -0xf0(%rbp), %rdi
movl $0x3e8, 0x78(%rdi)      # imm = 0x3E8
movl $0x40, 0x7c(%rdi)
movl $0x4, 0x80(%rdi)
movl $0x40, 0x84(%rdi)
movl $0xa, 0x88(%rdi)
movl 0x7c(%rdi), %eax
incl %eax
movslq %eax, %rsi
callq 0x29100
jmp 0x2279d
movq -0xf0(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movl 0x84(%rax), %eax
incl %eax
movslq %eax, %rsi
callq 0x29200
jmp 0x227bd
movq -0xf0(%rbp), %rax
movq %rax, %rdi
addq $0x30, %rdi
movl 0x84(%rax), %eax
incl %eax
movslq %eax, %rsi
callq 0x29300
jmp 0x227dd
movq 0x2379c(%rip), %rdi     # 0x45f80
movl $0x21, %esi
callq 0x1d2a0
movq %rax, -0x118(%rbp)
jmp 0x227f7
movq -0x118(%rbp), %rdi
leaq 0xf1e3(%rip), %rsi      # 0x319e8
callq 0x42d0
movq %rax, -0x120(%rbp)
jmp 0x22813
movq -0x120(%rbp), %rdi
movl $0x27, %esi
callq 0x1d2a0
movq %rax, -0x128(%rbp)
jmp 0x2282d
movq -0x128(%rbp), %rdi
movq 0x2370d(%rip), %rsi     # 0x45f48
callq 0x4310
jmp 0x22842
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
movq -0x98(%rbp), %rax
leaq -0x90(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x130(%rbp)
je 0x228a8
movq -0x130(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x138(%rbp)
callq 0x202f0
movq -0x138(%rbp), %rax
leaq -0x90(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x130(%rbp)
jne 0x22877
jmp 0x22935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xb7(%rbp), %rdi
callq 0x20390
leaq -0x90(%rbp), %rax
movq %rax, -0x148(%rbp)
addq $0x78, %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x150(%rbp)
callq 0x202f0
movq -0x148(%rbp), %rcx
movq -0x150(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x140(%rbp)
jne 0x228e4
jmp 0x22935
movq -0xc0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
callq 0x203e0
movq -0xd0(%rbp), %rdi
callq 0x29400
movq -0xd8(%rbp), %rdi
callq 0x29400
movq -0xe0(%rbp), %rdi
callq 0x29420
movq -0xe8(%rbp), %rdi
callq 0x29480
movq -0xc8(%rbp), %rdi
callq 0x294e0
movq -0xa8(%rbp), %rdi
callq 0x44f0
nopl (%rax)