// File: iZhangHui[P]CppPrimer/CH13_CopyControl/examples/FolderMain.cc
// Function: main
int main()
{
	string s1("contents1");
	string s2("contents2");
	string s3("contents3");
	string s4("contents4");
	string s5("contents5");
	string s6("contents6");

	// all new messages, no copies yet
	Message m1(s1);
	Message m2(s2);
	Message m3(s3);
	Message m4(s4);
	Message m5(s5);
	Message m6(s6);

	Folder f1;
	Folder f2;

	m1.save(f1); m3.save(f1); m5.save(f1);
	m1.save(f2);
	m2.save(f2); m4.save(f2); m6.save(f2);

	m1.debug_print();
	f2.debug_print();

	// create some copies
	Message c1(m1);
	Message c2(m2), c4(m4), c6(m6);

	m1.debug_print();
	f2.debug_print();

	// now some assignments
	m2 = m3;
	m4 = m5;
	m6 = m3;
	m1 = m5;

	m1.debug_print();
	f2.debug_print();

	// finally, self-assignment
	m2 = m2;
	m1 = m1;

	m1.debug_print();
	f2.debug_print();

	vector<Message> vm;
	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m1);

	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m2);

	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m3);

	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m4);

	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m5);

	cout << "capacity: " << vm.capacity() << endl;
	vm.push_back(m6);

	vector<Folder> vf;
	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(f1);

	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(f2);

	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(Folder(f1));

	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(Folder(f2));

	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(Folder());

	Folder f3;
	f3.save(m6);
	cout << "capacity: " << vf.capacity() << endl;
	vf.push_back(f3);


	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x690, %rsp            # imm = 0x690
