// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %r13
testl %edx, %edx
je 0xbaf5
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x20(%r14), %rsi
movq 0x28(%r14), %rdx
addq %rsi, %rdx
leaq -0x88(%rbp), %r15
movq %r15, %rdi
callq 0x5950
leaq 0x499a(%rip), %rsi      # 0x10449
movq %r15, %rdi
callq 0x3200
movq (%r14), %rsi
movq 0x8(%r14), %rdx
leaq -0x88(%rbp), %rdi
callq 0x3070
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbb93
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xbb99
leaq 0x20(%r14), %rdx
leaq 0x4952(%rip), %rsi      # 0x10452
leaq -0x88(%rbp), %r15
movq %r15, %rdi
callq 0xc11c
leaq 0x4933(%rip), %rsi      # 0x10449
movq %r15, %rdi
callq 0x3200
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbb42
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xbb48
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
callq 0x3070
leaq -0x58(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbbe4
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xbbeb
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x48(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4802(%rip), %rsi      # 0x103bd
callq 0x3200
leaq -0x58(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbc3d
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0xbc43
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4847(%rip), %rsi      # 0x10454
callq 0x3200
leaq 0x10(%r13), %rdx
movq %rdx, (%r13)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0xbd95
movq %rsi, (%r13)
movq (%rcx), %rdx
movq %rdx, 0x10(%r13)
jmp 0xbd9b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xbc6f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0xbc87
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3140
leaq 0x47be(%rip), %rsi      # 0x1044c
leaq -0x68(%rbp), %rdi
callq 0x3200
movq %r13, -0x90(%rbp)
movq 0x40(%r14), %rax
movq 0x48(%r14), %rcx
subq %rax, %rcx
je 0xbd51
sarq $0x5, %rcx
movl $0x8, %r13d
xorl %ebx, %ebx
leaq -0x68(%rbp), %r15
leaq -0x48(%rbp), %r12
decq %rcx
cmpq %rcx, %rbx
jne 0xbcde
movq -0x8(%rax,%r13), %rsi
movq (%rax,%r13), %rdx
movq %r15, %rdi
callq 0x3070
jmp 0xbd32
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x8(%rax,%r13), %rsi
movq (%rax,%r13), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x5950
movq %r12, %rdi
leaq 0x4745(%rip), %rsi      # 0x10449
callq 0x3200
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r15, %rdi
callq 0x3070
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbd32
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
incq %rbx
movq 0x40(%r14), %rax
movq 0x48(%r14), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
addq $0x20, %r13
cmpq %rbx, %rcx
ja 0xbcc3
movq -0x90(%rbp), %r13
leaq 0x10(%r13), %rbx
movq %rbx, (%r13)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x5950
leaq 0x46d5(%rip), %rsi      # 0x1044f
movq %r13, %rdi
callq 0x3200
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xbdf5
movq -0x58(%rbp), %rsi
jmp 0xbded
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%r13)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0xbdc7
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3140
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xbddc
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbdf5
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3140
movq %r13, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq (%r13), %rdi
cmpq %rbx, %rdi
je 0xbebd
movq (%rbx), %rsi
jmp 0xbeb0
movq %rax, %r14
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0xbe56
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xbe56
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xbe84
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xbe84
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xbe72
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xbe72
jmp 0xbe81
movq %rax, %r14
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0xbe90
jmp 0xbed6
movq %rax, %r14
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0xbed6
movq -0x78(%rbp), %rsi
jmp 0xbece
jmp 0xbeba
jmp 0xbeba
jmp 0xbe9c
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbebd
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3140
jmp 0xbebd
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xbed6
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3140
movq %r14, %rdi
callq 0x31e0