// File: MechaDragonX[P]CPPCollections/student.cpp
// Function: Student::toString[abi:cxx11](bool)
std::string Student::toString(bool full = false) {
    if(full) {
        std::string output = surname_ + ", " + givenName_ + "\n";
        output += "{ ";
        for(int i = 0; i < coursesTaken_.size(); i++) {
            if(i != coursesTaken_.size() - 1)
                output += coursesTaken_[i] + ", ";
            else
                output += coursesTaken_[i];
        }
        return output + " }";
    }

    return "[" + surname_ + ", " + givenName_ + "]";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x120(%rbp)
movb %dl, %al
movq %rdi, %rcx
movq %rcx, -0x118(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x110(%rbp)
testb $0x1, -0x11(%rbp)
je 0x105f1
movq -0x110(%rbp), %rsi
addq $0x20, %rsi
leaq 0x506a(%rip), %rdx      # 0x1545c
leaq -0x78(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x7210
movq -0x128(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x58(%rbp), %rdi
callq 0x10c60
jmp 0x1041b
leaq 0x4f9b(%rip), %rdx      # 0x153bd
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x4c10
jmp 0x10431
leaq -0x58(%rbp), %rdi
callq 0x4120
leaq -0x78(%rbp), %rdi
callq 0x4120
leaq 0x5015(%rip), %rsi      # 0x1545f
leaq -0x38(%rbp), %rdi
callq 0x41b0
jmp 0x10455
movl $0x0, -0x88(%rbp)
movq -0x110(%rbp), %rdi
movslq -0x88(%rbp), %rax
movq %rax, -0x130(%rbp)
addq $0x40, %rdi
callq 0x80f0
movq %rax, %rcx
movq -0x130(%rbp), %rax
cmpq %rcx, %rax
jae 0x105bc
movq -0x110(%rbp), %rdi
movslq -0x88(%rbp), %rax
movq %rax, -0x138(%rbp)
addq $0x40, %rdi
callq 0x80f0
movq %rax, %rcx
movq -0x138(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x1057f
movq -0x110(%rbp), %rdi
addq $0x40, %rdi
movslq -0x88(%rbp), %rsi
callq 0x10a00
movq %rax, %rsi
leaq 0x4f76(%rip), %rdx      # 0x1545c
leaq -0xa8(%rbp), %rdi
callq 0x7210
jmp 0x104f4
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x4270
jmp 0x10506
leaq -0xa8(%rbp), %rdi
callq 0x4120
jmp 0x105a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x10540
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4120
leaq -0x78(%rbp), %rdi
callq 0x4120
jmp 0x106f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x105e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4120
jmp 0x105e3
movq -0x110(%rbp), %rdi
addq $0x40, %rdi
movslq -0x88(%rbp), %rsi
callq 0x10a00
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x4270
jmp 0x105a4
jmp 0x105a6
jmp 0x105a8
movl -0x88(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
jmp 0x1045f
movq -0x120(%rbp), %rdi
leaq 0x4e98(%rip), %rdx      # 0x15462
leaq -0x38(%rbp), %rsi
callq 0x7210
jmp 0x105d5
leaq -0x38(%rbp), %rdi
callq 0x4120
jmp 0x106e7
leaq -0x38(%rbp), %rdi
callq 0x4120
jmp 0x106f7
movq -0x110(%rbp), %rdx
addq $0x20, %rdx
leaq 0x4e62(%rip), %rsi      # 0x15465
leaq -0x108(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x10cb0
movq -0x140(%rbp), %rsi
leaq 0x4e38(%rip), %rdx      # 0x1545c
leaq -0xe8(%rbp), %rdi
callq 0x4c10
jmp 0x10632
movq -0x110(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x10c60
jmp 0x1064e
movq -0x120(%rbp), %rdi
leaq 0x4e0b(%rip), %rdx      # 0x15467
leaq -0xc8(%rbp), %rsi
callq 0x4c10
jmp 0x1066a
leaq -0xc8(%rbp), %rdi
callq 0x4120
leaq -0xe8(%rbp), %rdi
callq 0x4120
leaq -0x108(%rbp), %rdi
callq 0x4120
jmp 0x106e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x106d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x106cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4120
leaq -0xe8(%rbp), %rdi
callq 0x4120
leaq -0x108(%rbp), %rdi
callq 0x4120
jmp 0x106f7
movq -0x118(%rbp), %rax
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0x4300