// File: MechaDragonX[P]CPPCollections/main.cpp
// Function: linkedListStuff(Student, Student, Student, Student, Student)
LinkedList<Student> linkedListStuff(Student rags, Student syke1, Student syke2, Student surnameLacking, Student knob) {
    LinkedList<Student> list = LinkedList<Student>(rags);
    list.add(syke1);
    list.add(syke2);
    list.add(surnameLacking);
    list.add(knob);
    std::cout << list.toString() << std::endl;
    list.remove();
    std::cout << list.toString() << std::endl;
    list.remove(syke2);
    std::cout << list.toString() << std::endl;
    list.remove(rags);
    std::cout << list.toString() << std::endl;
    return list;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3e0, %rsp            # imm = 0x3E0
movq %r9, -0x368(%rbp)
movq %r8, -0x360(%rbp)
movq %rcx, -0x358(%rbp)
movq %rdx, -0x350(%rbp)
movq %rsi, -0x348(%rbp)
movq %rdi, -0x338(%rbp)
movq %rdi, %rax
movq %rax, -0x340(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
leaq -0x88(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x330(%rbp), %rsi
callq 0xb390
jmp 0x12a3f
leaq -0x88(%rbp), %rdi
callq 0x8830
movq -0x350(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x370(%rbp), %rsi
callq 0xb4f0
jmp 0x12a7a
leaq -0xf0(%rbp), %rdi
callq 0x8830
movq -0x358(%rbp), %rsi
leaq -0x148(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x378(%rbp), %rsi
callq 0xb4f0
jmp 0x12ab5
leaq -0x148(%rbp), %rdi
callq 0x8830
movq -0x360(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x380(%rbp), %rsi
callq 0xb4f0
jmp 0x12af0
leaq -0x1a0(%rbp), %rdi
callq 0x8830
movq -0x368(%rbp), %rsi
leaq -0x1f8(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x388(%rbp), %rsi
callq 0xb4f0
jmp 0x12b2b
leaq -0x1f8(%rbp), %rdi
callq 0x8830
movq -0x338(%rbp), %rsi
leaq -0x218(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0xb820
movq -0x398(%rbp), %rsi
movq 0xa479(%rip), %rdi      # 0x1cfd8
callq 0x41a0
movq %rax, -0x390(%rbp)
jmp 0x12b6d
movq -0x390(%rbp), %rdi
movq 0xa445(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x12b82
leaq -0x218(%rbp), %rdi
callq 0x4120
movq -0x338(%rbp), %rdi
callq 0xb660
movq -0x338(%rbp), %rsi
leaq -0x238(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0xb820
movq -0x3a8(%rbp), %rsi
movq 0xa416(%rip), %rdi      # 0x1cfd8
callq 0x41a0
movq %rax, -0x3a0(%rbp)
jmp 0x12bd0
movq -0x3a0(%rbp), %rdi
movq 0xa3e2(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x12be5
leaq -0x238(%rbp), %rdi
callq 0x4120
movq -0x358(%rbp), %rsi
leaq -0x290(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x3b0(%rbp), %rsi
callq 0xb710
jmp 0x12c20
leaq -0x290(%rbp), %rdi
callq 0x8830
movq -0x338(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0xb820
movq -0x3c0(%rbp), %rsi
movq 0xa384(%rip), %rdi      # 0x1cfd8
callq 0x41a0
movq %rax, -0x3b8(%rbp)
jmp 0x12c62
movq -0x3b8(%rbp), %rdi
movq 0xa350(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x12c77
leaq -0x2b0(%rbp), %rdi
callq 0x4120
movq -0x348(%rbp), %rsi
leaq -0x308(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x73b0
movq -0x338(%rbp), %rdi
movq -0x3c8(%rbp), %rsi
callq 0xb710
jmp 0x12cb2
leaq -0x308(%rbp), %rdi
callq 0x8830
movq -0x338(%rbp), %rsi
leaq -0x328(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0xb820
movq -0x3d8(%rbp), %rsi
movq 0xa2f2(%rip), %rdi      # 0x1cfd8
callq 0x41a0
movq %rax, -0x3d0(%rbp)
jmp 0x12cf4
movq -0x3d0(%rbp), %rdi
movq 0xa2be(%rip), %rsi      # 0x1cfc0
callq 0x41f0
jmp 0x12d09
leaq -0x328(%rbp), %rdi
callq 0x4120
movq -0x340(%rbp), %rax
addq $0x3e0, %rsp            # imm = 0x3E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x4120
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4120
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x4120
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x8830
jmp 0x12e95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x4120
movq -0x90(%rbp), %rdi
callq 0x4300
nopw %cs:(%rax,%rax)