movl $0x0, -0x4(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x2200
movq -0x588(%rbp), %rdx
leaq 0x3526(%rip), %rsi      # 0xb0d6
leaq -0x28(%rbp), %rdi
callq 0x21a0
jmp 0x7bbb
leaq -0x29(%rbp), %rdi
callq 0x2170
leaq -0x61(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x2200
movq -0x590(%rbp), %rdx
leaq 0x34fe(%rip), %rsi      # 0xb0e0
leaq -0x60(%rbp), %rdi
callq 0x21a0
jmp 0x7bed
leaq -0x61(%rbp), %rdi
callq 0x2170
leaq -0x89(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x2200
movq -0x598(%rbp), %rdx
leaq 0x34d3(%rip), %rsi      # 0xb0ea
leaq -0x88(%rbp), %rdi
callq 0x21a0
jmp 0x7c25
leaq -0x89(%rbp), %rdi
callq 0x2170
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x2200
movq -0x5a0(%rbp), %rdx
leaq 0x34a2(%rip), %rsi      # 0xb0f4
leaq -0xb0(%rbp), %rdi
callq 0x21a0
jmp 0x7c60
leaq -0xb1(%rbp), %rdi
callq 0x2170
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x2200
movq -0x5a8(%rbp), %rdx
leaq 0x3471(%rip), %rsi      # 0xb0fe
leaq -0xd8(%rbp), %rdi
callq 0x21a0
jmp 0x7c9b
leaq -0xd9(%rbp), %rdi
callq 0x2170
leaq -0x101(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x2200
movq -0x5b0(%rbp), %rdx
leaq 0x3440(%rip), %rsi      # 0xb108
leaq -0x100(%rbp), %rdi
callq 0x21a0
jmp 0x7cd6
leaq -0x101(%rbp), %rdi
callq 0x2170
leaq -0x158(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x88e0
jmp 0x7cf4
leaq -0x1a8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x88e0
jmp 0x7d06
leaq -0x1f8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x88e0
jmp 0x7d1b
leaq -0x248(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x88e0
jmp 0x7d30
leaq -0x298(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x88e0
jmp 0x7d45
leaq -0x2e8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x88e0
jmp 0x7d5a
leaq -0x318(%rbp), %rdi
movq %rdi, -0x5b8(%rbp)
callq 0x8920
leaq -0x348(%rbp), %rdi
callq 0x8920
movq -0x5b8(%rbp), %rsi
leaq -0x158(%rbp), %rdi
callq 0x2d10
jmp 0x7d8e
leaq -0x1f8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x2d10
jmp 0x7da3
leaq -0x298(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x2d10
jmp 0x7db8
leaq -0x158(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2d10
jmp 0x7dcd
leaq -0x1a8(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2d10
jmp 0x7de2
leaq -0x248(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2d10
jmp 0x7df7
leaq -0x2e8(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2d10
jmp 0x7e0c
leaq -0x158(%rbp), %rdi
callq 0x2f00
jmp 0x7e1a
leaq -0x348(%rbp), %rdi
callq 0x2df0
jmp 0x7e28
leaq -0x398(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x2870
jmp 0x7e3d
leaq -0x3e8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x2870
jmp 0x7e52
leaq -0x438(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x2870
jmp 0x7e67
leaq -0x488(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x2870
jmp 0x7e7c
leaq -0x158(%rbp), %rdi
callq 0x2f00
jmp 0x7e8a
leaq -0x348(%rbp), %rdi
callq 0x2df0
jmp 0x7e98
leaq -0x1a8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x2a90
jmp 0x7ead
leaq -0x248(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x2a90
jmp 0x7ec2
leaq -0x2e8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x2a90
jmp 0x7ed7
leaq -0x158(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x2a90
jmp 0x7eec
leaq -0x158(%rbp), %rdi
callq 0x2f00
jmp 0x7efa
leaq -0x348(%rbp), %rdi
callq 0x2df0
jmp 0x7f08
leaq -0x1a8(%rbp), %rsi
movq %rsi, %rdi
callq 0x2a90
jmp 0x7f19
leaq -0x158(%rbp), %rsi
movq %rsi, %rdi
callq 0x2a90
jmp 0x7f2a
leaq -0x158(%rbp), %rdi
callq 0x2f00
jmp 0x7f38
leaq -0x348(%rbp), %rdi
callq 0x2df0
jmp 0x7f46
leaq -0x4a0(%rbp), %rdi
callq 0x8940
movq 0x9077(%rip), %rdi      # 0x10fd0
leaq 0x31b2(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x5c0(%rbp)
jmp 0x7f6e
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x5c0(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x5c8(%rbp)
jmp 0x7f92
movq -0x5c8(%rbp), %rdi
movq 0x9020(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x7fa7
leaq -0x4a0(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x8990
jmp 0x7fbc
movq 0x900d(%rip), %rdi      # 0x10fd0
leaq 0x3148(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x5d0(%rbp)
jmp 0x7fd8
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x5d0(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x5d8(%rbp)
jmp 0x7ffc
movq -0x5d8(%rbp), %rdi
movq 0x8fb6(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x8011
leaq -0x4a0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x8990
jmp 0x8026
movq 0x8fa3(%rip), %rdi      # 0x10fd0
leaq 0x30de(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x5e0(%rbp)
jmp 0x8042
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x5e0(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x5e8(%rbp)
jmp 0x8066
movq -0x5e8(%rbp), %rdi
movq 0x8f4c(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x807b
leaq -0x4a0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x8990
jmp 0x8090
movq 0x8f39(%rip), %rdi      # 0x10fd0
leaq 0x3074(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x5f0(%rbp)
jmp 0x80ac
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x5f0(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x5f8(%rbp)
jmp 0x80d0
movq -0x5f8(%rbp), %rdi
movq 0x8ee2(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x80e5
leaq -0x4a0(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x8990
jmp 0x80fa
movq 0x8ecf(%rip), %rdi      # 0x10fd0
leaq 0x300a(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x600(%rbp)
jmp 0x8116
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x600(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x608(%rbp)
jmp 0x813a
movq -0x608(%rbp), %rdi
movq 0x8e78(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x814f
leaq -0x4a0(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x8990
jmp 0x8164
movq 0x8e65(%rip), %rdi      # 0x10fd0
leaq 0x2fa0(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x610(%rbp)
jmp 0x8180
leaq -0x4a0(%rbp), %rdi
callq 0x8960
movq -0x610(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x618(%rbp)
jmp 0x81a4
movq -0x618(%rbp), %rdi
movq 0x8e0e(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x81b9
leaq -0x4a0(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x8990
jmp 0x81ce
leaq -0x4b8(%rbp), %rdi
callq 0x8a00
movq 0x8def(%rip), %rdi      # 0x10fd0
leaq 0x2f2a(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x620(%rbp)
jmp 0x81f6
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x620(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x628(%rbp)
jmp 0x821a
movq -0x628(%rbp), %rdi
movq 0x8d98(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x822f
leaq -0x4b8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x8a50
jmp 0x8244
movq 0x8d85(%rip), %rdi      # 0x10fd0
leaq 0x2ec0(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x630(%rbp)
jmp 0x8260
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x630(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x638(%rbp)
jmp 0x8284
movq -0x638(%rbp), %rdi
movq 0x8d2e(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x8299
leaq -0x4b8(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x8a50
jmp 0x82ae
movq 0x8d1b(%rip), %rdi      # 0x10fd0
leaq 0x2e56(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x640(%rbp)
jmp 0x82ca
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x640(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x648(%rbp)
jmp 0x82ee
movq -0x648(%rbp), %rdi
movq 0x8cc4(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x8303
leaq -0x4e8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x2bb0
jmp 0x8318
leaq -0x4b8(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x8ac0
jmp 0x832d
leaq -0x4e8(%rbp), %rdi
callq 0x2c90
movq 0x8c90(%rip), %rdi      # 0x10fd0
leaq 0x2dcb(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x650(%rbp)
jmp 0x8355
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x650(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x658(%rbp)
jmp 0x8379
movq -0x658(%rbp), %rdi
movq 0x8c39(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x838e
leaq -0x518(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2bb0
jmp 0x83a3
leaq -0x4b8(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0x8ac0
jmp 0x83b8
leaq -0x518(%rbp), %rdi
callq 0x2c90
movq 0x8c05(%rip), %rdi      # 0x10fd0
leaq 0x2d40(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x660(%rbp)
jmp 0x83e0
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x660(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x668(%rbp)
jmp 0x8404
movq -0x668(%rbp), %rdi
movq 0x8bae(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x8419
xorps %xmm0, %xmm0
movaps %xmm0, -0x530(%rbp)
movaps %xmm0, -0x540(%rbp)
movaps %xmm0, -0x550(%rbp)
leaq -0x550(%rbp), %rdi
movq %rdi, -0x670(%rbp)
callq 0x8920
movq -0x670(%rbp), %rsi
leaq -0x4b8(%rbp), %rdi
callq 0x8ac0
jmp 0x8459
leaq -0x550(%rbp), %rdi
callq 0x2c90
leaq -0x580(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0x8920
movq -0x678(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x2d60
jmp 0x848d
movq 0x8b3c(%rip), %rdi      # 0x10fd0
leaq 0x2c77(%rip), %rsi      # 0xb112
callq 0x2120
movq %rax, -0x680(%rbp)
jmp 0x84a9
leaq -0x4b8(%rbp), %rdi
callq 0x8a20
movq -0x680(%rbp), %rdi
movq %rax, %rsi
callq 0x2050
movq %rax, -0x688(%rbp)
jmp 0x84cd
movq -0x688(%rbp), %rdi
movq 0x8ae5(%rip), %rsi      # 0x10fc0
callq 0x2160
jmp 0x84e2
leaq -0x4b8(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x8a50
jmp 0x84f7
movl $0x0, -0x4(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x2c90
leaq -0x4b8(%rbp), %rdi
callq 0x8af0
leaq -0x4a0(%rbp), %rdi
callq 0x8b50
leaq -0x488(%rbp), %rdi
callq 0x2af0
leaq -0x438(%rbp), %rdi
callq 0x2af0
leaq -0x3e8(%rbp), %rdi
callq 0x2af0
leaq -0x398(%rbp), %rdi
callq 0x2af0
leaq -0x348(%rbp), %rdi
callq 0x2c90
leaq -0x318(%rbp), %rdi
callq 0x2c90
leaq -0x2e8(%rbp), %rdi
callq 0x2af0
leaq -0x298(%rbp), %rdi
callq 0x2af0
leaq -0x248(%rbp), %rdi
callq 0x2af0
leaq -0x1f8(%rbp), %rdi
callq 0x2af0
leaq -0x1a8(%rbp), %rdi
callq 0x2af0
leaq -0x158(%rbp), %rdi
callq 0x2af0
leaq -0x100(%rbp), %rdi
callq 0x20d0
leaq -0xd8(%rbp), %rdi
callq 0x20d0
leaq -0xb0(%rbp), %rdi
callq 0x20d0
leaq -0x88(%rbp), %rdi
callq 0x20d0
leaq -0x60(%rbp), %rdi
callq 0x20d0
leaq -0x28(%rbp), %rdi
callq 0x20d0
movl -0x4(%rbp), %eax
addq $0x690, %rsp            # imm = 0x690
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x2170
jmp 0x88d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x2170
jmp 0x88c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x89(%rbp), %rdi
callq 0x2170
jmp 0x88c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb1(%rbp), %rdi
callq 0x2170
jmp 0x88b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd9(%rbp), %rdi
callq 0x2170
jmp 0x88a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x101(%rbp), %rdi
callq 0x2170
jmp 0x889c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8890
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8884
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x886c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8860
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8854
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8830
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8824
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8818
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x880c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8800
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x87f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x87e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x2c90
jmp 0x87e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x2c90
jmp 0x87e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x2c90
jmp 0x87e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x2c90
leaq -0x4b8(%rbp), %rdi
callq 0x8af0
leaq -0x4a0(%rbp), %rdi
callq 0x8b50
leaq -0x488(%rbp), %rdi
callq 0x2af0
leaq -0x438(%rbp), %rdi
callq 0x2af0
leaq -0x3e8(%rbp), %rdi
callq 0x2af0
leaq -0x398(%rbp), %rdi
callq 0x2af0
leaq -0x348(%rbp), %rdi
callq 0x2c90
leaq -0x318(%rbp), %rdi
callq 0x2c90
leaq -0x2e8(%rbp), %rdi
callq 0x2af0
leaq -0x298(%rbp), %rdi
callq 0x2af0
leaq -0x248(%rbp), %rdi
callq 0x2af0
leaq -0x1f8(%rbp), %rdi
callq 0x2af0
leaq -0x1a8(%rbp), %rdi
callq 0x2af0
leaq -0x158(%rbp), %rdi
callq 0x2af0
leaq -0x100(%rbp), %rdi
callq 0x20d0
leaq -0xd8(%rbp), %rdi
callq 0x20d0
leaq -0xb0(%rbp), %rdi
callq 0x20d0
leaq -0x88(%rbp), %rdi
callq 0x20d0
leaq -0x60(%rbp), %rdi
callq 0x20d0
leaq -0x28(%rbp), %rdi
callq 0x20d0
movq -0x38(%rbp), %rdi
callq 0x21f0
nopl (%rax,%rax)