// File: essarrdee[P]mutantaliens/mutantaliens.cpp
// Function: player_turn(actor*)
void player_turn(actor* a)
{
	update_map_seen();
	//draw_scene(true);
	int turn = -1;
	while(turn)
	{
		draw_scene(true);
		int kp;
		if(!forcefed_help)
		{
			kp = '?';
			//forcefed_help = true;
		}
		else
		{
			kp = fgetch();
		}
		switch(kp)
		{
		case KEY_UP: case 'k': case '8': case KEY_A2:
			turn = move_actor(a,0,-1); break;
		case KEY_DOWN: case 'j':case '2': case KEY_C2:
			turn = move_actor(a,0,1); break;
		case KEY_LEFT: case 'h': case '4': case KEY_B1:
			turn = move_actor(a,-1,0); break;
		case KEY_RIGHT: case 'l': case '6': case KEY_B3:
			turn = move_actor(a,1,0); break;
		case 'y':case '7': case KEY_A1:
			turn = move_actor(a,-1,-1); break;
		case 'u':case '9': case KEY_A3:
			turn = move_actor(a,1,-1); break;
		case 'b':case '1': case KEY_C1:
			turn = move_actor(a,-1,1); break;
		case 'n':case '3': case KEY_C3:
			turn = move_actor(a,1,1); break;
		case '.': case '5': case KEY_B2:
			turn = 0; break;
		case '?':
			{
				int kp = '?';
				int page = 0;
				while(kp == '?')
				{
					switch(page)
				{
					case 4:
					page = 0;
					case 0:
				pretty_print
				(
				/*"01234567890123456789012345678901234567890123456789"*/
				  "                                                  "
				  "      Find and destroy the radio transmitter      "
				  "            so that you can escape!               "
				  "                                                  "
				  "Movement: y/7  k/8  u/9  Fire:             f      "
				  "hjklyubn     \\  |  /     Throw:            t      "
				  "42867913      \\ | /      Run:              R      "
				  "          h/4--5/.--l/6  Check radio:      r      "
				  "              / | \\      Wield pistol      X      "
				  "             /  |  \\     Wield rifle       Y      "
				  "          b/1  j/2  n/3  Wield cannon      Z      "
				  "                         Mute advice       M      "
				  "                         Close ship doors  C      "
				  "               fire or //Autotarget:     tab      "
				  "               throw   ||Manual target: movement  "
				  "               mode    \\\\Info on tile:     i      "
				  "                         Quit game:        Q      "
				  "                         See this help:    ?      "
				  "                                                  "
				  "        Press ? again for more info.              "
				  "   You might also want to read the README.        "
				  "                                                  "
				); break;
				case 1:
				pretty_print
					(
				/*"01234567890123456789012345678901234567890123456789"*/
				  "Your guns:                           f to fire    "
				  " Pistol (low damage),                             "
				  " Rifle (med damage),                              "
				  " Cannon (high splash damage)                      "
				  "Your devices:                        t to throw   "
				  " Low explosives (rad. 2),                         "
				  " High explosives (rad. 4),                        "
				  " Distractions:                                    "
				  "  Hologram (C), Noise (D), Scent (E),             "
				  "  Brain slice (F) (for psychic aliens)            "
				  " Set a timer from 0 to 9 when throwing.           "
				  " All of these have very useful spy cameras.       "
				  "                                                  "
				  "       Press ? again for more info.               "
				  "                                                  "
					);break;
				case 2: pretty_print
			(
				/*"01234567890123456789012345678901234567890123456789"*/
				  "Monster memory:                                   "
				  "No-one has seen this planet or these aliens       "
				  "before and lived to tell the tale.                "
				  "To survive, you keep a note of your observations  "
				  "In the status panel.                              "
				  "The first column is size (small, medium, huge),   "
				  "The second is walk speed (slow, average, fast)    "
				  "   (relative to your walk speed)                  "
				  "The third is max run speed (slow, average, fast)  "
				  "   (relative to your max run speed)               "
				  "   (as stamina runs out, you get slower)          "
				  "The fourth is damage (weak, strong, dangerous)    "
				  "The last is health (frail or tough)               "
				  "Frail aliens are very easy to kill.               "
				  "Some tough aliens are easier to kill than others  "
				  "                                                  "
				  "     Press ? again for more info.                 "
				  "                                                  "
			);break;
				case 3:
					pretty_print
			(
				/*"01234567890123456789012345678901234567890123456789"*/
				  " Your ship is claiming, despite the surrounding   "
				  "   trees and hostile aliens, to be safely docked "
				  "    at a space station.                           "
				  "  You need to fix this malfunction and get off    "
				  "    this planet.                                  "
				  "  The ship uses automated radio signals to dock,  "
				  "    so there must be a radio transmitter here.    "
				  "  You can use your portable radio to try to find  "
				  "    the source of the transmissions,              "
				  "    then disable it with explosives and escape.   "
				  "                                                  "
				  "       Press ? again for more info.               "
				  "                                                  "
			);break;
				}
				page++;
				kp = fgetch();
				draw_scene();
				//clear_area(0,0,viewport_width,message_area_height+1);
				if(!forcefed_help && page != 4)
				{
					kp = '?';
					if(page == 3) {forcefed_help = true;}
				}
				}
			}break;
		case 'X':
			if(current_weapon != PISTOL) {turn = 0; add_message("You wield your pistol."); current_weapon = PISTOL;} break;
		case 'Y':
			if(current_weapon != RIFLE) {turn = 0; add_message("You wield your automatic rifle!"); current_weapon = RIFLE;} break;
		case 'Z':
			if(current_weapon != CANNON) {turn = 0; add_message("You get out the plasma cannon!!"); current_weapon = CANNON;} break;
		case 'r':
			turn = 0; add_message(signal_receive(p_ptr->x,p_ptr->y)); /*draw_last_msg();*/ break;
		case 'g':
			if(count_inv_devices(BRAIN_SLICE) > 0)
			{
				add_message("You wash a brain slice with Tx-PBS three times with gentle shaking.");
				draw_last_msg();
			}
			break;
		case 'Q':
			pretty_print("Are you sure you want to quit? press Y if you are.");
			if(fgetch() == 'Y')
			{
				endwin();
				exit(0);
			}
			break;
		case 'd':break;
			debug = !debug; break;
		case ' ':
			last_message_seen = rlmessages.size();
			last_word_seen  = rlmessage_words.size()-1;
			draw_last_msg(); break;
		case 'R':
			p_ptr->running = !p_ptr->running; draw_stats(); break;
		case 't':
			{

				current_mode = THROW_MODE;
				draw_scene();
				
				int tab_ind = autotarget();
				int lx = current_target->x; int ly = current_target->y;
				item* dev = select_individual_device();
				//item* dev = dev_inv[device_type][UNCONFIGURED].back();
				int t = ask_for_time();
				if(dev == NULL) break;
			while(current_mode==THROW_MODE)
			{
				draw_scene();
				draw_tile_description(lx,ly);
				draw_line(p_ptr->x,p_ptr->y,lx,ly,'*');
				clear_area(0,0,viewport_width,1);
				attron(COLOR_PAIR(COLOR_WHITE));
				mvaddstr(0,0,"Tab or movement to target, t to throw");
				int kpp = fgetch();
				undraw_line(p_ptr->x,p_ptr->y,lx,ly);
				undraw_tile_description();
				switch(kpp)
				{
				case '\t':
					if(visible_actors.size() > 0)
					{
						tab_ind = (tab_ind + 1)%visible_actors.size();
						lx = visible_actors[tab_ind]->x;
						ly = visible_actors[tab_ind]->y;
					}
					break;
				case KEY_UP: case 'k': case '8': case KEY_A2:
					ly = std::max(ly-1,viewport_top_edge()); break;
				case KEY_DOWN: case 'j': case '2': case KEY_C2:
					ly = std::min(ly+1,viewport_bottom_edge()); break;
				case KEY_LEFT: case 'h': case '4': case KEY_B1:
					lx = std::max(lx-1,viewport_left_edge()); break;
				case KEY_RIGHT: case 'l': case '6': case KEY_B3:
					lx = std::min(lx+1,viewport_right_edge()); break;
				case 'y': case '7': case KEY_A1:
					lx = std::max(lx-1,viewport_left_edge()); ly = std::max(ly-1,viewport_top_edge()); break;
				case 'u': case '9': case KEY_A3:
					lx = std::min(lx+1,viewport_right_edge()); ly = std::max(ly-1,viewport_top_edge()); break;
				case 'b': case '1': case KEY_C1:
					lx = std::max(lx-1,viewport_left_edge()); ly = std::min(ly+1,viewport_bottom_edge()); break;
				case 'n': case '3': case KEY_C3:
					lx = std::min(lx+1,viewport_right_edge()); ly = std::min(ly+1,viewport_bottom_edge()); break;
				case 't':
					{
						if(los_exists(p_ptr->x,p_ptr->y,lx,ly,blocks_shots))
						{
							//if(dev != NULL)
							{
								item_to_location(dev,lx,ly);
								inv_remove(dev);
								set_timer(dev,t);
								turn = 0;
								current_mode = WALK_MODE;
								dev->player_has = false;
							}
						}
						else
						{
							add_message("There's too much in the way!");
							draw_last_msg();
						}
					}
					break;
				case KEY_ESC:
					 current_mode = WALK_MODE; draw_scene(); break;
				case 'i':
					draw_info(lx,ly);
					current_mode = THROW_MODE; draw_stats();
					draw_line(p_ptr->x,p_ptr->y,lx,ly,'*');break;
				default: ;
				}
			}
			}
			break;
		case 'M':
			cycle_advice = !cycle_advice;
			draw_stats();
			break;
		case 'C':
			if(door_closable())
			{
				if(map_terrain[ship_x+2][ship_y] == DOOR)
				{
					map_terrain[ship_x+2][ship_y] = NS;
					turn = 0;
					add_message("You tell the computer to close the doors.");
					closed_doors = true;
				}
				else
				{
					add_message("Not going to open them again. No way.");
				}
			}
			else {add_message("Can't close the doors right now.");}
			break;
		case 'f':
		{
			current_mode = FIRE_MODE;
			draw_scene();
			int tab_ind = autotarget();
			int lx = current_target->x; int ly = current_target->y;
				
			
			while (current_mode == FIRE_MODE)
			{
				draw_tile_description(lx,ly);
				draw_line(p_ptr->x,p_ptr->y,lx,ly,'*');
				int kpp = fgetch();
				undraw_line(p_ptr->x,p_ptr->y,lx,ly);
				undraw_tile_description();
				
				switch(kpp)
				{
				case '\t':
					if(visible_actors.size() > 0)
					{
						tab_ind = (tab_ind + 1)%visible_actors.size();
						lx = visible_actors[tab_ind]->x;
						ly = visible_actors[tab_ind]->y;
					}
					break;
				case KEY_UP: case 'k': case '8': case KEY_A2:
					ly = std::max(ly-1,viewport_top_edge()); break;
				case KEY_DOWN: case 'j': case '2': case KEY_C2:
					ly = std::min(ly+1,viewport_bottom_edge()); break;
				case KEY_LEFT: case 'h': case '4': case KEY_B1:
					lx = std::max(lx-1,viewport_left_edge()); break;
				case KEY_RIGHT: case 'l': case '6': case KEY_B3:
					lx = std::min(lx+1,viewport_right_edge()); break;
				case 'y': case '7': case KEY_A1:
					lx = std::max(lx-1,viewport_left_edge()); ly = std::max(ly-1,viewport_top_edge()); break;
				case 'u': case '9': case KEY_A3:
					lx = std::min(lx+1,viewport_right_edge()); ly = std::max(ly-1,viewport_top_edge()); break;
				case 'b': case '1': case KEY_C1:
					lx = std::max(lx-1,viewport_left_edge()); ly = std::min(ly+1,viewport_bottom_edge()); break;
				case 'n': case '3': case KEY_C3:
					lx = std::min(lx+1,viewport_right_edge()); ly = std::min(ly+1,viewport_bottom_edge()); break;
				case 'f':
					if(ammo[current_weapon] == 0)
					{add_message("Can't fire this weapon, no ammo.");draw_last_msg();}
					else if(lx==p_ptr->x && ly==p_ptr->y)
					{
						add_message("Don't shoot yourself!");
						draw_last_msg();
					}
					else
					{
						if(fire_weapon(p_ptr->x,p_ptr->y,lx,ly))
						{
							current_mode = WALK_MODE;
							turn = 0;
						}
					}
					break;
				case KEY_ESC:
					 current_mode = WALK_MODE; 
					 draw_scene();
					 break;
				case 'i':
					draw_info(lx,ly);
					current_mode = FIRE_MODE; draw_stats();
					draw_line(p_ptr->x,p_ptr->y,lx,ly,'*');
				default:;
				}
			}
			if(map_occupants[lx][ly] != NULL)
			{
				current_target = map_occupants[lx][ly];
			}
			undraw_line(p_ptr->x,p_ptr->y,lx,ly);
			undraw_tile_description();
		}
		break;
			
		default: ;
		}
	}
}

