// File: /workspace/github_cpp_makefile_star2_O3/flastest[P]HeterogeneousParallelDijkstra/workloads.cc
// Function: test3(bool)
bool test3(bool TEST_DEBUG)
{
	const int num_nodes = 5;
	enum nodes { A, B, C, D, E };
	Edge edge_array[] = { 
			Edge(A, B), Edge(A, C), 
			Edge(B, A), Edge(B, D), 
			Edge(C, A), Edge(C, D),
			Edge(D, B), Edge(D, C),
			Edge(E,B)
	};
	int weights[] = { 
		2, 2,
		2, 2,
		2, 2,
		2, 2,
		2
	};
	int num_arcs = sizeof(edge_array) / sizeof(Edge);

	//the graph
	graph_t g(edge_array, edge_array + num_arcs, weights, num_nodes);

	// Keeps track of the predecessor of each vertex
	predecessor_map_t p;
	// Keeps track of the distance to each vertex
	std::vector<int> d(num_vertices(g));



	// test3a, with source A.
	vertex_descriptor s = vertex(A, g);

	auto distances = dijkstra_algorithm(g, s, p);

	vector<float> true_distances = {0, 2, 2, 4, INFINITY};
	if (TEST_DEBUG) cout << "test3a\n" << print_dijkstra_results(g,distances);
	for (int i = 0; i < num_nodes; i++)
	{
		if (distances[vertex(i,g)] != true_distances[i]){
			return false;
		}
	}
	


	// test3b, with source B.
	s = vertex(B, g);

	distances = dijkstra_algorithm(g, s, p);

	true_distances = {2, 0, 4, 2, INFINITY};
	if (TEST_DEBUG) cout << "test3b\n" << print_dijkstra_results(g,distances);
	for (int i = 0; i < num_nodes; i++)
	{
		if (distances[vertex(i,g)] != true_distances[i]){
			return false;
		}
	}
	

	// test3c, with source C.
	s = vertex(C, g);

	distances = dijkstra_algorithm(g, s, p);

	true_distances = {2, 4, 0, 2, INFINITY};
	if (TEST_DEBUG) cout << "test3c\n" << print_dijkstra_results(g,distances);
	for (int i = 0; i < num_nodes; i++)
	{
		if (distances[vertex(i,g)] != true_distances[i]){
			return false;
		}
	}
	


	// test3d, with source D.
	s = vertex(D, g);

	distances = dijkstra_algorithm(g, s, p);

	true_distances = {4, 2, 2, 0, INFINITY};
	if (TEST_DEBUG) cout << "test3d\n" << print_dijkstra_results(g,distances);
	for (int i = 0; i < num_nodes; i++)
	{
		if (distances[vertex(i,g)] != true_distances[i]){
			return false;
		}
	}


	// test3e, with source E.
	s = vertex(E, g);

	distances = dijkstra_algorithm(g, s, p);

	true_distances = {4, 2, 6, 4, 0};
	if (TEST_DEBUG) cout << "test3c\n" << print_dijkstra_results(g,distances);
	for (int i = 0; i < num_nodes; i++)
	{
		if (distances[vertex(i,g)] != true_distances[i]){
			return false;
		}
	}

	return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x398, %rsp            # imm = 0x398
movl %edi, %ebp
movaps 0xb315(%rip), %xmm0     # 0x11010
leaq 0x398(%rsp), %rdx
movaps %xmm0, -0x48(%rdx)
movaps 0xb392(%rip), %xmm0     # 0x110a0
movaps %xmm0, -0x38(%rdx)
movaps 0xb327(%rip), %xmm0     # 0x11040
movaps %xmm0, -0x28(%rdx)
movaps 0xb38c(%rip), %xmm0     # 0x110b0
movaps %xmm0, -0x18(%rdx)
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, -0x8(%rdx)
movaps 0xc573(%rip), %xmm0     # 0x122b0
leaq 0x320(%rsp), %rcx
movaps %xmm0, 0x10(%rcx)
movaps 0xc550(%rip), %xmm0     # 0x122a0
movaps %xmm0, (%rcx)
movl $0x2, 0x20(%rcx)
leaq 0xe8(%rsp), %rax
movq %rax, (%rsp)
xorl %r14d, %r14d
leaq 0x98(%rsp), %rbx
leaq 0x350(%rsp), %rsi
movl $0x5, %r8d
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x8600
leaq 0xf0(%rsp), %rax
movl $0x0, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %r14, 0x20(%rax)
movq 0x20(%rbx), %rsi
subq 0x18(%rbx), %rsi
sarq $0x5, %rsi
leaq 0xd0(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x8574
leaq 0x48(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x68(%rsp), %rdi
leaq 0x98(%rsp), %rbx
leaq 0xe8(%rsp), %rcx
movq %rbx, %rsi
callq *0x12448(%rip)          # 0x18238
movups 0xc4cd(%rip), %xmm0     # 0x122c4
leaq 0x10(%rsp), %rsi
movaps %xmm0, (%rsi)
movl $0x7f800000, 0x10(%rsi) # imm = 0x7F800000
leaq 0x50(%rsp), %rdi
leaq 0x47(%rsp), %rcx
movl $0x5, %edx
callq 0x87f6
testb %bpl, %bpl
je 0x5ef9
movq 0x121a6(%rip), %rdi     # 0x17fd0
leaq 0xb355(%rip), %rsi      # 0x11186
movl $0x7, %edx
callq 0x32a0
leaq 0x2e8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x86d2
leaq 0x1d8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x897c
leaq 0x10(%rsp), %rdi
leaq 0x2e8(%rsp), %r14
leaq 0x1d8(%rsp), %rdx
movq %r14, %rsi
callq 0x36ec
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x12140(%rip), %rdi     # 0x17fd0
callq 0x32a0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5eb0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x1d8(%rsp), %rdi
callq 0x8b50
leaq 0x300(%rsp), %r15
movq 0x18(%r15), %rdi
movl $0x1, %esi
callq 0x3250
movq %r15, %rdi
callq 0x88ea
movq -0x18(%r15), %rdi
cmpq %r14, %rdi
je 0x5ef9
movq (%rdi), %r15
movl $0x28, %esi
callq 0x3250
movq %r15, %rdi
cmpq %r14, %r15
jne 0x5ee4
leaq 0xb0(%rsp), %r14
xorl %r13d, %r13d
leaq 0x68(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r13, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x850e
movss (%rax), %xmm0
movq 0x50(%rsp), %rdi
ucomiss (%rdi,%r13,4), %xmm0
jne 0x6672
jp 0x6672
incq %r13
cmpq $0x5, %r13
jne 0x5f0e
leaq 0x48(%rsp), %rdx
movq $0x1, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xe8(%rsp), %rcx
callq *0x122d0(%rip)          # 0x18238
leaq 0x68(%rsp), %rdi
callq 0x8b64
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x5fb4
leaq 0x70(%rsp), %rcx
leaq 0x18(%rsp), %rdx
movl (%rdx), %esi
movl %esi, (%rcx)
movq %rax, 0x8(%rcx)
movups 0x10(%rdx), %xmm0
movups %xmm0, 0x10(%rcx)
movq %rcx, 0x8(%rax)
movq 0x20(%rdx), %rax
movq %rax, 0x20(%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x8b50
movups 0xc310(%rip), %xmm0     # 0x122d8
movaps %xmm0, (%r15)
movl $0x7f800000, 0x10(%r15) # imm = 0x7F800000
leaq 0x24(%rsp), %rdx
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xaa3c
testb %bpl, %bpl
je 0x60c9
movq 0x11fd8(%rip), %rdi     # 0x17fd0
leaq 0xb18f(%rip), %rsi      # 0x1118e
movl $0x7, %edx
callq 0x32a0
leaq 0x2b0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x86d2
leaq 0x1a8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x897c
leaq 0x10(%rsp), %rdi
leaq 0x2b0(%rsp), %r15
leaq 0x1a8(%rsp), %rdx
movq %r15, %rsi
callq 0x36ec
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x11f72(%rip), %rdi     # 0x17fd0
callq 0x32a0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x607e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x1a8(%rsp), %rdi
callq 0x8b50
leaq 0x2c8(%rsp), %r12
movq 0x18(%r12), %rdi
movl $0x1, %esi
callq 0x3250
movq %r12, %rdi
callq 0x88ea
movq -0x18(%r12), %rdi
cmpq %r15, %rdi
je 0x60c9
movq (%rdi), %r12
movl $0x28, %esi
callq 0x3250
movq %r12, %rdi
cmpq %r15, %r12
jne 0x60b4
xorl %r13d, %r13d
leaq 0x68(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r13, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x850e
movss (%rax), %xmm0
movq 0x50(%rsp), %rdi
ucomiss (%rdi,%r13,4), %xmm0
jne 0x6672
jp 0x6672
incq %r13
cmpq $0x5, %r13
jne 0x60d6
leaq 0x48(%rsp), %rdx
movq $0x2, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xe8(%rsp), %rcx
callq *0x12108(%rip)          # 0x18238
leaq 0x68(%rsp), %rdi
callq 0x8b64
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x617c
leaq 0x70(%rsp), %rcx
leaq 0x18(%rsp), %rdx
movl (%rdx), %esi
movl %esi, (%rcx)
movq %rax, 0x8(%rcx)
movups 0x10(%rdx), %xmm0
movups %xmm0, 0x10(%rcx)
movq %rcx, 0x8(%rax)
movq 0x20(%rdx), %rax
movq %rax, 0x20(%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x8b50
movups 0xc15c(%rip), %xmm0     # 0x122ec
movaps %xmm0, (%r15)
movl $0x7f800000, 0x10(%r15) # imm = 0x7F800000
leaq 0x24(%rsp), %rdx
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xaa3c
testb %bpl, %bpl
je 0x6291
movq 0x11e10(%rip), %rdi     # 0x17fd0
leaq 0xafcf(%rip), %rsi      # 0x11196
movl $0x7, %edx
callq 0x32a0
leaq 0x278(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x86d2
leaq 0x178(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x897c
leaq 0x10(%rsp), %rdi
leaq 0x278(%rsp), %r15
leaq 0x178(%rsp), %rdx
movq %r15, %rsi
callq 0x36ec
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x11daa(%rip), %rdi     # 0x17fd0
callq 0x32a0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6246
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x178(%rsp), %rdi
callq 0x8b50
leaq 0x290(%rsp), %r12
movq 0x18(%r12), %rdi
movl $0x1, %esi
callq 0x3250
movq %r12, %rdi
callq 0x88ea
movq -0x18(%r12), %rdi
cmpq %r15, %rdi
je 0x6291
movq (%rdi), %r12
movl $0x28, %esi
callq 0x3250
movq %r12, %rdi
cmpq %r15, %r12
jne 0x627c
xorl %r13d, %r13d
leaq 0x68(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r13, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x850e
movss (%rax), %xmm0
movq 0x50(%rsp), %rdi
ucomiss (%rdi,%r13,4), %xmm0
jne 0x6672
jp 0x6672
incq %r13
cmpq $0x5, %r13
jne 0x629e
leaq 0x48(%rsp), %rdx
movq $0x3, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xe8(%rsp), %rcx
callq *0x11f40(%rip)          # 0x18238
leaq 0x68(%rsp), %rdi
callq 0x8b64
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x6344
leaq 0x70(%rsp), %rcx
leaq 0x18(%rsp), %rdx
movl (%rdx), %esi
movl %esi, (%rcx)
movq %rax, 0x8(%rcx)
movups 0x10(%rdx), %xmm0
movups %xmm0, 0x10(%rcx)
movq %rcx, 0x8(%rax)
movq 0x20(%rdx), %rax
movq %rax, 0x20(%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x8b50
movups 0xbfa8(%rip), %xmm0     # 0x12300
movaps %xmm0, (%r15)
movl $0x7f800000, 0x10(%r15) # imm = 0x7F800000
leaq 0x24(%rsp), %rdx
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xaa3c
testb %bpl, %bpl
je 0x6459
movq 0x11c48(%rip), %rdi     # 0x17fd0
leaq 0xae0f(%rip), %rsi      # 0x1119e
movl $0x7, %edx
callq 0x32a0
leaq 0x240(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x86d2
leaq 0x148(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x897c
leaq 0x10(%rsp), %rdi
leaq 0x240(%rsp), %r15
leaq 0x148(%rsp), %rdx
movq %r15, %rsi
callq 0x36ec
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x11be2(%rip), %rdi     # 0x17fd0
callq 0x32a0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x640e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x148(%rsp), %rdi
callq 0x8b50
leaq 0x258(%rsp), %r12
movq 0x18(%r12), %rdi
movl $0x1, %esi
callq 0x3250
movq %r12, %rdi
callq 0x88ea
movq -0x18(%r12), %rdi
cmpq %r15, %rdi
je 0x6459
movq (%rdi), %r12
movl $0x28, %esi
callq 0x3250
movq %r12, %rdi
cmpq %r15, %r12
jne 0x6444
xorl %r13d, %r13d
leaq 0x68(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r13, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x850e
movss (%rax), %xmm0
movq 0x50(%rsp), %rdi
ucomiss (%rdi,%r13,4), %xmm0
jne 0x6672
jp 0x6672
incq %r13
cmpq $0x5, %r13
jne 0x6466
leaq 0x48(%rsp), %rdx
movq $0x4, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xe8(%rsp), %rcx
callq *0x11d78(%rip)          # 0x18238
leaq 0x68(%rsp), %rdi
callq 0x8b64
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x650c
leaq 0x70(%rsp), %rcx
leaq 0x18(%rsp), %rdx
movl (%rdx), %esi
movl %esi, (%rcx)
movq %rax, 0x8(%rcx)
movups 0x10(%rdx), %xmm0
movups %xmm0, 0x10(%rcx)
movq %rcx, 0x8(%rax)
movq 0x20(%rdx), %rax
movq %rax, 0x20(%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x8b50
movups 0xbdf4(%rip), %xmm0     # 0x12314
movaps %xmm0, (%r15)
movl $0x0, 0x10(%r15)
leaq 0x24(%rsp), %rdx
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xaa3c
testb %bpl, %bpl
je 0x6621
movq 0x11a80(%rip), %rdi     # 0x17fd0
leaq 0xac3f(%rip), %rsi      # 0x11196
movl $0x7, %edx
callq 0x32a0
leaq 0x208(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x86d2
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x897c
leaq 0x10(%rsp), %rdi
leaq 0x208(%rsp), %r15
leaq 0x118(%rsp), %rdx
movq %r15, %rsi
callq 0x36ec
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x11a1a(%rip), %rdi     # 0x17fd0
callq 0x32a0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x65d6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x118(%rsp), %rdi
callq 0x8b50
leaq 0x220(%rsp), %r12
movq 0x18(%r12), %rdi
movl $0x1, %esi
callq 0x3250
movq %r12, %rdi
callq 0x88ea
movq -0x18(%r12), %rdi
cmpq %r15, %rdi
je 0x6621
movq (%rdi), %r12
movl $0x28, %esi
callq 0x3250
movq %r12, %rdi
cmpq %r15, %r12
jne 0x660c
xorl %r13d, %r13d
leaq 0x68(%rsp), %r15
leaq 0x10(%rsp), %r12
movq %r13, 0x10(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x850e
movss (%rax), %xmm0
movq 0x50(%rsp), %rdi
movss (%rdi,%r13,4), %xmm1
movaps %xmm0, %xmm2
cmpeqss %xmm1, %xmm2
movd %xmm2, %ebp
andl $0x1, %ebp
ucomiss %xmm1, %xmm0
jne 0x6674
jp 0x6674
leaq 0x1(%r13), %rax
cmpq $0x4, %r13
movq %rax, %r13
jne 0x662e
jmp 0x6674
xorl %ebp, %ebp
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x3250
leaq 0x68(%rsp), %rdi
callq 0x8b50
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x66a8
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x3250
leaq 0xe8(%rsp), %rdi
callq 0x8b92
movq 0xc8(%rsp), %rdi
movl $0x1, %esi
callq 0x3250
movq %r14, %rdi
callq 0x88ea
movq 0x98(%rsp), %rdi
cmpq %rbx, %rdi
je 0x66f1
movq (%rdi), %r14
movl $0x28, %esi
callq 0x3250
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x66dc
movl %ebp, %eax
addq $0x398, %rsp            # imm = 0x398
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6728
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0x6728
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0x8b50
jmp 0x673a
movq %rax, %rbx
leaq 0x208(%rsp), %rdi
jmp 0x687a
jmp 0x689c
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6779
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0x6779
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x8b50
jmp 0x678b
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
jmp 0x687a
jmp 0x689c
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x67ca
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0x67ca
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0x8b50
jmp 0x67dc
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
jmp 0x687a
jmp 0x689c
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x681b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0x681b
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0x8b50
jmp 0x682d
movq %rax, %rbx
leaq 0x2b0(%rsp), %rdi
jmp 0x687a
jmp 0x689c
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6860
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0x6860
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
callq 0x8b50
jmp 0x6872
movq %rax, %rbx
leaq 0x2e8(%rsp), %rdi
callq 0x876c
jmp 0x689f
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
jmp 0x68b6
movq %rax, %rbx
jmp 0x68c0
movq %rax, %rbx
jmp 0x68dd
jmp 0x689c
jmp 0x689c
jmp 0x689c
jmp 0x689c
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x68b6
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x3250
leaq 0x68(%rsp), %rdi
callq 0x8b50
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x68dd
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x3250
leaq 0xe8(%rsp), %rdi
callq 0x8b92
leaq 0x98(%rsp), %rdi
callq 0x876c
movq %rbx, %rdi
callq 0x3400