// File: pritpal20[P]vector/tester.cpp
// Function: main
int main() {
	int i;
	time_t st;

	st = clock();
	lni::vector<int> v1;
	for (i = 0; i < 10000000; ++i)
		v1.push_back(i);
	printf("lni::vector %.3fs\n", (double)(clock() - st) / CLOCKS_PER_SEC);
	
#ifdef DEBUG
	
	puts("\n=== Debugging Messages ===\n");

	printf("max_size() = %u", v1.max_size());
	puts("\n");
	
	puts("Testing emplace and emplace_back ... ");
	lni::vector<test> vt;
	vt.push_back( test(1, 2, 3) );
	vt.emplace_back(2, 4, 6);
	vt.emplace(vt.begin() + 1, 1, 3, 5);
	for (auto &vti: vt)
		vti.print();
	puts("\n");

	puts("Testing resize ... ");
	v1.resize(5);
	for (auto &n: v1)
	 	printf(" %d", n);
	puts("");
	v1.resize(10, 10);
	for (auto &n: v1)
		printf(" %d", n);
	puts("\n");
	
	puts("Testing assign ... ");
	lni::vector<int> v1_a;
	v1_a.assign(v1.begin() + 1, v1.begin() + 3);
	for (auto &n: v1_a)
		printf(" %d", n);
	puts("\n");

	puts("Testing front and back ... ");
	printf(" %d %d", v1.front(), v1.back());
	puts("\n");

	puts("Testing pop_back ... ");
	v1.pop_back();
	for (auto &n: v1)
		printf(" %d", n);
	puts("\n");

	puts("Testing [] operator overloading ... ");
	v1[0] = 1;
	int sz = v1.size();
	for (i = 0; i < sz; i++)
		printf(" %d", v1[i]);
	puts("\n");

	puts("Testing initializer list ... ");
	lni::vector<int> v2 = {10, 11, 12, 13, 14};
	for (auto &n: v2)
		printf(" %d", n);
	puts("\n");

	puts("Testing swap ... ");
	v1.swap(v2);
	for (auto &n: v1)
		printf(" %d", n);
	puts("");
	for (auto &n: v2)
		printf(" %d", n);
	puts("\n");

	puts("Testing clear ... ");
	v1.clear();
	for (auto &n: v1)
		printf(" %d", n);
	puts("\n");


	puts("Testing constructors ... ");
	lni::vector<double> v3(5, 2.0);
	v3[0] = 1.0; v3[4] = 3.0;
	for (auto &f: v3)
		printf(" %.3f ", f);
	puts("");
	lni::vector<double> v4(v3);
	for (auto &f: v4)
		printf(" %.3f ", f);
	puts("\n");

	puts("Testing assignment operators ... ");
	lni::vector<double> v5 = v3;
	for (auto &f: v5)
		printf(" %.3f", f);
	puts("");
	lni::vector<double> v6 = {3.0, 2.0, 2.0, 2.0, 1.0};
	for (auto &f: v6)
		printf(" %.3f", f);
	puts("\n");

	puts("Testing insert ... ");
	auto it = v6.insert(v6.begin() + 1, 2.5);
	printf(" Just inserted: %.3f\n", *it);
	it = v6.insert(v6.begin(), 4.0);
	printf(" Just inserted: %.3f\n", *it);
	lni::vector<double> vins{-2.0, -3.0};
	it = v6.insert(v6.begin() + 1, vins.begin(), vins.end());
	printf(" Just inserted: %.3f %.3f\n", *it, *(it + 1));
	for (auto &f: v6)
		printf(" %.3f", f);
	puts("\n");

	it = v6.insert(v6.end(), 2, 0.0);
	it = v6.insert(v6.end() - 2, 3, 0.5);
	it = v6.insert(v6.begin(), {1.0, 2.0, 3.0, 4.0, 5.0});
	printf(" v6:");
	for (auto &f: v6)
		printf(" %.3f", f);
	puts("");


	lni::vector<double> v7(2, 5.0);
	v7.insert(v7.end(), v6.begin(), v6.end());
	for (auto &f: v7)
		printf(" %.3f", f);
	puts("");

	v7.insert(v7.begin(), {8.0, 7.0, 6.0});
	v7.insert(v7.end(), {-1.0, -2.0, -2.5});
	for (auto &f: v7)
		printf(" %.3f", f);
	puts("\n");

	puts("Testing erase ... ");
	v7.erase(v7.begin());
	v7.erase(v7.begin() + 2, v7.begin() + 4);
	printf(" v7:");
	for (auto &f: v7)
		printf(" %.3f", f);
	puts("\n");

	puts("Testing shrink_to_fit ... ");
	printf("Before: %u, %u\n", v7.size(), v7.capacity());
	v7.shrink_to_fit();
	printf("After: %u, %u\n", v7.size(), v7.capacity());
	puts("");

	puts("Testing operators ... ");
	lni::vector<double> v8(v7);
	printf(" v6 == v8: %d\n", v6 == v8);
	printf(" v6 != v8: %d\n", v6 != v8);
	printf(" v7 == v8: %d\n", v7 == v8);
	printf(" v7 != v8: %d\n", v7 != v8);
	
	printf("\n v6 < v8: %d\n", v6 < v8);
	printf(" v6 <= v8: %d\n", v6 <= v8);
	printf(" v8 < v6: %d\n", v8 < v6);
	printf(" v7 <= v8: %d\n", v7 <= v8);
	printf(" v8 < v7: %d\n", v8 < v7);
	
	printf("\n v6 >= v8: %d\n", v6 >= v8);
	printf(" v6 > v8: %d\n", v6 > v8);
	printf(" v8 >= v6: %d\n", v8 >= v6);
	printf(" v7 > v8: %d\n", v7 > v8);
	printf(" v8 >= v7: %d\n", v8 >= v7);	
	puts("\n");

	puts("Testing reverse_iterator ... ");
	for (auto it = v8.rbegin(); it != v8.rend(); ++it)
		printf(" %.3f", *it);
	puts("\n");

#endif
	
	st = clock();
	std::vector<int> std_v1;
	for (i = 0; i < 10000000; ++i)
		std_v1.push_back(i);
	printf("std::vector %.3fs\n", (double)(clock() - st) / CLOCKS_PER_SEC);

	return 0;
}