// Assembly:
subq $0x438, %rsp            # imm = 0x438
movq %rdi, 0x430(%rsp)
callq 0x1a9f0
movl $0xffffffff, 0x42c(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x42c(%rsp)
je 0x1e97f
movl $0x1, %edi
callq 0x176d0
testb $0x1, 0x1e75a(%rip)     # 0x3b378
jne 0x1cc2d
movl $0x3f, 0x428(%rsp)
jmp 0x1cc39
callq 0x21710
movl %eax, 0x428(%rsp)
movl 0x428(%rsp), %eax
addl $-0x20, %eax
movl %eax, %ecx
movq %rcx, 0xa8(%rsp)
subl $0x1a8, %eax            # imm = 0x1A8
ja 0x1e978
movq 0xa8(%rsp), %rax
leaq 0x104e1(%rip), %rcx     # 0x2d148
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x430(%rsp), %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %edx, %esi
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0x1, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x1, %edx
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movq 0x430(%rsp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x17850
movl %eax, 0x42c(%rsp)
jmp 0x1e97a
movl $0x0, 0x42c(%rsp)
jmp 0x1e97a
movl $0x3f, 0x424(%rsp)
movl $0x0, 0x420(%rsp)
cmpl $0x3f, 0x424(%rsp)
jne 0x1d0e5
movl 0x420(%rsp), %eax
movq %rax, 0xa0(%rsp)
subq $0x4, %rax
ja 0x1d08b
movq 0xa0(%rsp), %rax
leaq 0x10a1a(%rip), %rcx     # 0x2d7ec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, 0x420(%rsp)
leaq 0x3ff(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x5490
movq 0x98(%rsp), %rdx
leaq 0x11a8d(%rip), %rsi     # 0x2e897
leaq 0x400(%rsp), %rdi
callq 0x53d0
jmp 0x1ce19
leaq 0x400(%rsp), %rdi
callq 0x74d0
jmp 0x1ce28
leaq 0x400(%rsp), %rdi
callq 0x54f8
leaq 0x3ff(%rsp), %rdi
callq 0x5310
jmp 0x1d08b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1ce7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x400(%rsp), %rdi
callq 0x54f8
leaq 0x3ff(%rsp), %rdi
callq 0x5310
jmp 0x1e987
leaq 0x3c7(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x5490
movq 0x90(%rsp), %rdx
leaq 0x11e30(%rip), %rsi     # 0x2ece4
leaq 0x3c8(%rsp), %rdi
callq 0x53d0
jmp 0x1cec3
leaq 0x3c8(%rsp), %rdi
callq 0x74d0
jmp 0x1ced2
leaq 0x3c8(%rsp), %rdi
callq 0x54f8
leaq 0x3c7(%rsp), %rdi
callq 0x5310
jmp 0x1d08b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1cf28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x3c8(%rsp), %rdi
callq 0x54f8
leaq 0x3c7(%rsp), %rdi
callq 0x5310
jmp 0x1e987
leaq 0x39f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x5490
movq 0x88(%rsp), %rdx
leaq 0x12075(%rip), %rsi     # 0x2efd3
leaq 0x3a0(%rsp), %rdi
callq 0x53d0
jmp 0x1cf6d
leaq 0x3a0(%rsp), %rdi
callq 0x74d0
jmp 0x1cf7c
leaq 0x3a0(%rsp), %rdi
callq 0x54f8
leaq 0x39f(%rsp), %rdi
callq 0x5310
jmp 0x1d08b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1cfd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x3a0(%rsp), %rdi
callq 0x54f8
leaq 0x39f(%rsp), %rdi
callq 0x5310
jmp 0x1e987
leaq 0x377(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x5490
movq 0x80(%rsp), %rdx
leaq 0x12350(%rip), %rsi     # 0x2f358
leaq 0x378(%rsp), %rdi
callq 0x53d0
jmp 0x1d017
leaq 0x378(%rsp), %rdi
callq 0x74d0
jmp 0x1d026
leaq 0x378(%rsp), %rdi
callq 0x54f8
leaq 0x377(%rsp), %rdi
callq 0x5310
jmp 0x1d08b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d079
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x378(%rsp), %rdi
callq 0x54f8
leaq 0x377(%rsp), %rdi
callq 0x5310
jmp 0x1e987
movl 0x420(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x420(%rsp)
callq 0x21710
movl %eax, 0x424(%rsp)
xorl %edi, %edi
callq 0x176d0
testb $0x1, 0x1e2c2(%rip)     # 0x3b378
jne 0x1d0e0
cmpl $0x4, 0x420(%rsp)
je 0x1d0e0
movl $0x3f, 0x424(%rsp)
cmpl $0x3, 0x420(%rsp)
jne 0x1d0de
movb $0x1, 0x1e29a(%rip)     # 0x3b378
jmp 0x1d0e0
jmp 0x1cd9c
jmp 0x1e97a
cmpl $0x0, 0x1e263(%rip)     # 0x3b354
je 0x1d1ad
movl $0x0, 0x42c(%rsp)
leaq 0x34f(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x5490
movq 0x78(%rsp), %rdx
leaq 0x124c2(%rip), %rsi     # 0x2f5e2
leaq 0x350(%rsp), %rdi
callq 0x53d0
jmp 0x1d12f
leaq 0x350(%rsp), %rdi
callq 0x6670
jmp 0x1d13e
leaq 0x350(%rsp), %rdi
callq 0x54f8
leaq 0x34f(%rsp), %rdi
callq 0x5310
movl $0x0, 0x1e1f2(%rip)     # 0x3b354
jmp 0x1d1ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d19b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x350(%rsp), %rdi
callq 0x54f8
leaq 0x34f(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
cmpl $0x1, 0x1e19b(%rip)     # 0x3b354
je 0x1d275
movl $0x0, 0x42c(%rsp)
leaq 0x327(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x5490
movq 0x70(%rsp), %rdx
leaq 0x12411(%rip), %rsi     # 0x2f5f9
leaq 0x328(%rsp), %rdi
callq 0x53d0
jmp 0x1d1f7
leaq 0x328(%rsp), %rdi
callq 0x6670
jmp 0x1d206
leaq 0x328(%rsp), %rdi
callq 0x54f8
leaq 0x327(%rsp), %rdi
callq 0x5310
movl $0x1, 0x1e12a(%rip)     # 0x3b354
jmp 0x1d275
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d263
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x54f8
leaq 0x327(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
cmpl $0x2, 0x1e0d3(%rip)     # 0x3b354
je 0x1d33d
movl $0x0, 0x42c(%rsp)
leaq 0x2ff(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x5490
movq 0x68(%rsp), %rdx
leaq 0x12369(%rip), %rsi     # 0x2f619
leaq 0x300(%rsp), %rdi
callq 0x53d0
jmp 0x1d2bf
leaq 0x300(%rsp), %rdi
callq 0x6670
jmp 0x1d2ce
leaq 0x300(%rsp), %rdi
callq 0x54f8
leaq 0x2ff(%rsp), %rdi
callq 0x5310
movl $0x2, 0x1e062(%rip)     # 0x3b354
jmp 0x1d33d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d32b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x300(%rsp), %rdi
callq 0x54f8
leaq 0x2ff(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
movl $0x0, 0x42c(%rsp)
movq 0x6b1fc(%rip), %rax     # 0x88550
movl 0x20(%rax), %esi
movl 0x24(%rax), %edx
leaq 0x2d8(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x1aae0
movq 0x60(%rsp), %rdi
callq 0x6670
jmp 0x1d378
leaq 0x2d8(%rsp), %rdi
callq 0x54f8
jmp 0x1e97a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x2d8(%rsp), %rdi
callq 0x54f8
jmp 0x1e987
movl $0x5, %edi
callq 0xf890
cmpl $0x0, %eax
jle 0x1d469
leaq 0x2b7(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x5490
movq 0x58(%rsp), %rdx
leaq 0x12258(%rip), %rsi     # 0x2f639
leaq 0x2b8(%rsp), %rdi
callq 0x53d0
jmp 0x1d3f0
leaq 0x2b8(%rsp), %rdi
callq 0x6670
jmp 0x1d3ff
leaq 0x2b8(%rsp), %rdi
callq 0x54f8
leaq 0x2b7(%rsp), %rdi
callq 0x5310
callq 0x8ce0
jmp 0x1d469
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d457
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x54f8
leaq 0x2b7(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
leaq 0x28f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x5490
movq 0x50(%rsp), %rdx
leaq 0x121f1(%rip), %rsi     # 0x2f67d
leaq 0x290(%rsp), %rdi
callq 0x53d0
jmp 0x1d49b
leaq 0x290(%rsp), %rdi
callq 0x74d0
jmp 0x1d4aa
leaq 0x290(%rsp), %rdi
callq 0x54f8
leaq 0x28f(%rsp), %rdi
callq 0x5310
callq 0x21710
cmpl $0x59, %eax
jne 0x1d523
callq 0x5340
xorl %edi, %edi
callq 0x5360
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1d511
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x54f8
leaq 0x28f(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
jmp 0x1e97a
leaq 0x6ad74(%rip), %rdi     # 0x882a8
callq 0x1fe40
movl %eax, 0x6ad99(%rip)     # 0x882d8
leaq 0x6ad7a(%rip), %rdi     # 0x882c0
callq 0x1fe40
subq $0x1, %rax
movl %eax, 0x6ad87(%rip)     # 0x882dc
callq 0x8ce0
jmp 0x1e97a
movq 0x6afea(%rip), %rax     # 0x88550
movb 0x14(%rax), %cl
xorb $-0x1, %cl
movq 0x6afdd(%rip), %rax     # 0x88550
andb $0x1, %cl
movb %cl, 0x14(%rax)
callq 0x15c60
jmp 0x1e97a
movl $0x2, 0x1ddfb(%rip)     # 0x3b388
xorl %edi, %edi
callq 0x176d0
callq 0x1caf0
movl %eax, 0x288(%rsp)
movq 0x6af89(%rip), %rax     # 0x88530
movl 0x20(%rax), %eax
movl %eax, 0x284(%rsp)
movq 0x6af78(%rip), %rax     # 0x88530
movl 0x24(%rax), %eax
movl %eax, 0x280(%rsp)
callq 0x1c9e0
movq %rax, 0x278(%rsp)
callq 0x1bfa0
movl %eax, 0x274(%rsp)
cmpq $0x0, 0x278(%rsp)
jne 0x1d5eb
jmp 0x1e97a
jmp 0x1d5ed
cmpl $0x2, 0x1dd94(%rip)     # 0x3b388
jne 0x1ddf8
xorl %edi, %edi
callq 0x176d0
movl 0x284(%rsp), %edi
movl 0x280(%rsp), %esi
callq 0x166a0
movq 0x6af35(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x6af2b(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x284(%rsp), %edx
movl 0x280(%rsp), %ecx
movl $0x2a, %r8d
callq 0x17230
xorl %esi, %esi
movl $0x31, %edx
movl $0x1, %ecx
movl %esi, %edi
callq 0x8b80
movq 0x1d985(%rip), %rax     # 0x3afe0
movq (%rax), %rdi
movl $0x700, %esi            # imm = 0x700
xorl %eax, %eax
movl %eax, %edx
callq 0x51a0
movq 0x1d96d(%rip), %rax     # 0x3afe0
movq (%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x52f0
cmpl $-0x1, %eax
jne 0x1d686
jmp 0x1d6a1
movq 0x1d953(%rip), %rax     # 0x3afe0
movq (%rax), %rdi
leaq 0x12019(%rip), %rsi     # 0x2f6b0
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5100
callq 0x21710
movl %eax, 0x270(%rsp)
movq 0x6ae9c(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movl 0x24(%rax), %esi
movl 0x284(%rsp), %edx
movl 0x280(%rsp), %ecx
callq 0x174b0
callq 0x16cc0
movl 0x270(%rsp), %eax
movl %eax, 0x4c(%rsp)
subl $0x9, %eax
je 0x1d8d4
jmp 0x1d6e8
movl 0x4c(%rsp), %eax
subl $0x1b, %eax
je 0x1dd8d
jmp 0x1d6f7
movl 0x4c(%rsp), %eax
subl $0x31, %eax
je 0x1db56
jmp 0x1d706
movl 0x4c(%rsp), %eax
subl $0x32, %eax
je 0x1d9a0
jmp 0x1d715
movl 0x4c(%rsp), %eax
subl $0x33, %eax
je 0x1dbd1
jmp 0x1d724
movl 0x4c(%rsp), %eax
subl $0x34, %eax
je 0x1d9e0
jmp 0x1d733
movl 0x4c(%rsp), %eax
subl $0x36, %eax
je 0x1da20
jmp 0x1d742
movl 0x4c(%rsp), %eax
subl $0x37, %eax
je 0x1da60
jmp 0x1d751
movl 0x4c(%rsp), %eax
subl $0x38, %eax
je 0x1d960
jmp 0x1d760
movl 0x4c(%rsp), %eax
subl $0x39, %eax
je 0x1dadb
jmp 0x1d76f
movl 0x4c(%rsp), %eax
subl $0x62, %eax
je 0x1db56
jmp 0x1d77e
movl 0x4c(%rsp), %eax
subl $0x68, %eax
je 0x1d9e0
jmp 0x1d78d
movl 0x4c(%rsp), %eax
subl $0x69, %eax
je 0x1dda0
jmp 0x1d79c
movl 0x4c(%rsp), %eax
subl $0x6a, %eax
je 0x1d9a0
jmp 0x1d7ab
movl 0x4c(%rsp), %eax
subl $0x6b, %eax
je 0x1d960
jmp 0x1d7ba
movl 0x4c(%rsp), %eax
subl $0x6c, %eax
je 0x1da20
jmp 0x1d7c9
movl 0x4c(%rsp), %eax
subl $0x6e, %eax
je 0x1dbd1
jmp 0x1d7d8
movl 0x4c(%rsp), %eax
subl $0x74, %eax
je 0x1dc4c
jmp 0x1d7e7
movl 0x4c(%rsp), %eax
subl $0x75, %eax
je 0x1dadb
jmp 0x1d7f6
movl 0x4c(%rsp), %eax
subl $0x79, %eax
je 0x1da60
jmp 0x1d805
movl 0x4c(%rsp), %eax
subl $0x102, %eax            # imm = 0x102
je 0x1d9a0
jmp 0x1d816
movl 0x4c(%rsp), %eax
subl $0x103, %eax            # imm = 0x103
je 0x1d960
jmp 0x1d827
movl 0x4c(%rsp), %eax
subl $0x104, %eax            # imm = 0x104
je 0x1d9e0
jmp 0x1d838
movl 0x4c(%rsp), %eax
subl $0x105, %eax            # imm = 0x105
je 0x1da20
jmp 0x1d849
movl 0x4c(%rsp), %eax
subl $0x15c, %eax            # imm = 0x15C
je 0x1da60
jmp 0x1d85a
movl 0x4c(%rsp), %eax
subl $0x15d, %eax            # imm = 0x15D
je 0x1dadb
jmp 0x1d86b
movl 0x4c(%rsp), %eax
subl $0x15f, %eax            # imm = 0x15F
je 0x1db56
jmp 0x1d87c
movl 0x4c(%rsp), %eax
subl $0x160, %eax            # imm = 0x160
je 0x1dbd1
jmp 0x1d88d
movl 0x4c(%rsp), %eax
subl $0x1c2, %eax            # imm = 0x1C2
je 0x1d960
jmp 0x1d89e
movl 0x4c(%rsp), %eax
subl $0x1c4, %eax            # imm = 0x1C4
je 0x1d9e0
jmp 0x1d8af
movl 0x4c(%rsp), %eax
subl $0x1c6, %eax            # imm = 0x1C6
je 0x1da20
jmp 0x1d8c0
movl 0x4c(%rsp), %eax
subl $0x1c8, %eax            # imm = 0x1C8
je 0x1d9a0
jmp 0x1ddf1
leaq 0x6ac5d(%rip), %rdi     # 0x88538
callq 0x21950
cmpq $0x0, %rax
jbe 0x1d95b
movl 0x288(%rsp), %eax
addl $0x1, %eax
cltq
movq %rax, 0x40(%rsp)
leaq 0x6ac3a(%rip), %rdi     # 0x88538
callq 0x21950
movq %rax, %rcx
movq 0x40(%rsp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, 0x288(%rsp)
movslq 0x288(%rsp), %rsi
leaq 0x6ac10(%rip), %rdi     # 0x88538
callq 0x21970
movq (%rax), %rax
movl 0x20(%rax), %eax
movl %eax, 0x284(%rsp)
movslq 0x288(%rsp), %rsi
leaq 0x6abef(%rip), %rdi     # 0x88538
callq 0x21970
movq (%rax), %rax
movl 0x24(%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x280(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x26c(%rsp)
callq 0x21650
movl %eax, 0x268(%rsp)
leaq 0x26c(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x280(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x264(%rsp)
callq 0x21660
movl %eax, 0x260(%rsp)
leaq 0x264(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x25c(%rsp)
callq 0x21630
movl %eax, 0x258(%rsp)
leaq 0x25c(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x254(%rsp)
callq 0x21640
movl %eax, 0x250(%rsp)
leaq 0x254(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x24c(%rsp)
callq 0x21630
movl %eax, 0x248(%rsp)
leaq 0x24c(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
movl 0x280(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x244(%rsp)
callq 0x21650
movl %eax, 0x240(%rsp)
leaq 0x244(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x23c(%rsp)
callq 0x21640
movl %eax, 0x238(%rsp)
leaq 0x23c(%rsp), %rdi
leaq 0x238(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
movl 0x280(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x234(%rsp)
callq 0x21650
movl %eax, 0x230(%rsp)
leaq 0x234(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x22c(%rsp)
callq 0x21630
movl %eax, 0x228(%rsp)
leaq 0x22c(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
movl 0x280(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x224(%rsp)
callq 0x21660
movl %eax, 0x220(%rsp)
leaq 0x224(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movl 0x284(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x21c(%rsp)
callq 0x21640
movl %eax, 0x218(%rsp)
leaq 0x21c(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x284(%rsp)
movl 0x280(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x214(%rsp)
callq 0x21660
movl %eax, 0x210(%rsp)
leaq 0x214(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x280(%rsp)
jmp 0x1ddf3
movq 0x6a8fd(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x6a8f3(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x284(%rsp), %edx
movl 0x280(%rsp), %ecx
leaq -0xa9a5(%rip), %r8      # 0x132d0
callq 0x16340
testb $0x1, %al
jne 0x1dc80
jmp 0x1dce5
movq 0x278(%rsp), %rdi
movl 0x284(%rsp), %esi
movl 0x280(%rsp), %edx
callq 0xfad0
movq 0x278(%rsp), %rdi
callq 0xfa90
movq 0x278(%rsp), %rdi
movl 0x274(%rsp), %esi
callq 0x1c2c0
movl $0x0, 0x42c(%rsp)
movl $0x0, 0x1d6b7(%rip)     # 0x3b388
movq 0x278(%rsp), %rax
movb $0x0, 0x98(%rax)
jmp 0x1dd8b
leaq 0x1ef(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x5490
movq 0x38(%rsp), %rdx
leaq 0x119d3(%rip), %rsi     # 0x2f6d6
leaq 0x1f0(%rsp), %rdi
callq 0x53d0
jmp 0x1dd12
leaq 0x1f0(%rsp), %rdi
callq 0x6670
jmp 0x1dd21
leaq 0x1f0(%rsp), %rdi
callq 0x54f8
leaq 0x1ef(%rsp), %rdi
callq 0x5310
callq 0x8ce0
jmp 0x1dd8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1dd79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x54f8
leaq 0x1ef(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1ddf3
movl $0x0, 0x1d5f1(%rip)     # 0x3b388
xorl %edi, %edi
callq 0x176d0
jmp 0x1ddf3
movl 0x284(%rsp), %edi
movl 0x280(%rsp), %esi
callq 0x17b30
movl $0x2, 0x1d5cb(%rip)     # 0x3b388
callq 0x15c60
movq 0x6a787(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x6a77d(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x284(%rsp), %edx
movl 0x280(%rsp), %ecx
movl $0x2a, %r8d
callq 0x17230
jmp 0x1ddf3
jmp 0x1ddf3
jmp 0x1d5ed
jmp 0x1e97a
movb 0x1d54d(%rip), %al      # 0x3b350
xorb $-0x1, %al
andb $0x1, %al
movb %al, 0x1d543(%rip)      # 0x3b350
callq 0x15c60
jmp 0x1e97a
callq 0x11ce0
testb $0x1, %al
jne 0x1de25
jmp 0x1dfd9
movl 0x6a441(%rip), %eax     # 0x8826c
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x1d578(%rip), %rax     # 0x3b3b0
imulq $0x258, %rcx, %rcx      # imm = 0x258
addq %rcx, %rax
movslq 0x6a427(%rip), %rcx     # 0x88270
cmpl $0x5, (%rax,%rcx,4)
jne 0x1df33
movl 0x6a413(%rip), %eax     # 0x8826c
addl $0x2, %eax
cltq
imulq $0x258, %rax, %rcx      # imm = 0x258
leaq 0x1d544(%rip), %rax     # 0x3b3b0
addq %rcx, %rax
movslq 0x6a3fa(%rip), %rcx     # 0x88270
movl $0xa, (%rax,%rcx,4)
movl $0x0, 0x42c(%rsp)
leaq 0x1c7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x5490
movq 0x30(%rsp), %rdx
leaq 0x1184d(%rip), %rsi     # 0x2f6f3
leaq 0x1c8(%rsp), %rdi
callq 0x53d0
jmp 0x1deb5
leaq 0x1c8(%rsp), %rdi
callq 0x6670
jmp 0x1dec4
leaq 0x1c8(%rsp), %rdi
callq 0x54f8
leaq 0x1c7(%rsp), %rdi
callq 0x5310
movb $0x1, 0x1d4b1(%rip)     # 0x3b396
jmp 0x1dfd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1df21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x54f8
leaq 0x1c7(%rsp), %rdi
callq 0x5310
jmp 0x1e987
leaq 0x19f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x5490
movq 0x28(%rsp), %rdx
leaq 0x117cc(%rip), %rsi     # 0x2f71d
leaq 0x1a0(%rsp), %rdi
callq 0x53d0
jmp 0x1df60
leaq 0x1a0(%rsp), %rdi
callq 0x6670
jmp 0x1df6f
leaq 0x1a0(%rsp), %rdi
callq 0x54f8
leaq 0x19f(%rsp), %rdi
callq 0x5310
jmp 0x1dfd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1dfc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x54f8
leaq 0x19f(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e07a
leaq 0x177(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x5490
movq 0x20(%rsp), %rdx
leaq 0x1174c(%rip), %rsi     # 0x2f743
leaq 0x178(%rsp), %rdi
callq 0x53d0
jmp 0x1e006
leaq 0x178(%rsp), %rdi
callq 0x6670
jmp 0x1e015
leaq 0x178(%rsp), %rdi
callq 0x54f8
leaq 0x177(%rsp), %rdi
callq 0x5310
jmp 0x1e07a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1e068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x54f8
leaq 0x177(%rsp), %rdi
callq 0x5310
jmp 0x1e987
jmp 0x1e97a
movl $0x1, 0x1d2ff(%rip)     # 0x3b388
xorl %edi, %edi
callq 0x176d0
callq 0x1caf0
movl %eax, 0x170(%rsp)
movq 0x6a48d(%rip), %rax     # 0x88530
movl 0x20(%rax), %eax
movl %eax, 0x16c(%rsp)
movq 0x6a47c(%rip), %rax     # 0x88530
movl 0x24(%rax), %eax
movl %eax, 0x168(%rsp)
cmpl $0x1, 0x1d2c3(%rip)     # 0x3b388
jne 0x1e8f6
movl 0x16c(%rsp), %edi
movl 0x168(%rsp), %esi
callq 0x166a0
movq 0x6a46b(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movl 0x24(%rax), %esi
movl 0x16c(%rsp), %edx
movl 0x168(%rsp), %ecx
movl $0x2a, %r8d
callq 0x17230
callq 0x21710
movl %eax, 0x164(%rsp)
movq 0x6a439(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movl 0x24(%rax), %esi
movl 0x16c(%rsp), %edx
movl 0x168(%rsp), %ecx
callq 0x174b0
callq 0x16cc0
movl 0x164(%rsp), %eax
movl %eax, 0x1c(%rsp)
subl $0x9, %eax
je 0x1e337
jmp 0x1e14b
movl 0x1c(%rsp), %eax
subl $0x1b, %eax
je 0x1e88d
jmp 0x1e15a
movl 0x1c(%rsp), %eax
subl $0x31, %eax
je 0x1e5b9
jmp 0x1e169
movl 0x1c(%rsp), %eax
subl $0x32, %eax
je 0x1e403
jmp 0x1e178
movl 0x1c(%rsp), %eax
subl $0x33, %eax
je 0x1e634
jmp 0x1e187
movl 0x1c(%rsp), %eax
subl $0x34, %eax
je 0x1e443
jmp 0x1e196
movl 0x1c(%rsp), %eax
subl $0x36, %eax
je 0x1e483
jmp 0x1e1a5
movl 0x1c(%rsp), %eax
subl $0x37, %eax
je 0x1e4c3
jmp 0x1e1b4
movl 0x1c(%rsp), %eax
subl $0x38, %eax
je 0x1e3c3
jmp 0x1e1c3
movl 0x1c(%rsp), %eax
subl $0x39, %eax
je 0x1e53e
jmp 0x1e1d2
movl 0x1c(%rsp), %eax
subl $0x62, %eax
je 0x1e5b9
jmp 0x1e1e1
movl 0x1c(%rsp), %eax
subl $0x66, %eax
je 0x1e6af
jmp 0x1e1f0
movl 0x1c(%rsp), %eax
subl $0x68, %eax
je 0x1e443
jmp 0x1e1ff
movl 0x1c(%rsp), %eax
subl $0x69, %eax
je 0x1e8a0
jmp 0x1e20e
movl 0x1c(%rsp), %eax
subl $0x6a, %eax
je 0x1e403
jmp 0x1e21d
movl 0x1c(%rsp), %eax
subl $0x6b, %eax
je 0x1e3c3
jmp 0x1e22c
movl 0x1c(%rsp), %eax
subl $0x6c, %eax
je 0x1e483
jmp 0x1e23b
movl 0x1c(%rsp), %eax
subl $0x6e, %eax
je 0x1e634
jmp 0x1e24a
movl 0x1c(%rsp), %eax
subl $0x75, %eax
je 0x1e53e
jmp 0x1e259
movl 0x1c(%rsp), %eax
subl $0x79, %eax
je 0x1e4c3
jmp 0x1e268
movl 0x1c(%rsp), %eax
subl $0x102, %eax            # imm = 0x102
je 0x1e403
jmp 0x1e279
movl 0x1c(%rsp), %eax
subl $0x103, %eax            # imm = 0x103
je 0x1e3c3
jmp 0x1e28a
movl 0x1c(%rsp), %eax
subl $0x104, %eax            # imm = 0x104
je 0x1e443
jmp 0x1e29b
movl 0x1c(%rsp), %eax
subl $0x105, %eax            # imm = 0x105
je 0x1e483
jmp 0x1e2ac
movl 0x1c(%rsp), %eax
subl $0x15c, %eax            # imm = 0x15C
je 0x1e4c3
jmp 0x1e2bd
movl 0x1c(%rsp), %eax
subl $0x15d, %eax            # imm = 0x15D
je 0x1e53e
jmp 0x1e2ce
movl 0x1c(%rsp), %eax
subl $0x15f, %eax            # imm = 0x15F
je 0x1e5b9
jmp 0x1e2df
movl 0x1c(%rsp), %eax
subl $0x160, %eax            # imm = 0x160
je 0x1e634
jmp 0x1e2f0
movl 0x1c(%rsp), %eax
subl $0x1c2, %eax            # imm = 0x1C2
je 0x1e3c3
jmp 0x1e301
movl 0x1c(%rsp), %eax
subl $0x1c4, %eax            # imm = 0x1C4
je 0x1e443
jmp 0x1e312
movl 0x1c(%rsp), %eax
subl $0x1c6, %eax            # imm = 0x1C6
je 0x1e483
jmp 0x1e323
movl 0x1c(%rsp), %eax
subl $0x1c8, %eax            # imm = 0x1C8
je 0x1e403
jmp 0x1e8ef
leaq 0x6a1fa(%rip), %rdi     # 0x88538
callq 0x21950
cmpq $0x0, %rax
jbe 0x1e3be
movl 0x170(%rsp), %eax
addl $0x1, %eax
cltq
movq %rax, 0x10(%rsp)
leaq 0x6a1d7(%rip), %rdi     # 0x88538
callq 0x21950
movq %rax, %rcx
movq 0x10(%rsp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, 0x170(%rsp)
movslq 0x170(%rsp), %rsi
leaq 0x6a1ad(%rip), %rdi     # 0x88538
callq 0x21970
movq (%rax), %rax
movl 0x20(%rax), %eax
movl %eax, 0x16c(%rsp)
movslq 0x170(%rsp), %rsi
leaq 0x6a18c(%rip), %rdi     # 0x88538
callq 0x21970
movq (%rax), %rax
movl 0x24(%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x168(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x160(%rsp)
callq 0x21650
movl %eax, 0x15c(%rsp)
leaq 0x160(%rsp), %rdi
leaq 0x15c(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x168(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x158(%rsp)
callq 0x21660
movl %eax, 0x154(%rsp)
leaq 0x158(%rsp), %rdi
leaq 0x154(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x150(%rsp)
callq 0x21630
movl %eax, 0x14c(%rsp)
leaq 0x150(%rsp), %rdi
leaq 0x14c(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x148(%rsp)
callq 0x21640
movl %eax, 0x144(%rsp)
leaq 0x148(%rsp), %rdi
leaq 0x144(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x140(%rsp)
callq 0x21630
movl %eax, 0x13c(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x13c(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
movl 0x168(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x138(%rsp)
callq 0x21650
movl %eax, 0x134(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x134(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x130(%rsp)
callq 0x21640
movl %eax, 0x12c(%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x12c(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
movl 0x168(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x128(%rsp)
callq 0x21650
movl %eax, 0x124(%rsp)
leaq 0x128(%rsp), %rdi
leaq 0x124(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x120(%rsp)
callq 0x21630
movl %eax, 0x11c(%rsp)
leaq 0x120(%rsp), %rdi
leaq 0x11c(%rsp), %rsi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
movl 0x168(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x118(%rsp)
callq 0x21660
movl %eax, 0x114(%rsp)
leaq 0x118(%rsp), %rdi
leaq 0x114(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movl 0x16c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x110(%rsp)
callq 0x21640
movl %eax, 0x10c(%rsp)
leaq 0x110(%rsp), %rdi
leaq 0x10c(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
movl 0x168(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x108(%rsp)
callq 0x21660
movl %eax, 0x104(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x104(%rsp), %rsi
callq 0x215b0
movl (%rax), %eax
movl %eax, 0x168(%rsp)
jmp 0x1e8f1
movslq 0x1cc9e(%rip), %rcx     # 0x3b354
leaq 0x69b9b(%rip), %rax     # 0x88258
cmpl $0x0, (%rax,%rcx,4)
jne 0x1e770
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x5490
movq 0x8(%rsp), %rdx
leaq 0x1107f(%rip), %rsi     # 0x2f764
leaq 0xe0(%rsp), %rdi
callq 0x53d0
jmp 0x1e6f4
leaq 0xe0(%rsp), %rdi
callq 0x6670
jmp 0x1e703
leaq 0xe0(%rsp), %rdi
callq 0x54f8
leaq 0xdf(%rsp), %rdi
callq 0x5310
callq 0x8ce0
jmp 0x1e88b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1e75e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x54f8
leaq 0xdf(%rsp), %rdi
callq 0x5310
jmp 0x1e987
movl 0x16c(%rsp), %eax
movq 0x69dd2(%rip), %rcx     # 0x88550
cmpl 0x20(%rcx), %eax
jne 0x1e845
movl 0x168(%rsp), %eax
movq 0x69dbb(%rip), %rcx     # 0x88550
cmpl 0x24(%rcx), %eax
jne 0x1e845
leaq 0xb7(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x5490
movq (%rsp), %rdx
leaq 0x10fcb(%rip), %rsi     # 0x2f785
leaq 0xb8(%rsp), %rdi
callq 0x53d0
jmp 0x1e7c9
leaq 0xb8(%rsp), %rdi
callq 0x6670
jmp 0x1e7d8
leaq 0xb8(%rsp), %rdi
callq 0x54f8
leaq 0xb7(%rsp), %rdi
callq 0x5310
callq 0x8ce0
jmp 0x1e889
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x1e833
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x54f8
leaq 0xb7(%rsp), %rdi
callq 0x5310
jmp 0x1e987
movq 0x69d04(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x69cfa(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x16c(%rsp), %edx
movl 0x168(%rsp), %ecx
callq 0x18eb0
testb $0x1, %al
jne 0x1e872
jmp 0x1e887
movl $0x0, 0x1cb0c(%rip)     # 0x3b388
movl $0x0, 0x42c(%rsp)
jmp 0x1e889
jmp 0x1e88b
jmp 0x1e8f1
movl $0x0, 0x1caf1(%rip)     # 0x3b388
xorl %edi, %edi
callq 0x176d0
jmp 0x1e8f1
movl 0x16c(%rsp), %edi
movl 0x168(%rsp), %esi
callq 0x17b30
movl $0x1, 0x1cacb(%rip)     # 0x3b388
callq 0x15c60
movq 0x69c87(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x69c7d(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x16c(%rsp), %edx
movl 0x168(%rsp), %ecx
movl $0x2a, %r8d
callq 0x17230
jmp 0x1e8f1
jmp 0x1e0be
movslq 0x16c(%rsp), %rcx
leaq 0x69c5b(%rip), %rax     # 0x88560
imulq $0x4b0, %rcx, %rcx      # imm = 0x4B0
addq %rcx, %rax
movslq 0x168(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x1e94a
movslq 0x16c(%rsp), %rcx
leaq 0x69c33(%rip), %rax     # 0x88560
imulq $0x4b0, %rcx, %rcx      # imm = 0x4B0
addq %rcx, %rax
movslq 0x168(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x69be6(%rip)     # 0x88530
movq 0x69bff(%rip), %rax     # 0x88550
movl 0x20(%rax), %edi
movq 0x69bf5(%rip), %rax     # 0x88550
movl 0x24(%rax), %esi
movl 0x16c(%rsp), %edx
movl 0x168(%rsp), %ecx
callq 0x174b0
callq 0x16cc0
jmp 0x1e97a
jmp 0x1e97a
jmp 0x1cbff
addq $0x438, %rsp            # imm = 0x438
retq
movq 0x3f0(%rsp), %rdi
callq 0x5480
nopw %cs:(%rax,%rax)