// File: iZhangHui[P]CppPrimer/CH03_StringsVectorsAndArrays/examples/vec_decls.cc
// Function: main
int main()
{
	// list initialization, articles has 3 elements
	vector<string> articles = {"a", "an", "the"};

	vector<string> svec; // default initialization; svec has no elements
	vector<int> ivec;             // ivec holds objects of type int
	vector<Sales_item> Sales_vec; // holds Sales_items
	
	vector<vector<string>> file;  // vector whose elements are vectors
	vector<vector<int>> vecOfvec; // each element is itself a vector
	
	// all five vectors have size 0
	cout << svec.size() << " " << ivec.size() << " "
	     << Sales_vec.size() << " "
	     << file.size() << " " << vecOfvec.size() << endl;
	
	vector<int> ivec2(10);     // ten elements, each initialized to 0
	vector<int> ivec3(10, -1); // ten int elements, each initialized to -1
	vector<string> svec2(10);  // ten elements, each an empty string
	vector<string> svec3(10, "hi!"); // ten strings; each element is "hi!"
	cout << ivec2.size() << " " << ivec3.size() << " "
	     << svec2.size() << " " << svec3.size() << endl;
	
	// 10 is not a string, so cannot be list initialization
	vector<string> v1(10); // construct v1 with ten value-initialized elements
	vector<string> v2{10}; // ten elements value-initialized elements
	vector<string> v3(10, "hi");  // ten elements with value "hi"
	// again list initialization is not viable, so ordinary construction
	vector<string> v4{10, "hi"};  // ten elements with values "hi"
	
	// all four vectors have size ten
	cout << v1.size() << " " << v2.size() 
	     << " " << v3.size() << " " << v4.size() << endl;
	
	vector<string> vs1{"hi"}; // list initialization: vs1 has 1 element 
	vector<string> vs2{10};   // ten default-initialized elements
	vector<string> vs3{10, "hi"}; // has ten elements with value "hi"
	cout << vs1.size() << " " << vs2.size() << " " << vs3.size() << endl;
	
	vector<int> v5(10, 1);  // ten elements with value 1
	vector<int> v6{10, 1};  // two elements with values 10 and 1
	cout << v5.size() << " " << v6.size() << endl;
	
	// intention is clearer
	vector<int> alt_v3 = {10};    // one element with value 10
	vector<int> alt_v4 = {10, 1}; // two elements with values 10 and 1
	cout << alt_v3.size() << " " << alt_v4.size() << endl;

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x680, %rsp            # imm = 0x680
movl $0x0, -0x4(%rbp)
movb $0x1, -0xaf(%rbp)
leaq -0x90(%rbp), %rax
movq %rax, -0x410(%rbp)
movq %rax, -0x98(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x2200
movq -0x410(%rbp), %rdi
movq -0x408(%rbp), %rdx
leaq 0x49a0(%rip), %rsi      # 0x7006
callq 0x2190
jmp 0x266d
leaq -0x70(%rbp), %rax
movq %rax, -0x420(%rbp)
movq %rax, -0x98(%rbp)
leaq -0xad(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x2200
movq -0x420(%rbp), %rdi
movq -0x418(%rbp), %rdx
leaq 0x4961(%rip), %rsi      # 0x7008
callq 0x2190
jmp 0x26ae
leaq -0x50(%rbp), %rax
movq %rax, -0x430(%rbp)
movq %rax, -0x98(%rbp)
leaq -0xae(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x2200
movq -0x430(%rbp), %rdi
movq -0x428(%rbp), %rdx
leaq 0x4923(%rip), %rsi      # 0x700b
callq 0x2190
jmp 0x26ef
movb $0x0, -0xaf(%rbp)
leaq -0x90(%rbp), %rax
movq %rax, -0x30(%rbp)
movq $0x3, -0x28(%rbp)
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x3b30
movq -0x438(%rbp), %rcx
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq -0x20(%rbp), %rdi
callq 0x3b50
jmp 0x2736
leaq -0xb0(%rbp), %rdi
callq 0x3bd0
leaq -0x90(%rbp), %rax
movq %rax, -0x448(%rbp)
addq $0x60, %rax
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x450(%rbp)
callq 0x20b0
movq -0x448(%rbp), %rcx
movq -0x450(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x440(%rbp)
jne 0x275b
leaq -0xae(%rbp), %rdi
callq 0x2140
leaq -0xad(%rbp), %rdi
callq 0x2140
leaq -0x99(%rbp), %rdi
callq 0x2140
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x3bf0
leaq -0xe0(%rbp), %rdi
callq 0x3c10
leaq -0xf8(%rbp), %rdi
callq 0x3c30
leaq -0x110(%rbp), %rdi
callq 0x3c50
leaq -0x128(%rbp), %rdi
callq 0x3c70
movq -0x460(%rbp), %rdi
callq 0x3c90
movq %rax, %rsi
movq 0x87cf(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x458(%rbp)
jmp 0x2817
movq -0x458(%rbp), %rdi
leaq 0x47df(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x468(%rbp)
jmp 0x2833
leaq -0xe0(%rbp), %rdi
callq 0x3cb0
movq -0x468(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x470(%rbp)
jmp 0x2857
movq -0x470(%rbp), %rdi
leaq 0x479f(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x478(%rbp)
jmp 0x2873
leaq -0xf8(%rbp), %rdi
callq 0x3cd0
movq -0x478(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x480(%rbp)
jmp 0x2897
movq -0x480(%rbp), %rdi
leaq 0x475f(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x488(%rbp)
jmp 0x28b3
leaq -0x110(%rbp), %rdi
callq 0x3d00
movq -0x488(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x490(%rbp)
jmp 0x28d7
movq -0x490(%rbp), %rdi
leaq 0x471f(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x498(%rbp)
jmp 0x28f3
leaq -0x128(%rbp), %rdi
callq 0x3d30
movq -0x498(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x4a0(%rbp)
jmp 0x2917
movq -0x4a0(%rbp), %rdi
movq 0x86a3(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x292c
leaq -0x141(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x3d60
movq -0x4a8(%rbp), %rdx
leaq -0x140(%rbp), %rdi
movl $0xa, %esi
callq 0x3d80
jmp 0x2959
leaq -0x141(%rbp), %rdi
callq 0x3df0
movl $0xffffffff, -0x164(%rbp) # imm = 0xFFFFFFFF
leaq -0x165(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x3d60
movq -0x4b0(%rbp), %rcx
leaq -0x160(%rbp), %rdi
movl $0xa, %esi
leaq -0x164(%rbp), %rdx
callq 0x3e10
jmp 0x29a3
leaq -0x165(%rbp), %rdi
callq 0x3df0
leaq -0x181(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x3b30
movq -0x4b8(%rbp), %rdx
leaq -0x180(%rbp), %rdi
movl $0xa, %esi
callq 0x3e90
jmp 0x29dc
leaq -0x181(%rbp), %rdi
callq 0x3bd0
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x2200
movq -0x4c0(%rbp), %rdx
leaq 0x4606(%rip), %rsi      # 0x700f
leaq -0x1c0(%rbp), %rdi
callq 0x2190
jmp 0x2a17
leaq -0x1c2(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x3b30
movq -0x4c8(%rbp), %rcx
leaq -0x1a0(%rbp), %rdi
movl $0xa, %esi
leaq -0x1c0(%rbp), %rdx
callq 0x3f00
jmp 0x2a4b
leaq -0x1c2(%rbp), %rdi
callq 0x3bd0
leaq -0x1c0(%rbp), %rdi
callq 0x20b0
leaq -0x1c1(%rbp), %rdi
callq 0x2140
leaq -0x140(%rbp), %rdi
callq 0x3cb0
movq %rax, %rsi
movq 0x8553(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x4d0(%rbp)
jmp 0x2a93
movq -0x4d0(%rbp), %rdi
leaq 0x4563(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x4d8(%rbp)
jmp 0x2aaf
leaq -0x160(%rbp), %rdi
callq 0x3cb0
movq -0x4d8(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x4e0(%rbp)
jmp 0x2ad3
movq -0x4e0(%rbp), %rdi
leaq 0x4523(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x4e8(%rbp)
jmp 0x2aef
leaq -0x180(%rbp), %rdi
callq 0x3c90
movq -0x4e8(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x4f0(%rbp)
jmp 0x2b13
movq -0x4f0(%rbp), %rdi
leaq 0x44e3(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x4f8(%rbp)
jmp 0x2b2f
leaq -0x1a0(%rbp), %rdi
callq 0x3c90
movq -0x4f8(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x500(%rbp)
jmp 0x2b53
movq -0x500(%rbp), %rdi
movq 0x8467(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x2b68
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x3b30
movq -0x508(%rbp), %rdx
leaq -0x1e0(%rbp), %rdi
movl $0xa, %esi
callq 0x3e90
jmp 0x2b95
leaq -0x1e1(%rbp), %rdi
callq 0x3bd0
leaq -0x201(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x3b30
movq -0x510(%rbp), %rdx
leaq -0x200(%rbp), %rdi
movl $0xa, %esi
callq 0x3e90
jmp 0x2bce
leaq -0x201(%rbp), %rdi
callq 0x3bd0
leaq -0x241(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x2200
movq -0x518(%rbp), %rdx
leaq 0x4418(%rip), %rsi      # 0x7013
leaq -0x240(%rbp), %rdi
callq 0x2190
jmp 0x2c09
leaq -0x242(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x3b30
movq -0x520(%rbp), %rcx
leaq -0x220(%rbp), %rdi
movl $0xa, %esi
leaq -0x240(%rbp), %rdx
callq 0x3f00
jmp 0x2c3d
leaq -0x242(%rbp), %rdi
callq 0x3bd0
leaq -0x240(%rbp), %rdi
callq 0x20b0
leaq -0x241(%rbp), %rdi
callq 0x2140
leaq -0x281(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x2200
movq -0x528(%rbp), %rdx
leaq 0x4391(%rip), %rsi      # 0x7013
leaq -0x280(%rbp), %rdi
callq 0x2190
jmp 0x2c90
leaq -0x282(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x3b30
movq -0x530(%rbp), %rcx
leaq -0x260(%rbp), %rdi
movl $0xa, %esi
leaq -0x280(%rbp), %rdx
callq 0x3f00
jmp 0x2cc4
leaq -0x282(%rbp), %rdi
callq 0x3bd0
leaq -0x280(%rbp), %rdi
callq 0x20b0
leaq -0x281(%rbp), %rdi
callq 0x2140
leaq -0x1e0(%rbp), %rdi
callq 0x3c90
movq %rax, %rsi
movq 0x82da(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x538(%rbp)
jmp 0x2d0c
movq -0x538(%rbp), %rdi
leaq 0x42ea(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x540(%rbp)
jmp 0x2d28
leaq -0x200(%rbp), %rdi
callq 0x3c90
movq -0x540(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x548(%rbp)
jmp 0x2d4c
movq -0x548(%rbp), %rdi
leaq 0x42aa(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x550(%rbp)
jmp 0x2d68
leaq -0x220(%rbp), %rdi
callq 0x3c90
movq -0x550(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x558(%rbp)
jmp 0x2d8c
movq -0x558(%rbp), %rdi
leaq 0x426a(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x560(%rbp)
jmp 0x2da8
leaq -0x260(%rbp), %rdi
callq 0x3c90
movq -0x560(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x568(%rbp)
jmp 0x2dcc
movq -0x568(%rbp), %rdi
movq 0x81ee(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x2de1
movb $0x1, -0x2da(%rbp)
leaq -0x2d0(%rbp), %rax
movq %rax, -0x578(%rbp)
movq %rax, -0x2d8(%rbp)
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x570(%rbp)
callq 0x2200
movq -0x578(%rbp), %rdi
movq -0x570(%rbp), %rdx
leaq 0x41ee(%rip), %rsi      # 0x7013
callq 0x2190
jmp 0x2e2c
movb $0x0, -0x2da(%rbp)
leaq -0x2d0(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq $0x1, -0x2a8(%rbp)
leaq -0x2db(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x3b30
movq -0x580(%rbp), %rcx
movq -0x2b0(%rbp), %rsi
movq -0x2a8(%rbp), %rdx
leaq -0x2a0(%rbp), %rdi
callq 0x3b50
jmp 0x2e82
leaq -0x2db(%rbp), %rdi
callq 0x3bd0
leaq -0x2d0(%rbp), %rax
movq %rax, -0x590(%rbp)
addq $0x20, %rax
movq %rax, -0x588(%rbp)
movq -0x588(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x598(%rbp)
callq 0x20b0
movq -0x590(%rbp), %rcx
movq -0x598(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x588(%rbp)
jne 0x2ea7
leaq -0x2d9(%rbp), %rdi
callq 0x2140
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x3b30
movq -0x5a0(%rbp), %rdx
leaq -0x2f8(%rbp), %rdi
movl $0xa, %esi
callq 0x3e90
jmp 0x2f11
leaq -0x2f9(%rbp), %rdi
callq 0x3bd0
leaq -0x339(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x2200
movq -0x5a8(%rbp), %rdx
leaq 0x40d5(%rip), %rsi      # 0x7013
leaq -0x338(%rbp), %rdi
callq 0x2190
jmp 0x2f4c
leaq -0x33a(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x3b30
movq -0x5b0(%rbp), %rcx
leaq -0x318(%rbp), %rdi
movl $0xa, %esi
leaq -0x338(%rbp), %rdx
callq 0x3f00
jmp 0x2f80
leaq -0x33a(%rbp), %rdi
callq 0x3bd0
leaq -0x338(%rbp), %rdi
callq 0x20b0
leaq -0x339(%rbp), %rdi
callq 0x2140
leaq -0x2a0(%rbp), %rdi
callq 0x3c90
movq %rax, %rsi
movq 0x801e(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x5b8(%rbp)
jmp 0x2fc8
movq -0x5b8(%rbp), %rdi
leaq 0x402e(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x5c0(%rbp)
jmp 0x2fe4
leaq -0x2f8(%rbp), %rdi
callq 0x3c90
movq -0x5c0(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x5c8(%rbp)
jmp 0x3008
movq -0x5c8(%rbp), %rdi
leaq 0x3fee(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x5d0(%rbp)
jmp 0x3024
leaq -0x318(%rbp), %rdi
callq 0x3c90
movq -0x5d0(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x5d8(%rbp)
jmp 0x3048
movq -0x5d8(%rbp), %rdi
movq 0x7f72(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x305d
movl $0x1, -0x35c(%rbp)
leaq -0x35d(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x3d60
movq -0x5e0(%rbp), %rcx
leaq -0x358(%rbp), %rdi
movl $0xa, %esi
leaq -0x35c(%rbp), %rdx
callq 0x3e10
jmp 0x309b
leaq -0x35d(%rbp), %rdi
callq 0x3df0
movl $0xa, -0x390(%rbp)
movl $0x1, -0x38c(%rbp)
leaq -0x390(%rbp), %rax
movq %rax, -0x388(%rbp)
movq $0x2, -0x380(%rbp)
leaq -0x391(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0x3d60
movq -0x5e8(%rbp), %rcx
movq -0x388(%rbp), %rsi
movq -0x380(%rbp), %rdx
leaq -0x378(%rbp), %rdi
callq 0x3f80
jmp 0x310a
leaq -0x391(%rbp), %rdi
callq 0x3df0
leaq -0x358(%rbp), %rdi
callq 0x3cb0
movq %rax, %rsi
movq 0x7eac(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x5f0(%rbp)
jmp 0x313a
movq -0x5f0(%rbp), %rdi
leaq 0x3ebc(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x5f8(%rbp)
jmp 0x3156
leaq -0x378(%rbp), %rdi
callq 0x3cb0
movq -0x5f8(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x600(%rbp)
jmp 0x317a
movq -0x600(%rbp), %rdi
movq 0x7e40(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x318f
movl $0xa, -0x3c4(%rbp)
leaq -0x3c4(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq $0x1, -0x3b8(%rbp)
leaq -0x3c5(%rbp), %rdi
movq %rdi, -0x608(%rbp)
callq 0x3d60
movq -0x608(%rbp), %rcx
movq -0x3c0(%rbp), %rsi
movq -0x3b8(%rbp), %rdx
leaq -0x3b0(%rbp), %rdi
callq 0x3f80
jmp 0x31e8
leaq -0x3c5(%rbp), %rdi
callq 0x3df0
movl $0xa, -0x3f8(%rbp)
movl $0x1, -0x3f4(%rbp)
leaq -0x3f8(%rbp), %rax
movq %rax, -0x3f0(%rbp)
movq $0x2, -0x3e8(%rbp)
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x3d60
movq -0x610(%rbp), %rcx
movq -0x3f0(%rbp), %rsi
movq -0x3e8(%rbp), %rdx
leaq -0x3e0(%rbp), %rdi
callq 0x3f80
jmp 0x3257
leaq -0x3f9(%rbp), %rdi
callq 0x3df0
leaq -0x3b0(%rbp), %rdi
callq 0x3cb0
movq %rax, %rsi
movq 0x7d5f(%rip), %rdi      # 0xafd8
callq 0x2040
movq %rax, -0x618(%rbp)
jmp 0x3287
movq -0x618(%rbp), %rdi
leaq 0x3d6f(%rip), %rsi      # 0x7004
callq 0x2100
movq %rax, -0x620(%rbp)
jmp 0x32a3
leaq -0x3e0(%rbp), %rdi
callq 0x3cb0
movq -0x620(%rbp), %rdi
movq %rax, %rsi
callq 0x2040
movq %rax, -0x628(%rbp)
jmp 0x32c7
movq -0x628(%rbp), %rdi
movq 0x7cf3(%rip), %rsi      # 0xafc8
callq 0x2130
jmp 0x32dc
movl $0x0, -0x4(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x4000
leaq -0x3b0(%rbp), %rdi
callq 0x4000
leaq -0x378(%rbp), %rdi
callq 0x4000
leaq -0x358(%rbp), %rdi
callq 0x4000
leaq -0x318(%rbp), %rdi
callq 0x4060
leaq -0x2f8(%rbp), %rdi
callq 0x4060
leaq -0x2a0(%rbp), %rdi
callq 0x4060
leaq -0x260(%rbp), %rdi
callq 0x4060
leaq -0x220(%rbp), %rdi
callq 0x4060
leaq -0x200(%rbp), %rdi
callq 0x4060
leaq -0x1e0(%rbp), %rdi
callq 0x4060
leaq -0x1a0(%rbp), %rdi
callq 0x4060
leaq -0x180(%rbp), %rdi
callq 0x4060
leaq -0x160(%rbp), %rdi
callq 0x4000
leaq -0x140(%rbp), %rdi
callq 0x4000
leaq -0x128(%rbp), %rdi
callq 0x40c0
leaq -0x110(%rbp), %rdi
callq 0x4120
leaq -0xf8(%rbp), %rdi
callq 0x4180
leaq -0xe0(%rbp), %rdi
callq 0x4000
leaq -0xc8(%rbp), %rdi
callq 0x4060
leaq -0x20(%rbp), %rdi
callq 0x4060
movl -0x4(%rbp), %eax
addq $0x680, %rsp            # imm = 0x680
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x34ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x34a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3494
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3bd0
leaq -0x90(%rbp), %rax
movq %rax, -0x638(%rbp)
addq $0x60, %rax
movq %rax, -0x630(%rbp)
movq -0x630(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x640(%rbp)
callq 0x20b0
movq -0x638(%rbp), %rcx
movq -0x640(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x630(%rbp)
jne 0x3461
jmp 0x3494
leaq -0xae(%rbp), %rdi
callq 0x2140
leaq -0xad(%rbp), %rdi
callq 0x2140
leaq -0x99(%rbp), %rdi
callq 0x2140
testb $0x1, -0xaf(%rbp)
jne 0x34c3
jmp 0x3510
movq -0x98(%rbp), %rax
leaq -0x90(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x648(%rbp)
je 0x350e
movq -0x648(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x650(%rbp)
callq 0x20b0
movq -0x650(%rbp), %rax
leaq -0x90(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x648(%rbp)
jne 0x34dd
jmp 0x3510
jmp 0x3a0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x39c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x141(%rbp), %rdi
callq 0x3df0
jmp 0x39c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x165(%rbp), %rdi
callq 0x3df0
jmp 0x39ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x181(%rbp), %rdi
callq 0x3bd0
jmp 0x39ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x35d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1c2(%rbp), %rdi
callq 0x3bd0
leaq -0x1c0(%rbp), %rdi
callq 0x20b0
leaq -0x1c1(%rbp), %rdi
callq 0x2140
jmp 0x39a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3996
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x1e1(%rbp), %rdi
callq 0x3bd0
jmp 0x3996
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x201(%rbp), %rdi
callq 0x3bd0
jmp 0x398a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x367f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x242(%rbp), %rdi
callq 0x3bd0
leaq -0x240(%rbp), %rdi
callq 0x20b0
leaq -0x241(%rbp), %rdi
callq 0x2140
jmp 0x397e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x36ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x282(%rbp), %rdi
callq 0x3bd0
leaq -0x280(%rbp), %rdi
callq 0x20b0
leaq -0x281(%rbp), %rdi
callq 0x2140
jmp 0x3972
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3966
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3774
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x2db(%rbp), %rdi
callq 0x3bd0
leaq -0x2d0(%rbp), %rax
movq %rax, -0x660(%rbp)
addq $0x20, %rax
movq %rax, -0x658(%rbp)
movq -0x658(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x668(%rbp)
callq 0x20b0
movq -0x660(%rbp), %rcx
movq -0x668(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x658(%rbp)
jne 0x3741
jmp 0x3774
leaq -0x2d9(%rbp), %rdi
callq 0x2140
testb $0x1, -0x2da(%rbp)
jne 0x378b
jmp 0x37d8
movq -0x2d8(%rbp), %rax
leaq -0x2d0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x670(%rbp)
je 0x37d6
movq -0x670(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x678(%rbp)
callq 0x20b0
movq -0x678(%rbp), %rax
leaq -0x2d0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x670(%rbp)
jne 0x37a5
jmp 0x37d8
jmp 0x3966
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x2f9(%rbp), %rdi
callq 0x3bd0
jmp 0x395a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x383e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x33a(%rbp), %rdi
callq 0x3bd0
leaq -0x338(%rbp), %rdi
callq 0x20b0
leaq -0x339(%rbp), %rdi
callq 0x2140
jmp 0x394e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x3942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x35d(%rbp), %rdi
callq 0x3df0
jmp 0x3942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x391(%rbp), %rdi
callq 0x3df0
jmp 0x3936
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x392a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3c5(%rbp), %rdi
callq 0x3df0
jmp 0x392a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3f9(%rbp), %rdi
callq 0x3df0
jmp 0x391e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x4000
leaq -0x3b0(%rbp), %rdi
callq 0x4000
leaq -0x378(%rbp), %rdi
callq 0x4000
leaq -0x358(%rbp), %rdi
callq 0x4000
leaq -0x318(%rbp), %rdi
callq 0x4060
leaq -0x2f8(%rbp), %rdi
callq 0x4060
leaq -0x2a0(%rbp), %rdi
callq 0x4060
leaq -0x260(%rbp), %rdi
callq 0x4060
leaq -0x220(%rbp), %rdi
callq 0x4060
leaq -0x200(%rbp), %rdi
callq 0x4060
leaq -0x1e0(%rbp), %rdi
callq 0x4060
leaq -0x1a0(%rbp), %rdi
callq 0x4060
leaq -0x180(%rbp), %rdi
callq 0x4060
leaq -0x160(%rbp), %rdi
callq 0x4000
leaq -0x140(%rbp), %rdi
callq 0x4000
leaq -0x128(%rbp), %rdi
callq 0x40c0
leaq -0x110(%rbp), %rdi
callq 0x4120
leaq -0xf8(%rbp), %rdi
callq 0x4180
leaq -0xe0(%rbp), %rdi
callq 0x4000
leaq -0xc8(%rbp), %rdi
callq 0x4060
leaq -0x20(%rbp), %rdi
callq 0x4060
movq -0xa8(%rbp), %rdi
callq 0x21f0
nopw (%rax,%rax)