// Assembly:
subq $0x618, %rsp            # imm = 0x618
movl $0x0, 0x614(%rsp)
callq 0x1090
movq %rax, 0x608(%rsp)
leaq 0x5f8(%rsp), %rdi
callq 0x59e0
movl $0x0, 0x610(%rsp)
cmpl $0x989680, 0x610(%rsp) # imm = 0x989680
jge 0x3489
leaq 0x5f8(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x5a30
jmp 0x345b
jmp 0x345d
movl 0x610(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x610(%rsp)
jmp 0x3437
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5187
callq 0x1090
movq 0x608(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0x4b62(%rip), %xmm1     # 0x8008
divsd %xmm1, %xmm0
leaq 0x4b67(%rip), %rdi      # 0x8018
movb $0x1, %al
callq 0x1040
jmp 0x34ba
leaq 0x4b6a(%rip), %rdi      # 0x802b
callq 0x1110
jmp 0x34c8
leaq 0x5f8(%rsp), %rdi
callq 0x5a90
movl %eax, %esi
leaq 0x4b6a(%rip), %rdi      # 0x8048
xorl %eax, %eax
callq 0x1040
jmp 0x34e7
leaq 0x4b58(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x34f5
leaq 0x4b5c(%rip), %rdi      # 0x8058
callq 0x1110
jmp 0x3503
leaq 0x5d8(%rsp), %rdi
callq 0x5aa0
movl $0x1, 0x5c8(%rsp)
movl $0x2, 0x5c4(%rsp)
movl $0x3, 0x5c0(%rsp)
leaq 0x5cc(%rsp), %rdi
leaq 0x5c8(%rsp), %rsi
leaq 0x5c4(%rsp), %rdx
leaq 0x5c0(%rsp), %rcx
callq 0x5bb0
jmp 0x3558
leaq 0x5d8(%rsp), %rdi
leaq 0x5cc(%rsp), %rsi
callq 0x5b50
jmp 0x356f
movl $0x2, 0x5bc(%rsp)
movl $0x4, 0x5b8(%rsp)
movl $0x6, 0x5b4(%rsp)
leaq 0x5d8(%rsp), %rdi
leaq 0x5bc(%rsp), %rsi
leaq 0x5b8(%rsp), %rdx
leaq 0x5b4(%rsp), %rcx
callq 0x5bf0
jmp 0x35b7
leaq 0x5d8(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0x5d70
movq 0x150(%rsp), %rdi
movq %rax, %rsi
addq $0xc, %rsi
movl $0x1, 0x5b0(%rsp)
movl $0x3, 0x5ac(%rsp)
movl $0x5, 0x5a8(%rsp)
leaq 0x5b0(%rsp), %rdx
leaq 0x5ac(%rsp), %rcx
leaq 0x5a8(%rsp), %r8
callq 0x5c70
jmp 0x361b
leaq 0x5d8(%rsp), %rax
movq %rax, 0x5a0(%rsp)
movq 0x5a0(%rsp), %rdi
callq 0x5d70
movq %rax, 0x598(%rsp)
movq 0x5a0(%rsp), %rdi
callq 0x5d80
movq %rax, 0x590(%rsp)
movq 0x598(%rsp), %rax
cmpq 0x590(%rsp), %rax
je 0x36b7
movq 0x598(%rsp), %rax
movq %rax, 0x588(%rsp)
movq 0x588(%rsp), %rdi
callq 0x5da0
jmp 0x3686
jmp 0x3688
movq 0x598(%rsp), %rax
addq $0xc, %rax
movq %rax, 0x598(%rsp)
jmp 0x3655
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x517a
leaq 0x4988(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x36c5
leaq 0x49b2(%rip), %rdi      # 0x807e
callq 0x1110
jmp 0x36d3
leaq 0x5f8(%rsp), %rdi
movl $0x5, %esi
callq 0x1400
jmp 0x36e7
leaq 0x5f8(%rsp), %rax
movq %rax, 0x580(%rsp)
movq 0x580(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x578(%rsp)
movq 0x580(%rsp), %rdi
callq 0x5de0
movq %rax, 0x570(%rsp)
movq 0x578(%rsp), %rax
cmpq 0x570(%rsp), %rax
je 0x3775
movq 0x578(%rsp), %rax
movq %rax, 0x568(%rsp)
movq 0x568(%rsp), %rax
movl (%rax), %esi
leaq 0x4971(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x375d
jmp 0x375f
movq 0x578(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x578(%rsp)
jmp 0x3721
leaq 0x48cb(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x3783
movl $0xa, 0x564(%rsp)
leaq 0x5f8(%rsp), %rdi
movl $0xa, %esi
leaq 0x564(%rsp), %rdx
callq 0x19a0
jmp 0x37aa
leaq 0x5f8(%rsp), %rax
movq %rax, 0x558(%rsp)
movq 0x558(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x550(%rsp)
movq 0x558(%rsp), %rdi
callq 0x5de0
movq %rax, 0x548(%rsp)
movq 0x550(%rsp), %rax
cmpq 0x548(%rsp), %rax
je 0x3838
movq 0x550(%rsp), %rax
movq %rax, 0x540(%rsp)
movq 0x540(%rsp), %rax
movl (%rax), %esi
leaq 0x48ae(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3820
jmp 0x3822
movq 0x550(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x550(%rsp)
jmp 0x37e4
leaq 0x4807(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3846
leaq 0x4845(%rip), %rdi      # 0x8092
callq 0x1110
jmp 0x3854
leaq 0x530(%rsp), %rdi
movq %rdi, 0x140(%rsp)
callq 0x59e0
leaq 0x5f8(%rsp), %rdi
movq %rdi, 0x138(%rsp)
callq 0x5dd0
movq 0x138(%rsp), %rdi
addq $0x4, %rax
movq %rax, 0x148(%rsp)
callq 0x5dd0
movq 0x140(%rsp), %rdi
movq 0x148(%rsp), %rsi
movq %rax, %rdx
addq $0xc, %rdx
callq 0x5e00
jmp 0x38b5
leaq 0x530(%rsp), %rax
movq %rax, 0x528(%rsp)
movq 0x528(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x520(%rsp)
movq 0x528(%rsp), %rdi
callq 0x5de0
movq %rax, 0x518(%rsp)
movq 0x520(%rsp), %rax
cmpq 0x518(%rsp), %rax
je 0x395c
movq 0x520(%rsp), %rax
movq %rax, 0x510(%rsp)
movq 0x510(%rsp), %rax
movl (%rax), %esi
leaq 0x47a3(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x392b
jmp 0x392d
movq 0x520(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x520(%rsp)
jmp 0x38ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x516d
leaq 0x46e3(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x396a
leaq 0x4735(%rip), %rdi      # 0x80a6
callq 0x1110
jmp 0x3978
leaq 0x5f8(%rsp), %rdi
callq 0x5ea0
movq %rax, 0x130(%rsp)
jmp 0x398f
movq 0x130(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x124(%rsp)
leaq 0x5f8(%rsp), %rdi
callq 0x5eb0
movq %rax, 0x128(%rsp)
jmp 0x39b7
movl 0x124(%rsp), %esi
movq 0x128(%rsp), %rax
movl (%rax), %edx
leaq 0x46f3(%rip), %rdi      # 0x80c2
xorl %eax, %eax
callq 0x1040
jmp 0x39d8
leaq 0x4667(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x39e6
leaq 0x46dc(%rip), %rdi      # 0x80c9
callq 0x1110
jmp 0x39f4
leaq 0x5f8(%rsp), %rdi
callq 0x1f70
leaq 0x5f8(%rsp), %rax
movq %rax, 0x508(%rsp)
movq 0x508(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x500(%rsp)
movq 0x508(%rsp), %rdi
callq 0x5de0
movq %rax, 0x4f8(%rsp)
movq 0x500(%rsp), %rax
cmpq 0x4f8(%rsp), %rax
je 0x3a8f
movq 0x500(%rsp), %rax
movq %rax, 0x4f0(%rsp)
movq 0x4f0(%rsp), %rax
movl (%rax), %esi
leaq 0x4657(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3a77
jmp 0x3a79
movq 0x500(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x500(%rsp)
jmp 0x3a3b
leaq 0x45b0(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3a9d
leaq 0x463b(%rip), %rdi      # 0x80df
callq 0x1110
jmp 0x3aab
leaq 0x5f8(%rsp), %rdi
xorl %esi, %esi
callq 0x5ed0
movq %rax, 0x118(%rsp)
jmp 0x3ac4
movq 0x118(%rsp), %rax
movl $0x1, (%rax)
leaq 0x5f8(%rsp), %rdi
callq 0x5ef0
movl %eax, 0x4ec(%rsp)
movl $0x0, 0x610(%rsp)
movl 0x610(%rsp), %eax
cmpl 0x4ec(%rsp), %eax
jge 0x3b4e
movl 0x610(%rsp), %esi
leaq 0x5f8(%rsp), %rdi
callq 0x5ed0
movq %rax, 0x110(%rsp)
jmp 0x3b1f
movq 0x110(%rsp), %rax
movl (%rax), %esi
leaq 0x4595(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3b39
jmp 0x3b3b
movl 0x610(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x610(%rsp)
jmp 0x3af1
leaq 0x44f1(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3b5c
leaq 0x45a1(%rip), %rdi      # 0x8104
callq 0x1110
jmp 0x3b6a
movups 0x47f7(%rip), %xmm0     # 0x8368
movaps %xmm0, 0x4b0(%rsp)
movl $0xe, 0x4c0(%rsp)
leaq 0x4b0(%rsp), %rax
movq %rax, 0x4c8(%rsp)
movq $0x5, 0x4d0(%rsp)
movq 0x4c8(%rsp), %rsi
movq 0x4d0(%rsp), %rdx
leaq 0x4d8(%rsp), %rdi
callq 0x5f00
jmp 0x3bbf
leaq 0x4d8(%rsp), %rax
movq %rax, 0x4a8(%rsp)
movq 0x4a8(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x4a0(%rsp)
movq 0x4a8(%rsp), %rdi
callq 0x5de0
movq %rax, 0x498(%rsp)
movq 0x4a0(%rsp), %rax
cmpq 0x498(%rsp), %rax
je 0x3c66
movq 0x4a0(%rsp), %rax
movq %rax, 0x490(%rsp)
movq 0x490(%rsp), %rax
movl (%rax), %esi
leaq 0x4499(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3c35
jmp 0x3c37
movq 0x4a0(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x4a0(%rsp)
jmp 0x3bf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5160
leaq 0x43d9(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3c74
leaq 0x44a7(%rip), %rdi      # 0x8122
callq 0x1110
jmp 0x3c82
leaq 0x5f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x5ff0
jmp 0x3c99
leaq 0x5f8(%rsp), %rax
movq %rax, 0x488(%rsp)
movq 0x488(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x480(%rsp)
movq 0x488(%rsp), %rdi
callq 0x5de0
movq %rax, 0x478(%rsp)
movq 0x480(%rsp), %rax
cmpq 0x478(%rsp), %rax
je 0x3d27
movq 0x480(%rsp), %rax
movq %rax, 0x470(%rsp)
movq 0x470(%rsp), %rax
movl (%rax), %esi
leaq 0x43bf(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3d0f
jmp 0x3d11
movq 0x480(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x480(%rsp)
jmp 0x3cd3
leaq 0x4319(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x3d35
leaq 0x4d8(%rsp), %rax
movq %rax, 0x468(%rsp)
movq 0x468(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x460(%rsp)
movq 0x468(%rsp), %rdi
callq 0x5de0
movq %rax, 0x458(%rsp)
movq 0x460(%rsp), %rax
cmpq 0x458(%rsp), %rax
je 0x3dc3
movq 0x460(%rsp), %rax
movq %rax, 0x450(%rsp)
movq 0x450(%rsp), %rax
movl (%rax), %esi
leaq 0x4323(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3dab
jmp 0x3dad
movq 0x460(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x460(%rsp)
jmp 0x3d6f
leaq 0x427c(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3dd1
leaq 0x435c(%rip), %rdi      # 0x8134
callq 0x1110
jmp 0x3ddf
leaq 0x5f8(%rsp), %rdi
callq 0x32e0
leaq 0x5f8(%rsp), %rax
movq %rax, 0x448(%rsp)
movq 0x448(%rsp), %rdi
callq 0x5dd0
movq %rax, 0x440(%rsp)
movq 0x448(%rsp), %rdi
callq 0x5de0
movq %rax, 0x438(%rsp)
movq 0x440(%rsp), %rax
cmpq 0x438(%rsp), %rax
je 0x3e7a
movq 0x440(%rsp), %rax
movq %rax, 0x430(%rsp)
movq 0x430(%rsp), %rax
movl (%rax), %esi
leaq 0x426c(%rip), %rdi      # 0x80c5
xorl %eax, %eax
callq 0x1040
jmp 0x3e62
jmp 0x3e64
movq 0x440(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x440(%rsp)
jmp 0x3e26
leaq 0x41c5(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x3e88
leaq 0x42b8(%rip), %rdi      # 0x8147
callq 0x1110
jmp 0x3e96
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x418(%rsp)
leaq 0x420(%rsp), %rdi
movl $0x5, %esi
leaq 0x418(%rsp), %rdx
callq 0x6070
jmp 0x3ec4
leaq 0x420(%rsp), %rdi
xorl %esi, %esi
callq 0x6120
movq %rax, 0x108(%rsp)
jmp 0x3edd
movq 0x108(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax)
leaq 0x420(%rsp), %rdi
movl $0x4, %esi
callq 0x6120
movq %rax, 0x100(%rsp)
jmp 0x3f0e
movq 0x100(%rsp), %rax
movsd 0x40f2(%rip), %xmm0     # 0x8010
movsd %xmm0, (%rax)
leaq 0x420(%rsp), %rax
movq %rax, 0x410(%rsp)
movq 0x410(%rsp), %rdi
callq 0x6140
movq %rax, 0x408(%rsp)
movq 0x410(%rsp), %rdi
callq 0x6150
movq %rax, 0x400(%rsp)
movq 0x408(%rsp), %rax
cmpq 0x400(%rsp), %rax
je 0x3fcb
movq 0x408(%rsp), %rax
movq %rax, 0x3f8(%rsp)
movq 0x3f8(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x41d0(%rip), %rdi      # 0x8161
movb $0x1, %al
callq 0x1040
jmp 0x3f9a
jmp 0x3f9c
movq 0x408(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x408(%rsp)
jmp 0x3f5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5153
leaq 0x4075(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x3fd9
leaq 0x3e8(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0x6170
jmp 0x3ff0
leaq 0x3e8(%rsp), %rax
movq %rax, 0x3e0(%rsp)
movq 0x3e0(%rsp), %rdi
callq 0x6140
movq %rax, 0x3d8(%rsp)
movq 0x3e0(%rsp), %rdi
callq 0x6150
movq %rax, 0x3d0(%rsp)
movq 0x3d8(%rsp), %rax
cmpq 0x3d0(%rsp), %rax
je 0x4099
movq 0x3d8(%rsp), %rax
movq %rax, 0x3c8(%rsp)
movq 0x3c8(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x4102(%rip), %rdi      # 0x8161
movb $0x1, %al
callq 0x1040
jmp 0x4068
jmp 0x406a
movq 0x3d8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x3d8(%rsp)
jmp 0x402a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5146
leaq 0x3fa6(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x40a7
leaq 0x40ba(%rip), %rdi      # 0x8168
callq 0x1110
jmp 0x40b5
leaq 0x3b8(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0x6170
jmp 0x40cc
leaq 0x3b8(%rsp), %rax
movq %rax, 0x3b0(%rsp)
movq 0x3b0(%rsp), %rdi
callq 0x6140
movq %rax, 0x3a8(%rsp)
movq 0x3b0(%rsp), %rdi
callq 0x6150
movq %rax, 0x3a0(%rsp)
movq 0x3a8(%rsp), %rax
cmpq 0x3a0(%rsp), %rax
je 0x4175
movq 0x3a8(%rsp), %rax
movq %rax, 0x398(%rsp)
movq 0x398(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x404f(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x4144
jmp 0x4146
movq 0x3a8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x3a8(%rsp)
jmp 0x4106
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5139
leaq 0x3ecb(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x4183
movups 0x4206(%rip), %xmm0     # 0x8390
movaps %xmm0, 0x360(%rsp)
movups 0x41e7(%rip), %xmm0     # 0x8380
movaps %xmm0, 0x350(%rsp)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x370(%rsp)
leaq 0x350(%rsp), %rax
movq %rax, 0x378(%rsp)
movq $0x5, 0x380(%rsp)
movq 0x378(%rsp), %rsi
movq 0x380(%rsp), %rdx
leaq 0x388(%rsp), %rdi
callq 0x6230
jmp 0x41ee
leaq 0x388(%rsp), %rax
movq %rax, 0x348(%rsp)
movq 0x348(%rsp), %rdi
callq 0x6140
movq %rax, 0x340(%rsp)
movq 0x348(%rsp), %rdi
callq 0x6150
movq %rax, 0x338(%rsp)
movq 0x340(%rsp), %rax
cmpq 0x338(%rsp), %rax
je 0x4297
movq 0x340(%rsp), %rax
movq %rax, 0x330(%rsp)
movq 0x330(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3f2d(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x4266
jmp 0x4268
movq 0x340(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x340(%rsp)
jmp 0x4228
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x512c
leaq 0x3da8(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x42a5
leaq 0x3ee4(%rip), %rdi      # 0x8190
callq 0x1110
jmp 0x42b3
leaq 0x388(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x6140
movq 0xf0(%rsp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
movabsq $0x4004000000000000, %rax # imm = 0x4004000000000000
movq %rax, 0x320(%rsp)
leaq 0x320(%rsp), %rdx
callq 0x6320
movq %rax, 0xf8(%rsp)
jmp 0x4300
movq 0xf8(%rsp), %rax
movq %rax, 0x328(%rsp)
movq 0x328(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3e81(%rip), %rdi      # 0x81a4
movb $0x1, %al
callq 0x1040
jmp 0x432c
leaq 0x388(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x6140
movq 0xe0(%rsp), %rdi
movq %rax, %rsi
movabsq $0x4010000000000000, %rax # imm = 0x4010000000000000
movq %rax, 0x318(%rsp)
leaq 0x318(%rsp), %rdx
callq 0x6320
movq %rax, 0xe8(%rsp)
jmp 0x4375
movq 0xe8(%rsp), %rax
movq %rax, 0x328(%rsp)
movq 0x328(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3e0c(%rip), %rdi      # 0x81a4
movb $0x1, %al
callq 0x1040
jmp 0x43a1
movabsq $-0x4000000000000000, %rax # imm = 0xC000000000000000
movq %rax, 0x2e8(%rsp)
movabsq $-0x3ff8000000000000, %rax # imm = 0xC008000000000000
movq %rax, 0x2f0(%rsp)
leaq 0x2e8(%rsp), %rax
movq %rax, 0x2f8(%rsp)
movq $0x2, 0x300(%rsp)
movq 0x2f8(%rsp), %rsi
movq 0x300(%rsp), %rdx
leaq 0x308(%rsp), %rdi
callq 0x6230
jmp 0x4400
leaq 0x388(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x6140
addq $0x8, %rax
movq %rax, 0xc8(%rsp)
leaq 0x308(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x6140
movq 0xb8(%rsp), %rdi
movq %rax, 0xd0(%rsp)
callq 0x6150
movq 0xc0(%rsp), %rdi
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
movq %rax, %rcx
callq 0x63d0
movq %rax, 0xd8(%rsp)
jmp 0x4475
movq 0xd8(%rsp), %rax
movq %rax, 0x328(%rsp)
movq 0x328(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x8(%rax), %xmm1
leaq 0x3d1d(%rip), %rdi      # 0x81ba
movb $0x2, %al
callq 0x1040
jmp 0x44a6
leaq 0x388(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq 0x2e0(%rsp), %rdi
callq 0x6140
movq %rax, 0x2d8(%rsp)
movq 0x2e0(%rsp), %rdi
callq 0x6150
movq %rax, 0x2d0(%rsp)
movq 0x2d8(%rsp), %rax
cmpq 0x2d0(%rsp), %rax
je 0x454f
movq 0x2d8(%rsp), %rax
movq %rax, 0x2c8(%rsp)
movq 0x2c8(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3c75(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x451e
jmp 0x4520
movq 0x2d8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x2d8(%rsp)
jmp 0x44e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x511f
leaq 0x3af0(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x455d
leaq 0x388(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x6150
movq 0xa8(%rsp), %rdi
movq %rax, %rsi
movq $0x0, 0x2c0(%rsp)
movl $0x2, %edx
leaq 0x2c0(%rsp), %rcx
callq 0x6510
movq %rax, 0xb0(%rsp)
jmp 0x45a5
movq 0xb0(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x388(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x6150
movq 0x98(%rsp), %rdi
movq %rax, %rsi
addq $-0x10, %rsi
movabsq $0x3fe0000000000000, %rax # imm = 0x3FE0000000000000
movq %rax, 0x2b8(%rsp)
movl $0x3, %edx
leaq 0x2b8(%rsp), %rcx
callq 0x6510
movq %rax, 0xa0(%rsp)
jmp 0x4607
movq 0xa0(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x388(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x6140
movq 0x88(%rsp), %rdi
movq %rax, %rsi
movabsq $0x4014000000000000, %rax # imm = 0x4014000000000000
movq %rax, 0x2a0(%rsp)
movups 0x3d68(%rip), %xmm0     # 0x83b8
movaps %xmm0, 0x290(%rsp)
movups 0x3d49(%rip), %xmm0     # 0x83a8
movaps %xmm0, 0x280(%rsp)
leaq 0x280(%rsp), %rax
movq %rax, 0x2a8(%rsp)
movq $0x5, 0x2b0(%rsp)
movq 0x2a8(%rsp), %rdx
movq 0x2b0(%rsp), %rcx
callq 0x6630
movq %rax, 0x90(%rsp)
jmp 0x46a2
movq 0x90(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x3b1c(%rip), %rdi      # 0x81d5
xorl %eax, %eax
callq 0x1040
jmp 0x46c2
leaq 0x388(%rsp), %rax
movq %rax, 0x278(%rsp)
movq 0x278(%rsp), %rdi
callq 0x6140
movq %rax, 0x270(%rsp)
movq 0x278(%rsp), %rdi
callq 0x6150
movq %rax, 0x268(%rsp)
movq 0x270(%rsp), %rax
cmpq 0x268(%rsp), %rax
je 0x4752
movq 0x270(%rsp), %rax
movq %rax, 0x260(%rsp)
movq 0x260(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3a59(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x473a
jmp 0x473c
movq 0x270(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x270(%rsp)
jmp 0x46fc
leaq 0x38ee(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x4760
movabsq $0x4014000000000000, %rax # imm = 0x4014000000000000
movq %rax, 0x248(%rsp)
leaq 0x250(%rsp), %rdi
movl $0x2, %esi
leaq 0x248(%rsp), %rdx
callq 0x6070
jmp 0x478e
leaq 0x250(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x6150
movq %rax, 0x78(%rsp)
leaq 0x388(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x6140
movq 0x68(%rsp), %rdi
movq %rax, 0x80(%rsp)
callq 0x6150
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq %rax, %rcx
callq 0x63d0
jmp 0x47e5
leaq 0x250(%rsp), %rax
movq %rax, 0x240(%rsp)
movq 0x240(%rsp), %rdi
callq 0x6140
movq %rax, 0x238(%rsp)
movq 0x240(%rsp), %rdi
callq 0x6150
movq %rax, 0x230(%rsp)
movq 0x238(%rsp), %rax
cmpq 0x230(%rsp), %rax
je 0x488e
movq 0x238(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0x228(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3936(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x485d
jmp 0x485f
movq 0x238(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x238(%rsp)
jmp 0x481f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5112
leaq 0x37b2(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x489c
leaq 0x250(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x6140
movq 0x60(%rsp), %rdi
movq %rax, %rsi
movabsq $0x4018000000000000, %rax # imm = 0x4018000000000000
movq %rax, 0x210(%rsp)
movups 0x3b01(%rip), %xmm0     # 0x83d0
movaps %xmm0, 0x200(%rsp)
leaq 0x200(%rsp), %rax
movq %rax, 0x218(%rsp)
movq $0x3, 0x220(%rsp)
movq 0x218(%rsp), %rdx
movq 0x220(%rsp), %rcx
callq 0x6630
jmp 0x490a
leaq 0x250(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x6150
movq 0x58(%rsp), %rdi
movq %rax, %rsi
movabsq $-0x3ffc000000000000, %rax # imm = 0xC004000000000000
movq %rax, 0x1e0(%rsp)
movups 0x3aab(%rip), %xmm0     # 0x83e8
movaps %xmm0, 0x1d0(%rsp)
leaq 0x1d0(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movq $0x3, 0x1f8(%rsp)
movq 0x1f0(%rsp), %rdx
movq 0x1f8(%rsp), %rcx
callq 0x6630
jmp 0x4978
leaq 0x250(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rdi
callq 0x6140
movq %rax, 0x1c0(%rsp)
movq 0x1c8(%rsp), %rdi
callq 0x6150
movq %rax, 0x1b8(%rsp)
movq 0x1c0(%rsp), %rax
cmpq 0x1b8(%rsp), %rax
je 0x4a08
movq 0x1c0(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x37a3(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x49f0
jmp 0x49f2
movq 0x1c0(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x1c0(%rsp)
jmp 0x49b2
leaq 0x3637(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x4a16
leaq 0x37bd(%rip), %rdi      # 0x81da
callq 0x1110
jmp 0x4a24
leaq 0x250(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x6140
movq 0x48(%rsp), %rdi
movq %rax, %rsi
callq 0x2780
movq 0x48(%rsp), %rdi
callq 0x6140
movq 0x48(%rsp), %rdi
addq $0x10, %rax
movq %rax, 0x50(%rsp)
callq 0x6140
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq %rax, %rdx
addq $0x20, %rdx
callq 0x30a0
leaq 0x3770(%rip), %rdi      # 0x81ed
xorl %eax, %eax
callq 0x1040
jmp 0x4a86
leaq 0x250(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x6140
movq %rax, 0x1a0(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x6150
movq %rax, 0x198(%rsp)
movq 0x1a0(%rsp), %rax
cmpq 0x198(%rsp), %rax
je 0x4b16
movq 0x1a0(%rsp), %rax
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3695(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x4afe
jmp 0x4b00
movq 0x1a0(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x1a0(%rsp)
jmp 0x4ac0
leaq 0x3529(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x4b24
leaq 0x36c7(%rip), %rdi      # 0x81f2
callq 0x1110
jmp 0x4b32
leaq 0x250(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x67a0
movq 0x38(%rsp), %rdi
movl %eax, 0x44(%rsp)
callq 0x67b0
movl 0x44(%rsp), %esi
movl %eax, %edx
leaq 0x36ae(%rip), %rdi      # 0x820d
xorl %eax, %eax
callq 0x1040
jmp 0x4b68
leaq 0x250(%rsp), %rdi
callq 0x67c0
jmp 0x4b77
leaq 0x250(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x67a0
movq 0x28(%rsp), %rdi
movl %eax, 0x34(%rsp)
callq 0x67b0
movl 0x34(%rsp), %esi
movl %eax, %edx
leaq 0x3679(%rip), %rdi      # 0x821d
xorl %eax, %eax
callq 0x1040
jmp 0x4bad
leaq 0x3493(%rip), %rdi      # 0x8047
callq 0x1110
jmp 0x4bbb
leaq 0x366a(%rip), %rdi      # 0x822c
callq 0x1110
jmp 0x4bc9
leaq 0x180(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x6170
jmp 0x4be0
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x67e0
movb %al, 0x27(%rsp)
jmp 0x4bfb
movb 0x27(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3637(%rip), %rdi      # 0x8243
xorl %eax, %eax
callq 0x1040
jmp 0x4c15
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6870
movb %al, 0x26(%rsp)
jmp 0x4c30
movb 0x26(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3611(%rip), %rdi      # 0x8252
xorl %eax, %eax
callq 0x1040
jmp 0x4c4a
leaq 0x250(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x67e0
movb %al, 0x25(%rsp)
jmp 0x4c65
movb 0x25(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x35eb(%rip), %rdi      # 0x8261
xorl %eax, %eax
callq 0x1040
jmp 0x4c7f
leaq 0x250(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6870
movb %al, 0x24(%rsp)
jmp 0x4c9a
movb 0x24(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x35c5(%rip), %rdi      # 0x8270
xorl %eax, %eax
callq 0x1040
jmp 0x4cb4
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6900
movb %al, 0x23(%rsp)
jmp 0x4ccf
movb 0x23(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x359f(%rip), %rdi      # 0x827f
xorl %eax, %eax
callq 0x1040
jmp 0x4ce9
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x69f0
movb %al, 0x22(%rsp)
jmp 0x4d04
movb 0x22(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3579(%rip), %rdi      # 0x828e
xorl %eax, %eax
callq 0x1040
jmp 0x4d1e
leaq 0x180(%rsp), %rdi
leaq 0x388(%rsp), %rsi
callq 0x6900
movb %al, 0x21(%rsp)
jmp 0x4d39
movb 0x21(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3553(%rip), %rdi      # 0x829d
xorl %eax, %eax
callq 0x1040
jmp 0x4d53
leaq 0x250(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x69f0
movb %al, 0x20(%rsp)
jmp 0x4d6e
movb 0x20(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x352c(%rip), %rdi      # 0x82ab
xorl %eax, %eax
callq 0x1040
jmp 0x4d88
leaq 0x180(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x6900
movb %al, 0x1f(%rsp)
jmp 0x4da3
movb 0x1f(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3506(%rip), %rdi      # 0x82ba
xorl %eax, %eax
callq 0x1040
jmp 0x4dbd
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6ae0
movb %al, 0x1e(%rsp)
jmp 0x4dd8
movb 0x1e(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x34df(%rip), %rdi      # 0x82c8
xorl %eax, %eax
callq 0x1040
jmp 0x4df2
leaq 0x388(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6bc0
movb %al, 0x1d(%rsp)
jmp 0x4e0d
movb 0x1d(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x34ba(%rip), %rdi      # 0x82d8
xorl %eax, %eax
callq 0x1040
jmp 0x4e27
leaq 0x180(%rsp), %rdi
leaq 0x388(%rsp), %rsi
callq 0x6ae0
movb %al, 0x1c(%rsp)
jmp 0x4e42
movb 0x1c(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3493(%rip), %rdi      # 0x82e6
xorl %eax, %eax
callq 0x1040
jmp 0x4e5c
leaq 0x250(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6bc0
movb %al, 0x1b(%rsp)
jmp 0x4e77
movb 0x1b(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x346d(%rip), %rdi      # 0x82f5
xorl %eax, %eax
callq 0x1040
jmp 0x4e91
leaq 0x180(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x6ae0
movb %al, 0x1a(%rsp)
jmp 0x4eac
movb 0x1a(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq 0x3446(%rip), %rdi      # 0x8303
xorl %eax, %eax
callq 0x1040
jmp 0x4ec6
leaq 0x3179(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x4ed4
leaq 0x3437(%rip), %rdi      # 0x8312
callq 0x1110
jmp 0x4ee2
leaq 0x178(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x6ca0
leaq 0x170(%rsp), %rdi
movq %rdi, 0x10(%rsp)
leaq 0x180(%rsp), %rsi
callq 0x6d10
movq 0x10(%rsp), %rsi
leaq 0x178(%rsp), %rdi
callq 0x6ce0
movb %al, 0x19(%rsp)
jmp 0x4f29
movb 0x19(%rsp), %al
testb $0x1, %al
jne 0x4f33
jmp 0x4f8c
leaq 0x178(%rsp), %rdi
callq 0x6d50
movq %rax, 0x8(%rsp)
jmp 0x4f47
movq 0x8(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x3233(%rip), %rdi      # 0x818a
movb $0x1, %al
callq 0x1040
jmp 0x4f60
jmp 0x4f62
leaq 0x178(%rsp), %rdi
callq 0x6d80
jmp 0x4f71
jmp 0x4ef7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
jmp 0x5105
leaq 0x30b3(%rip), %rdi      # 0x8046
callq 0x1110
jmp 0x4f9a
callq 0x1090
movq %rax, 0x608(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6da0
movl $0x0, 0x610(%rsp)
cmpl $0x989680, 0x610(%rsp) # imm = 0x989680
jge 0x501e
leaq 0x158(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x6db0
jmp 0x4fe3
jmp 0x4fe5
movl 0x610(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x610(%rsp)
jmp 0x4fbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f0(%rsp)
movl %eax, 0x5ec(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6e20
jmp 0x5105
callq 0x1090
movq 0x608(%rsp), %rcx
subq %rcx, %rax
cvtsi2sd %rax, %xmm0
movsd 0x2fcd(%rip), %xmm1     # 0x8008
divsd %xmm1, %xmm0
leaq 0x32ea(%rip), %rdi      # 0x8330
movb $0x1, %al
callq 0x1040
jmp 0x504f
movl $0x0, 0x614(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6e20
leaq 0x180(%rsp), %rdi
callq 0x6e80
leaq 0x250(%rsp), %rdi
callq 0x6e80
leaq 0x308(%rsp), %rdi
callq 0x6e80
leaq 0x388(%rsp), %rdi
callq 0x6e80
leaq 0x3b8(%rsp), %rdi
callq 0x6e80
leaq 0x3e8(%rsp), %rdi
callq 0x6e80
leaq 0x420(%rsp), %rdi
callq 0x6e80
leaq 0x4d8(%rsp), %rdi
callq 0x6eb0
leaq 0x530(%rsp), %rdi
callq 0x6eb0
leaq 0x5d8(%rsp), %rdi
callq 0x6ee0
leaq 0x5f8(%rsp), %rdi
callq 0x6eb0
movl 0x614(%rsp), %eax
addq $0x618, %rsp            # imm = 0x618
retq
leaq 0x180(%rsp), %rdi
callq 0x6e80
leaq 0x250(%rsp), %rdi
callq 0x6e80
leaq 0x308(%rsp), %rdi
callq 0x6e80
leaq 0x388(%rsp), %rdi
callq 0x6e80
leaq 0x3b8(%rsp), %rdi
callq 0x6e80
leaq 0x3e8(%rsp), %rdi
callq 0x6e80
leaq 0x420(%rsp), %rdi
callq 0x6e80
leaq 0x4d8(%rsp), %rdi
callq 0x6eb0
leaq 0x530(%rsp), %rdi
callq 0x6eb0
leaq 0x5d8(%rsp), %rdi
callq 0x6ee0
leaq 0x5f8(%rsp), %rdi
callq 0x6eb0
movq 0x5f0(%rsp), %rdi
callq 0x1130
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)