// File: /workspace/github_cpp_makefile_star2_O3/flastest[P]HeterogeneousParallelDijkstra/BGL_Dijkstra.cc
// Function: parallel_dijkstra_thread(std::vector<bool, std::allocator<bool>>&, int, std::priority_queue<std::pair<unsigned long, float>, std::vector<std::pair<unsigned long, float>, std::allocator<std::pair<unsigned long, float>>>, Offer_Comparator>&, std::map<unsigned long, float, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, float>>>&, std::map<unsigned long, std::shared_ptr<std::mutex>, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::shared_ptr<std::mutex>>>>&, std::map<unsigned long, std::shared_ptr<std::mutex>, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::shared_ptr<std::mutex>>>>&, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long>>>&, boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS> const&)
void parallel_dijkstra_thread(vector<bool>& done,
					int thread_id,
					offer_pqueue_t& offer_pq,
					distance_map_t& distances,
					mutex_map_t& distance_mutexes,
					mutex_map_t& predecessor_mutexes,
					predecessor_map_t& predecessors,
					const graph_t& graph)
{
	if (DEBUG_THREAD) print_thread_debug(thread_id, "starting thread", debug_file_stream);
	if (DEBUG) std::cout<<"starting a thread" <<std::endl;
	const auto weight = get(edge_weight, graph);
	if (DEBUG) std::cout<< "is thread done? it shouldn't be. This should be true " <<!done[thread_id]<<std::endl;
	while(!done[thread_id])
	{
		if (DEBUG_THREAD) 
		{
			print_thread_debug(thread_id, "this thread isn't done yet", debug_file_stream);
			std::string debug = offer_pq.empty() ? "offer_pq is empty" : "offer_pq isn't empty";
			print_thread_debug(thread_id, debug, debug_file_stream); 
		}
		if (DEBUG) std::cout <<"this thread isn't done yet" <<std::endl;
		if (DEBUG) std::cout <<"is the offer_pq empty? 1 for yes, 0 for no: " <<offer_pq.empty()<<std::endl;
		


		if(!offer_pq.empty())
		{
			if (DEBUG_THREAD) 
			{

				print_thread_debug(thread_id, "offer_pq isn't empty", debug_file_stream);
				print_thread_debug(thread_id, std::to_string(offer_pq.size())+" amount of offers in offer pqueue", debug_file_stream);
			}
			if(DEBUG) std::cout<<"the offer pq isn't empty."<<std::endl;

			bool offer_found = false;

			offer_t offer;
			{
				print_thread_debug(thread_id, "locking offer", debug_file_stream);
				if (DEBUG) std::cout<<"locking offer"<<std::endl;
				//std::lock_guard<std::mutex> guard(pq_mutex);
				if(!offer_pq.empty())
				{
					offer = offer_pq.top();
					offer_pq.pop();
					if (DEBUG_THREAD) print_thread_debug(thread_id, std::to_string(offer_pq.size())+" amount of offers in offer pqueue", debug_file_stream);
					if (DEBUG_THREAD) print_thread_debug(thread_id, "offer is locked. its node is "+std::to_string(offer.first)+" and its dist is " +std::to_string(offer.second), debug_file_stream);
					offer_found = true;
				}
				print_thread_debug(thread_id, "unlocking offer", debug_file_stream);
			}	


			if (offer_found)
			{
				if (DEBUG) std::cout<< "we've obtained offer"<<std::endl; 
				const auto vertex = offer.first;
				const auto offer_distance = offer.second;
				bool explore = false;

				if (DEBUG) std::cout<<"offer distance is "<<offer_distance<<std::endl;
				{
					std::lock_guard<std::mutex> guard(*distance_mutexes[vertex]);
					if (DEBUG_THREAD) print_thread_debug(thread_id, "offer distance is " +std::to_string(offer_distance) + " and the already done distance is " + std::to_string(distances[vertex]), debug_file_stream);
					if(DEBUG) std::cout<<"offer distance is "<<offer_distance <<" and distances[vertex] is "<<distances[vertex] <<std::endl;
					if(offer_distance < distances[vertex])
					{
						if (DEBUG) std::cout <<"updating distances of " <<vertex<< " to offer_distance" <<std::endl;
						if (DEBUG_THREAD) print_thread_debug(thread_id, "updating distance of " + std::to_string(vertex) + " to offer distance", debug_file_stream);
						distances[vertex] = offer_distance;
						explore = true;
					}
				}


				if (explore) 
				{

					auto [start, finish] = out_edges(vertex,graph);

					for(;start != finish; start++)
					{

						vertex_descriptor neighbor = target(*start, graph);

						float weight_of_edge = get(weight, *start);

						float vd = offer_distance + weight_of_edge;

						{
						}

						relax_vertex(neighbor, 
							vertex,
						   	vd,  
			   				offer_pq,
			   				distance_mutexes, 
			   				distances,
			   				predecessor_mutexes,
							predecessors,
			   				thread_id );
					}
				}
			}
		}
		else // priority  queue is empty
		{	

			if(DEBUG) std::cout<< "this thread is done!" <<std::endl;
			{
				std::lock_guard<std::mutex> guard(done_mutex);
				done[thread_id] = true;
			}

			//const struct timespec NANOSEC = { 0, 1 };
			//nanosleep(&NANOSEC, NULL);
			if (DEBUG_THREAD) print_thread_debug(thread_id, "this thread is done!", debug_file_stream);


			if (DEBUG)
			{
				std::cout << "length of done is "<<done.size()<<std::endl;
				std::cout << "done[0] is "<<done[0]<<std::endl;
				std::cout <<"thread id is" <<thread_id<<std::endl;
			}

			int i = 0;
			//make sure all the other threads are done too
			while(done[i] && i < done.size()) 
			{
				i++;
			}
			if(i == done.size())
			{
				return;
			} //still need to take care of this livelock TO DO TODO 
			done[thread_id] = false;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2a8, %rsp            # imm = 0x2A8
movq %r9, 0x1b0(%rsp)
movq %r8, 0x118(%rsp)
movq %rcx, 0x68(%rsp)
movq %rdx, %r15
movl %esi, %r13d
movq %rdi, 0x40(%rsp)
cmpb $0x1, 0xc861(%rip)      # 0x18248
jne 0xba42
leaq 0x268(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x6bf4(%rip), %rsi      # 0x125f0
leaq 0x6bfc(%rip), %rdx      # 0x125ff
leaq 0x258(%rsp), %rbx
movq %rbx, %rdi
callq 0x8c78
leaq 0xc88e(%rip), %rdx      # 0x182a8
movl %r13d, %edi
movq %rbx, %rsi
callq 0xab40
movq 0x258(%rsp), %rdi
cmpq %r14, %rdi
je 0xba42
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x3250
movb 0xc831(%rip), %al       # 0x18279
cmpb $0x1, %al
jne 0xba94
movq 0xc57d(%rip), %rbx      # 0x17fd0
leaq 0x6ba6(%rip), %rsi      # 0x12600
movl $0x11, %edx
movq %rbx, %rdi
callq 0x32a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movb 0xc7e5(%rip), %al       # 0x18279
movq %r15, 0xe0(%rsp)
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
movslq %r13d, %r15
testb $0x1, %al
je 0xbb6c
movq 0xc518(%rip), %rbx      # 0x17fd0
leaq 0x6b53(%rip), %rsi      # 0x12612
movl $0x35, %edx
movq %rbx, %rdi
callq 0x32a0
leal 0x3f(%r13), %eax
testl %r13d, %r13d
cmovnsl %r13d, %eax
sarl $0x6, %eax
movslq %eax, %rbp
leaq (,%rbp,8), %rax
movq 0x40(%rsp), %r14
addq (%r14), %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
addq $0x3f, %rcx
andq %rcx, %r15
xorl %edx, %edx
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
cmpq %rcx, %r15
setbe %dl
movq %r13, %rcx
movl $0x1, %r13d
shlq %cl, %r13
movq -0x8(%rax,%rdx,8), %rax
xorl %esi, %esi
movq %rcx, %r12
btq %rcx, %rax
setae %sil
movq %rbx, %rdi
callq 0x3390
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
jmp 0xbb98
leal 0x3f(%r13), %eax
testl %r13d, %r13d
cmovnsl %r13d, %eax
sarl $0x6, %eax
movslq %eax, %rbp
leaq 0x3f(%rdx), %rax
andq %rax, %r15
movq %r13, %rcx
movl $0x1, %r13d
movq %rcx, %r12
shlq %cl, %r13
movq 0x40(%rsp), %r14
movq %r13, 0xd8(%rsp)
movq %r12, 0x30(%rsp)
xorl %eax, %eax
cmpq %rdx, %r15
setbe %al
movq %rbp, 0x1a8(%rsp)
leaq (,%rbp,8), %rdx
movq (%r14), %rcx
movq %rdx, 0x110(%rsp)
addq %rdx, %rcx
testq %r13, -0x8(%rcx,%rax,8)
movq 0xe0(%rsp), %r12
je 0xbbec
addq $0x2a8, %rsp            # imm = 0x2A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x8(,%rax,8), %rax
movq %rax, 0xd0(%rsp)
leaq 0x1e8(%rsp), %r14
leaq 0x20(%rsp), %r13
leaq 0x1c8(%rsp), %r15
movq 0xd8(%rsp), %rax
notq %rax
movq %rax, 0x1a0(%rsp)
leaq 0x90(%rsp), %rbx
cmpb $0x1, 0xc615(%rip)      # 0x18248
jne 0xbd3d
movq %r14, 0x1d8(%rsp)
leaq 0x1d8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x69f5(%rip), %rsi      # 0x12648
leaq 0x6a08(%rip), %rdx      # 0x12662
callq 0x8c78
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
leaq 0xc63a(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x238(%rsp), %rbp
je 0xbc98
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x3250
movq (%r12), %rax
xorl %ecx, %ecx
cmpq 0x8(%r12), %rax
leaq 0x69cb(%rip), %rsi      # 0x12675
leaq 0x69b2(%rip), %rax      # 0x12663
cmoveq %rax, %rsi
setne %cl
movq %r13, 0x10(%rsp)
leaq (%rcx,%rcx,2), %rax
leaq 0x11(%rsi,%rax), %rdx
leaq 0x10(%rsp), %rdi
callq 0x8c78
leaq 0x248(%rsp), %r14
movq %r14, 0x238(%rsp)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0x8be2
movq 0x30(%rsp), %rdi
movq %rbp, %rsi
leaq 0xc5a4(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x238(%rsp), %rdi
cmpq %r14, %rdi
je 0xbd26
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xbd3d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movb 0xc536(%rip), %al       # 0x18279
cmpb $0x1, %al
jne 0xbd8f
movl $0x1a, %edx
movq 0xc27d(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x68eb(%rip), %rsi      # 0x12648
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movb 0xc4ea(%rip), %al       # 0x18279
testb $0x1, %al
je 0xbdef
movl $0x2c, %edx
movq 0xc231(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x68e1(%rip), %rsi      # 0x1268a
callq 0x32a0
movq (%r12), %rax
xorl %esi, %esi
cmpq 0x8(%r12), %rax
sete %sil
movq %r14, %rdi
callq 0x3390
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movq (%r12), %rax
cmpq 0x8(%r12), %rax
je 0xbedd
cmpb $0x1, 0xc443(%rip)      # 0x18248
jne 0xc222
movq %r15, 0x1b8(%rsp)
leaq 0x1b8(%rsp), %r14
movq %r14, %rdi
leaq 0x6850(%rip), %rsi      # 0x12675
leaq 0x685d(%rip), %rdx      # 0x12689
callq 0x8c78
movq 0x30(%rsp), %rdi
movq %r14, %rsi
leaq 0xc468(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x1b8(%rsp), %rdi
cmpq %r15, %rdi
je 0xbe62
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x8(%r12), %r14
subq (%r12), %r14
sarq $0x4, %r14
movl $0x1, %esi
cmpq $0xa, %r14
leaq 0x170(%rsp), %r15
jb 0xc151
movl $0x4, %esi
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0xc14a
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0xc14f
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0xc151
movq %rcx, %rax
movabsq $0x346dc5d63886594b, %rdx # imm = 0x346DC5D63886594B
mulq %rdx
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0xbe8e
addl $-0x3, %esi
jmp 0xc151
cmpb $0x1, 0xc395(%rip)      # 0x18279
jne 0xbf28
movl $0x14, %edx
movq 0xc0de(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x68f0(%rip), %rsi      # 0x127ec
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
leaq 0xc579(%rip), %r15      # 0x184a8
movq %r15, %rdi
callq 0x3330
testl %eax, %eax
leaq 0x208(%rsp), %r14
jne 0xcf94
movq 0x40(%rsp), %rax
movq (%rax), %rax
addq 0x110(%rsp), %rax
movq 0xd0(%rsp), %rcx
movq 0xd8(%rsp), %rdx
orq %rdx, (%rcx,%rax)
movq %r15, %rdi
callq 0x31e0
cmpb $0x1, 0xc2ce(%rip)      # 0x18248
jne 0xbfd3
movq %r14, 0x1f8(%rsp)
leaq 0x1f8(%rsp), %r15
movq %r15, %rdi
leaq 0x6856(%rip), %rsi      # 0x127ec
leaq 0x6863(%rip), %rdx      # 0x12800
callq 0x8c78
movq 0x30(%rsp), %rdi
movq %r15, %rsi
leaq 0xc2f7(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x1f8(%rsp), %rdi
cmpq %r14, %rdi
je 0xbfd3
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x3250
cmpb $0x1, 0xc29f(%rip)      # 0x18279
jne 0xc0db
movl $0x12, %edx
movq 0xbfe4(%rip), %r15      # 0x17fd0
movq %r15, %rdi
leaq 0x680b(%rip), %rsi      # 0x12801
callq 0x32a0
movq 0x40(%rsp), %rbp
movq 0x10(%rbp), %rax
movl 0x18(%rbp), %ecx
subq (%rbp), %rax
leaq (%rcx,%rax,8), %rsi
movq %r15, %rdi
callq 0x3190
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movl $0xb, %edx
movq %r15, %rdi
leaq 0x67c4(%rip), %rsi      # 0x12814
callq 0x32a0
movq (%rbp), %rax
movl (%rax), %esi
andl $0x1, %esi
movq %r15, %rdi
callq 0x3390
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movl $0xc, %edx
movq %r15, %rdi
leaq 0x6781(%rip), %rsi      # 0x12820
callq 0x32a0
movq %r15, %rdi
movq 0x30(%rsp), %rsi
callq 0x33e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movq 0x40(%rsp), %rdx
movq (%rdx), %rax
movq 0x10(%rdx), %rcx
subq %rax, %rcx
testb $0x1, (%rax)
movl 0x18(%rdx), %edx
leaq (%rdx,%rcx,8), %rcx
jne 0xc0fa
xorl %edx, %edx
jmp 0xc117
xorl %edx, %edx
cmpq %rdx, %rcx
je 0xbbda
incq %rdx
movl %edx, %esi
shrl $0x6, %esi
movq (%rax,%rsi,8), %rsi
btq %rdx, %rsi
jb 0xc0fc
cmpq %rdx, %rcx
je 0xbbda
movq 0x1a8(%rsp), %rcx
leaq (%rax,%rcx,8), %rax
movq 0xd0(%rsp), %rcx
movq 0x1a0(%rsp), %rdx
andq %rdx, (%rcx,%rax)
movq 0x40(%rsp), %rax
jmp 0xcf50
addl $-0x2, %esi
jmp 0xc151
decl %esi
movl %esi, %esi
movq %r13, 0x10(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
xorl %edx, %edx
callq 0x32b0
movq 0x10(%rsp), %rdi
movl 0x18(%rsp), %esi
movq %r14, %rdx
callq 0xde23
movq %rbp, %rdi
leaq 0x6535(%rip), %rsi      # 0x126b7
callq 0x3440
movq %r15, 0x160(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc1b3
movq %rdx, 0x160(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x170(%rsp)
jmp 0xc1ba
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x168(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x30(%rsp), %rdi
leaq 0x160(%rsp), %rsi
leaq 0xc0bf(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0xc20b
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xc222
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
cmpb $0x1, 0xc050(%rip)      # 0x18279
jne 0xc26d
movl $0x19, %edx
movq 0xbd99(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x6498(%rip), %rsi      # 0x126d9
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
leaq 0x228(%rsp), %r14
movq %r14, 0x218(%rsp)
leaq 0x218(%rsp), %r15
movq %r15, %rdi
leaq 0x6496(%rip), %rsi      # 0x12725
leaq 0x649c(%rip), %rdx      # 0x12732
callq 0x8c78
movq 0x30(%rsp), %rdi
movq %r15, %rsi
leaq 0xbffe(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x218(%rsp), %rdi
cmpq %r14, %rdi
je 0xc2cc
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x3250
cmpb $0x1, 0xbfa6(%rip)      # 0x18279
jne 0xc317
movl $0xd, %edx
movq 0xbcef(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x643a(%rip), %rsi      # 0x12725
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movq (%r12), %r15
movq 0x8(%r12), %r14
cmpq %r14, %r15
je 0xc3b9
movq (%r15), %rbp
movss 0x8(%r15), %xmm0
movss %xmm0, 0xc(%rsp)
movq %r12, %rdi
callq 0xdc94
movb 0xbf02(%rip), %al       # 0x18248
cmpb $0x1, %al
jne 0xc4c6
movq %rbp, %r13
movq 0x8(%r12), %rbp
subq (%r12), %rbp
sarq $0x4, %rbp
movl $0x1, %esi
cmpq $0xa, %rbp
leaq 0x130(%rsp), %r12
jb 0xc3d1
movl $0x4, %esi
movq %rbp, %rcx
cmpq $0x63, %rcx
jbe 0xc3ca
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0xc3cf
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0xc3d1
movq %rcx, %rax
movabsq $0x346dc5d63886594b, %rdx # imm = 0x346DC5D63886594B
mulq %rdx
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0xc379
addl $-0x3, %esi
jmp 0xc3d1
xorps %xmm0, %xmm0
movss %xmm0, 0xc(%rsp)
xorl %r12d, %r12d
jmp 0xc7b1
addl $-0x2, %esi
jmp 0xc3d1
decl %esi
movl %esi, %esi
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x32b0
movq 0x10(%rsp), %rdi
movl 0x18(%rsp), %esi
movq %rbp, %rdx
callq 0xde23
movq %rbx, %rdi
leaq 0x62b0(%rip), %rsi      # 0x126b7
callq 0x3440
movq %r12, 0x120(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r13, %rbp
je 0xc43b
movq %rdx, 0x120(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x130(%rsp)
jmp 0xc443
movups (%rcx), %xmm0
movups %xmm0, (%r12)
leaq 0x20(%rsp), %r13
movq 0x8(%rax), %rdx
movq %rdx, 0x128(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x30(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0xbe31(%rip), %rdx      # 0x182a8
callq 0xab40
leaq 0x90(%rsp), %rbx
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0xc4a9
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xc4c0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movb 0xbd82(%rip), %al       # 0x18248
testb $0x1, %al
je 0xc51d
movl $0x1, %esi
cmpq $0xa, %rbp
jb 0xc52c
movl $0x4, %esi
movq %rbp, %rcx
cmpq $0x63, %rcx
jbe 0xc525
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0xc52a
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0xc52c
movq %rcx, %rax
movabsq $0x346dc5d63886594b, %rdx # imm = 0x346DC5D63886594B
mulq %rdx
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0xc4dd
addl $-0x3, %esi
jmp 0xc52c
movq %rbp, %r12
jmp 0xc7b1
addl $-0x2, %esi
jmp 0xc52c
decl %esi
movl %esi, %esi
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x32b0
movq 0x90(%rsp), %rdi
movl 0x98(%rsp), %esi
movq %rbp, %rdx
callq 0xde23
movl $0x1d, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x6180(%rip), %rcx      # 0x126f3
callq 0x3290
leaq 0x58(%rsp), %rsi
movq %rsi, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc5a0
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xc5a6
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x48(%rsp), %rdi
leaq 0x6147(%rip), %rsi      # 0x12711
callq 0x3440
movq %r13, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc5f2
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xc5fa
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
movl $0x3a, %edx
leaq 0x70(%rsp), %rdi
movq 0xb98c(%rip), %rsi      # 0x17fb8
leaq 0x6236(%rip), %rcx      # 0x12869
movb $0x1, %al
callq 0xde9e
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0xc64e
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0xc685
movl $0xf, %edi
leaq 0x80(%rsp), %r9
cmpq %r9, %rsi
je 0xc680
movq 0x80(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xc691
leaq 0x10(%rsp), %rdi
callq 0x30c0
jmp 0xc69f
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3290
leaq 0xc0(%rsp), %rsi
movq %rsi, 0xb0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xc6d0
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
jmp 0xc6d6
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x30(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0xbb9e(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0xc734
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xc756
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xc76d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xc789
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3250
movq %rbp, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xc7b1
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x3250
leaq 0x190(%rsp), %rbp
movq %rbp, 0x180(%rsp)
leaq 0x180(%rsp), %rbx
movq %rbx, %rdi
leaq 0x5f50(%rip), %rsi      # 0x12723
leaq 0x5f58(%rip), %rdx      # 0x12732
callq 0x8c78
movq 0x30(%rsp), %rdi
movq %rbx, %rsi
leaq 0xbaba(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x180(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x90(%rsp), %rbx
je 0xc818
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x3250
cmpq %r14, %r15
leaq 0x58(%rsp), %r15
leaq 0x100(%rsp), %rbp
movq 0x40(%rsp), %rax
je 0xcf50
movb 0xba40(%rip), %al       # 0x18279
cmpb $0x1, %al
jne 0xc885
movl $0x14, %edx
movq 0xb787(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x5ee0(%rip), %rsi      # 0x12733
callq 0x32a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movb 0xb9f4(%rip), %al       # 0x18279
movq %r12, 0x38(%rsp)
testb $0x1, %al
je 0xc8e4
movl $0x12, %edx
movq 0xb736(%rip), %r14      # 0x17fd0
movq %r14, %rdi
leaq 0x5ea4(%rip), %rsi      # 0x12748
callq 0x32a0
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
movq %r14, %rdi
callq 0x3350
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movq 0x118(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xdb94
movq (%rax), %r14
movq %r14, %rdi
callq 0x3330
testl %eax, %eax
movq 0xe0(%rsp), %r12
jne 0xcf92
cmpb $0x1, 0xb930(%rip)      # 0x18248
jne 0xcb88
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
movl $0x3a, %edx
movq %rbx, %rdi
movq 0xb682(%rip), %rsi      # 0x17fb8
leaq 0x5f2c(%rip), %rcx      # 0x12869
movb $0x1, %al
callq 0xde9e
movl $0x12, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x5df0(%rip), %rcx      # 0x12748
callq 0x3290
movq %r15, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc980
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xc987
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x48(%rsp), %rdi
leaq 0x5db0(%rip), %rsi      # 0x1275b
callq 0x3440
movq %r13, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc9d3
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xc9db
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xd966
xorps %xmm0, %xmm0
cvtss2sd (%rax), %xmm0
movl $0x3a, %edx
leaq 0x70(%rsp), %rdi
movq 0xb59e(%rip), %rsi      # 0x17fb8
leaq 0x5e48(%rip), %rcx      # 0x12869
movb $0x1, %al
callq 0xde9e
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0xca3c
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0xca73
movl $0xf, %edi
leaq 0x80(%rsp), %r9
cmpq %r9, %rsi
je 0xca6e
movq 0x80(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xca7f
leaq 0x10(%rsp), %rdi
callq 0x30c0
jmp 0xca8d
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3290
movq %rbp, 0xf0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xcab6
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
jmp 0xcabd
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xf8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x30(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0xb7b7(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0xf0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xcb13
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xcb35
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0xcb4c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0xcb63
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xcb88
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x3250
cmpb $0x1, 0xb6ea(%rip)      # 0x18279
jne 0xcc21
movl $0x12, %edx
movq 0xb42f(%rip), %rdi      # 0x17fd0
leaq 0x5ba0(%rip), %rsi      # 0x12748
callq 0x32a0
xorps %xmm0, %xmm0
cvtss2sd 0xc(%rsp), %xmm0
movq 0xb413(%rip), %rdi      # 0x17fd0
callq 0x3350
movq %rax, %rbp
movl $0x1a, %edx
movq %rax, %rdi
leaq 0x5baa(%rip), %rsi      # 0x1277e
callq 0x32a0
movq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xd966
xorps %xmm0, %xmm0
cvtss2sd (%rax), %xmm0
movq %rbp, %rdi
callq 0x3350
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
movq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xd966
movss (%rax), %xmm0
ucomiss 0xc(%rsp), %xmm0
jbe 0xcd15
cmpb $0x1, 0xb633(%rip)      # 0x18279
jne 0xccb0
movl $0x16, %edx
movq 0xb37c(%rip), %rdi      # 0x17fd0
leaq 0x5b3e(%rip), %rsi      # 0x12799
callq 0x32a0
movq 0x38(%rsp), %rsi
movq 0xb364(%rip), %rdi      # 0x17fd0
callq 0x3190
movq %rax, %rbp
movl $0x12, %edx
movq %rax, %rdi
leaq 0x5b2d(%rip), %rsi      # 0x127b0
callq 0x32a0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x3230
movsbl %al, %esi
movq %rbp, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31a0
cmpb $0x1, 0xb591(%rip)      # 0x18248
jne 0xce7a
movq 0x38(%rsp), %rbp
movl $0x1, %esi
cmpq $0xa, %rbp
jb 0xcd29
movl $0x4, %esi
movq %rbp, %rcx
cmpq $0x63, %rcx
jbe 0xcd22
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0xcd27
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0xcd29
movq %rcx, %rax
movabsq $0x346dc5d63886594b, %rdx # imm = 0x346DC5D63886594B
mulq %rdx
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0xccd5
addl $-0x3, %esi
jmp 0xcd29
movq %r14, %rdi
callq 0x31e0
jmp 0xcf3e
addl $-0x2, %esi
jmp 0xcd29
decl %esi
movl %esi, %esi
movq %r15, 0x48(%rsp)
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x32b0
movq 0x48(%rsp), %rdi
movl 0x50(%rsp), %esi
movq %rbp, %rdx
callq 0xde23
movl $0x15, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x5a5f(%rip), %rcx      # 0x127c3
callq 0x3290
leaq 0x20(%rsp), %rbx
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x150(%rsp), %rbp
je 0xcd99
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xcd9f
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10(%rsp), %rdi
leaq 0x5a16(%rip), %rsi      # 0x127d9
callq 0x3440
movq %rbp, 0x140(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xcdf4
movq %rdx, 0x140(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x150(%rsp)
jmp 0xcdfb
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x148(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x30(%rsp), %rdi
leaq 0x140(%rsp), %rsi
leaq 0xb47e(%rip), %rdx      # 0x182a8
callq 0xab40
movq 0x140(%rsp), %rdi
cmpq %rbp, %rdi
je 0xce4c
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0xce63
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0xce7a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0xd966
movss 0xc(%rsp), %xmm0
movss %xmm0, (%rax)
movq %r14, %rdi
callq 0x31e0
movq 0x38(%rsp), %rax
movq 0x2e8(%rsp), %rcx
movq 0x18(%rcx), %rcx
shlq $0x5, %rax
leaq (%rcx,%rax), %r15
movq (%rcx,%rax), %rbx
cmpq %r15, %rbx
leaq 0x278(%rsp), %r13
je 0xcf3e
movq 0x18(%rbx), %rax
xorps %xmm0, %xmm0
cvtsi2ssl (%rax), %xmm0
movq 0x10(%rbx), %r14
addss 0xc(%rsp), %xmm0
movss %xmm0, 0xec(%rsp)
movq 0x38(%rsp), %rbp
movq %r13, %rdi
movq 0x118(%rsp), %rsi
callq 0xdfc0
movq %r14, %rdi
movq %rbp, %rsi
movss 0xec(%rsp), %xmm0
movq %r12, %rdx
movq %r13, %rcx
movq 0x68(%rsp), %r8
movq 0x1b0(%rsp), %r9
pushq 0x30(%rsp)
pushq 0x2e8(%rsp)
callq 0xb18f
addq $0x10, %rsp
movq %r13, %rdi
callq 0xe1e6
movq (%rbx), %rbx
cmpq %r15, %rbx
jne 0xcec5
leaq 0x20(%rsp), %r13
movq 0x40(%rsp), %rax
leaq 0x90(%rsp), %rbx
movq (%rax), %rax
addq 0x110(%rsp), %rax
movq 0xd0(%rsp), %rcx
movq 0xd8(%rsp), %rdx
testq %rdx, (%rcx,%rax)
leaq 0x1e8(%rsp), %r14
leaq 0x1c8(%rsp), %r15
movq 0xe0(%rsp), %r12
je 0xbc2c
jmp 0xbbda
jmp 0xcf94
movl %eax, %edi
callq 0x3180
movq %rax, %rbx
movq 0x140(%rsp), %rdi
cmpq %rbp, %rdi
je 0xcfc0
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xcfc0
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xcfe1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xcfe1
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xd2dd
movq 0x58(%rsp), %rsi
jmp 0xd237
jmp 0xd2da
movq %rax, %rbx
movq 0x258(%rsp), %rdi
cmpq %r14, %rdi
je 0xd2f7
movq 0x268(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0x1f8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd2f7
movq 0x208(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xd06a
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd06a
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xd1de
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd1de
movq %rax, %rbx
jmp 0xd1fa
movq %rax, %rbx
jmp 0xd216
jmp 0xd2da
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0xd0d7
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd0d7
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xd0fe
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd0fe
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd11f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd11f
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xd140
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd140
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xd2f7
movq 0xa0(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0xd269
movq 0x130(%rsp), %rsi
jmp 0xd25c
jmp 0xd266
movq %rax, %rbx
movq 0x160(%rsp), %rdi
cmpq %r15, %rdi
je 0xd269
movq 0x170(%rsp), %rsi
jmp 0xd25c
jmp 0xd266
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r15, %rdi
je 0xd2f7
movq 0x1c8(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd1fa
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xd216
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3250
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0xd2dd
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd2dd
movq %rax, %rbx
movq 0x238(%rsp), %rdi
cmpq %r14, %rdi
je 0xd269
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd269
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd2f7
movq 0x20(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
jmp 0xd2f7
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd2f7
movq 0x1e8(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0x180(%rsp), %rdi
cmpq %rbp, %rdi
je 0xd2f7
movq 0x190(%rsp), %rsi
jmp 0xd2d0
movq %rax, %rbx
movq 0x218(%rsp), %rdi
cmpq %r14, %rdi
je 0xd2f7
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x3250
jmp 0xd2f7
movq %rax, %rbx
movq %r14, %rdi
callq 0x31e0
jmp 0xd2f7
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
callq 0xe1e6
movq %rbx, %rdi
callq 0x3400