// File: essarrdee[P]mutantaliens/mutantaliens.cpp
// Function: play_turn()
int play_turn()
{
		if(turn_count%100 == 50)
		{
			current_advice = rand()%vadvice.size();
		}
		for(std::vector<actor*>::iterator a = actors.begin(); a != actors.end(); ++a)
		{
			actor* act = (*a);
			if (act->sspecies->name == "human" && !act->is_player && !act->is_hologram)
			{
				map_human_scent[act->x][(*a)->y] += 0.7f; //non-player humans get an easier time >:)
			}
			if(!act->dead)
			{
				act->energy += act->sspecies->walk_energy;
				if(act->running)
				{
					if(act == p_ptr) ran = true;
					int stamina_consumed = (act->stamina * (act->sspecies->run_energy - act->sspecies->walk_energy))/act->sspecies->stamina;
					act->energy += std::min(stamina_consumed,act->stamina);
					act->stamina -=  std::min(stamina_consumed,act->stamina);
					if (stamina_consumed == 0)
					{
						if(act->is_player)
						{
							add_message("You are too exhausted to continue running.");
						}
						act->running = false;
					}
				}
				else if(act->energy > 100)
				{
					act->stamina += act->sspecies->stamina/70;
					act->stamina = std::min(act->stamina,act->sspecies->stamina);
				}
				if (act->is_player)
				{
					if(act->energy > 100)
					{
						if(win_condition())
						{
							win();
							
						}
						if(door_closable() && !door_closable_told)
						{
							add_message("Press 'C' to tell the computer to close the door (you can't take off with aliens in the ship, though).");
							door_closable_told = true;
						}
						act->energy -= 100;
						player_turn(act);
						check_achievements();

						act->most_noticeable_sound = 0.0;
						sound_this_turn = "";
						dir_this_turn = "";
						act->sound_threshold = std::max(act->sound_threshold-act->sspecies->hearing_adapt,act->sspecies->hearing_thres);

						visible_actors.clear();
					}
					if(!debug && !(turn_count %5))
					{
						map_human_scent[act->x][act->y] += 1000.0;
						diffuse_scent_human();
					}
					for(std::vector<item*>::iterator dev = timer_devices.begin(); dev != timer_devices.end();)
					{
						if((*dev)->time_remaining > 0)
						{
							(*dev)->time_remaining -= 1;
							++dev;
							//next_timer_devices.push_back(*dev);
						}
						else
						{
							if((*dev)->device_type == LOW_EXPLOSIVE || (*dev)->device_type == HIGH_EXPLOSIVE)
							{
								explode_this_turn.push_back(*dev);
							}
							else
							{
								active_devices.push_back(*dev);
								(*dev)->current_action = (*dev)->next_action;
							}
							dev = timer_devices.erase(dev);
						}
					}
					for(std::vector<item*>::iterator dev = active_devices.begin(); dev != active_devices.end(); ++dev)
					{
						if((*dev)->device_type == SCENT_GENERATOR)
						{
							map_human_scent[(*dev)->x][(*dev)->y] += ((*dev)->power_remaining*1200)/100;
							if(rand()%7 < 2) (*dev)->power_remaining -= 1;
							(*dev)->power_remaining = std::max(0,(*dev)->power_remaining);
						}
						else if((*dev)->device_type == HOLOGRAM_PROJECTOR)
						{
							actor* pr = (*dev)->projection;
							if(pr->x != -500)
							{
								map_occupants[pr->x][pr->y] = NULL;
							}
							int x = rand()%9;
							int y = rand()%9;
							while(terrain_immovable(pr,(*dev)->x+x-4,(*dev)->y+y-4))
							{
								x = rand()%9;
								y = rand()%9;
							}
							map_occupants[(*dev)->x+x-4][(*dev)->y+y-4] = pr;
							pr->x = (*dev)->x+x-4;
							pr->y = (*dev)->y+y-4;
							

						}
						else if((*dev)->device_type == NOISE_GENERATOR)
						{
							if((*dev)->current_action == HUMAN_STIMULUS)
							{
							make_noise((*dev)->x,(*dev)->y,&fake_human_noise[rand()%2]);
							}
							else if((*dev)->current_action == LOUD_STIMULUS)
							{
								make_noise((*dev)->x,(*dev)->y,&generator_loud[rand()%2]);
							}
						}
						else if((*dev)->device_type == BRAIN_SLICE)
						{
							(*dev)->current_action = HUMAN_STIMULUS;
						}
					}
					for(std::vector<item*>::iterator dev = explode_this_turn.begin(); dev != explode_this_turn.end(); ++dev)
					{
						set_unconfigured(*dev);
						//remove(timer_devices.begin(),timer_devices.end(),*dev);
						activate_device(*dev);
					}
					explode_this_turn.erase(explode_this_turn.begin(),explode_this_turn.end());
					for(std::vector<explosion>::iterator ex = explosions_this_turn.begin(); ex != explosions_this_turn.end(); ex++)
					{
						do_explosion(*ex);
					}
					explosions_this_turn.erase(explosions_this_turn.begin(),explosions_this_turn.end());
				}
				else if (act->is_hologram)
				{
					if(act->energy > 100)
					{
						act->energy -= 100;
						if(on_map(act->x,act->y))
							hologram_turn(act);
					}
				}
				else
				{
					if(act->energy > 100)
					{
						act->energy -= 100;
						if(!debug)
						{
						ai_turn(act);
						}
						act->most_noticeable_sound = 0.0;
						act->sound_threshold = std::max(act->sound_threshold-act->sspecies->hearing_adapt,act->sspecies->hearing_thres);
					}
				}
			}
		}
		if(rand()%4000+150+turn_count >4000 && rand()%(45-6*(difficulty-5)) == 0)
		{
			std::pair<int,int> loc = random_occupiable_square_away_from_player();

			add_actor(zoo[rand()%ZOO_SIZE+1],false,loc.first,loc.second);
		}
	return 0;
}

// Assembly:
subq $0x1c8, %rsp            # imm = 0x1C8
movl 0x1c817(%rip), %eax     # 0x3b384
movl $0x64, %ecx
cltd
idivl %ecx
cmpl $0x32, %edx
jne 0x1eba7
callq 0x50b0
cltq
movq %rax, 0x60(%rsp)
leaq 0x1c80b(%rip), %rdi     # 0x3b398
callq 0x1fe40
movq %rax, %rcx
movq 0x60(%rsp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, 0x1c7e5(%rip)     # 0x3b38c
leaq 0xc18a2(%rip), %rdi     # 0xe0450
callq 0x20960
movq %rax, 0x1c0(%rsp)
leaq 0xc188e(%rip), %rdi     # 0xe0450
callq 0x209d0
movq %rax, 0x1b8(%rsp)
leaq 0x1c0(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x20990
testb $0x1, %al
jne 0x1ebed
jmp 0x1fa01
leaq 0x1c0(%rsp), %rdi
callq 0x20a00
movq (%rax), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
movq (%rax), %rdi
addq $0xf0, %rdi
leaq 0xed62(%rip), %rsi      # 0x2d980
callq 0x21740
testb $0x1, %al
jne 0x1ec29
jmp 0x1ec95
movq 0x1b0(%rsp), %rax
testb $0x1, 0x8(%rax)
jne 0x1ec95
movq 0x1b0(%rsp), %rax
testb $0x1, 0x9(%rax)
jne 0x1ec95
movq 0x1b0(%rsp), %rax
movslq 0x20(%rax), %rcx
leaq 0x326e8(%rip), %rax     # 0x51340
imulq $0x258, %rcx, %rcx      # imm = 0x258
addq %rcx, %rax
movq %rax, 0x58(%rsp)
leaq 0x1c0(%rsp), %rdi
callq 0x20a00
movq %rax, %rcx
movq 0x58(%rsp), %rax
movq (%rcx), %rcx
movslq 0x24(%rcx), %rcx
movss 0xe3a1(%rip), %xmm0     # 0x2d02c
addss (%rax,%rcx,4), %xmm0
movss %xmm0, (%rax,%rcx,4)
movq 0x1b0(%rsp), %rax
testb $0x1, 0x1c(%rax)
jne 0x1f9ed
movq 0x1b0(%rsp), %rax
movq (%rax), %rax
movl 0x2c(%rax), %ecx
movq 0x1b0(%rsp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
movq 0x1b0(%rsp), %rax
testb $0x1, 0x14(%rax)
je 0x1ee50
movq 0x1b0(%rsp), %rax
cmpq 0x6986c(%rip), %rax     # 0x88550
jne 0x1eced
movb $0x1, 0x1c6a5(%rip)     # 0x3b392
movq 0x1b0(%rsp), %rax
movl 0x18(%rax), %eax
movq 0x1b0(%rsp), %rcx
movq (%rcx), %rcx
movl 0x30(%rcx), %ecx
movq 0x1b0(%rsp), %rdx
movq (%rdx), %rdx
subl 0x2c(%rdx), %ecx
imull %ecx, %eax
movq 0x1b0(%rsp), %rcx
movq (%rcx), %rcx
cltd
idivl 0x34(%rcx)
movl %eax, 0x1ac(%rsp)
movq 0x1b0(%rsp), %rsi
addq $0x18, %rsi
leaq 0x1ac(%rsp), %rdi
callq 0x215b0
movl (%rax), %ecx
movq 0x1b0(%rsp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
movq 0x1b0(%rsp), %rsi
addq $0x18, %rsi
leaq 0x1ac(%rsp), %rdi
callq 0x215b0
movl (%rax), %edx
movq 0x1b0(%rsp), %rax
movl 0x18(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x18(%rax)
cmpl $0x0, 0x1ac(%rsp)
jne 0x1ee4e
movq 0x1b0(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x1ee42
leaq 0x187(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x5490
movq 0x50(%rsp), %rdx
leaq 0x109dc(%rip), %rsi     # 0x2f79b
leaq 0x188(%rsp), %rdi
callq 0x53d0
jmp 0x1edce
leaq 0x188(%rsp), %rdi
callq 0x6670
jmp 0x1eddd
leaq 0x188(%rsp), %rdi
callq 0x54f8
leaq 0x187(%rsp), %rdi
callq 0x5310
jmp 0x1ee42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
jmp 0x1ee30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x54f8
leaq 0x187(%rsp), %rdi
callq 0x5310
jmp 0x1fa8b
movq 0x1b0(%rsp), %rax
movb $0x0, 0x14(%rax)
jmp 0x1eeb3
movq 0x1b0(%rsp), %rax
cmpl $0x64, 0x10(%rax)
jle 0x1eeb1
movq 0x1b0(%rsp), %rax
movq (%rax), %rax
movl 0x34(%rax), %eax
movl $0x46, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x1b0(%rsp), %rax
addl 0x18(%rax), %ecx
movl %ecx, 0x18(%rax)
movq 0x1b0(%rsp), %rdi
addq $0x18, %rdi
movq 0x1b0(%rsp), %rax
movq (%rax), %rsi
addq $0x34, %rsi
callq 0x215b0
movl (%rax), %ecx
movq 0x1b0(%rsp), %rax
movl %ecx, 0x18(%rax)
jmp 0x1eeb3
movq 0x1b0(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x1f8ef
movq 0x1b0(%rsp), %rax
cmpl $0x64, 0x10(%rax)
jle 0x1f062
callq 0x11d40
testb $0x1, %al
jne 0x1eee2
jmp 0x1eee7
callq 0x18530
callq 0x11ce0
testb $0x1, %al
jne 0x1eef5
jmp 0x1efaa
testb $0x1, 0x1c485(%rip)     # 0x3b381
jne 0x1efaa
leaq 0x14f(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x5490
movq 0x48(%rsp), %rdx
leaq 0x108a6(%rip), %rsi     # 0x2f7c6
leaq 0x150(%rsp), %rdi
callq 0x53d0
jmp 0x1ef2f
leaq 0x150(%rsp), %rdi
callq 0x6670
jmp 0x1ef3e
leaq 0x150(%rsp), %rdi
callq 0x54f8
leaq 0x14f(%rsp), %rdi
callq 0x5310
movb $0x1, 0x1c422(%rip)     # 0x3b381
jmp 0x1efaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
jmp 0x1ef98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x178(%rsp)
movl %eax, 0x174(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x54f8
leaq 0x14f(%rsp), %rdi
callq 0x5310
jmp 0x1fa8b
movq 0x1b0(%rsp), %rax
movl 0x10(%rax), %ecx
subl $0x64, %ecx
movl %ecx, 0x10(%rax)
movq 0x1b0(%rsp), %rdi
callq 0x1cbe0
callq 0x11c70
movq 0x1b0(%rsp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x40(%rax)
leaq 0xc14e4(%rip), %rdi     # 0xe04c8
leaq 0xf076(%rip), %rsi      # 0x2e061
callq 0x53c0
leaq 0xc14f1(%rip), %rdi     # 0xe04e8
leaq 0xf063(%rip), %rsi      # 0x2e061
callq 0x53c0
movq 0x1b0(%rsp), %rax
movss 0x3c(%rax), %xmm0
movq 0x1b0(%rsp), %rax
movq (%rax), %rax
subss 0x1c(%rax), %xmm0
movss %xmm0, 0x148(%rsp)
movq 0x1b0(%rsp), %rax
movq (%rax), %rsi
addq $0x18, %rsi
leaq 0x148(%rsp), %rdi
callq 0x20a50
movss (%rax), %xmm0
movq 0x1b0(%rsp), %rax
movss %xmm0, 0x3c(%rax)
leaq 0x694db(%rip), %rdi     # 0x88538
callq 0x21a40
testb $0x1, 0x1c319(%rip)     # 0x3b382
jne 0x1f0ca
movl 0x1c313(%rip), %eax     # 0x3b384
movl $0x5, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x1f0ca
movq 0x1b0(%rsp), %rax
movslq 0x20(%rax), %rcx
leaq 0x322af(%rip), %rax     # 0x51340
imulq $0x258, %rcx, %rcx      # imm = 0x258
addq %rcx, %rax
movq 0x1b0(%rsp), %rcx
movslq 0x24(%rcx), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xe028(%rip), %xmm1     # 0x2d0e0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
callq 0x1e9a0
leaq 0x95427(%rip), %rdi     # 0xb44f8
callq 0x21a60
movq %rax, 0x140(%rsp)
leaq 0x95413(%rip), %rdi     # 0xb44f8
callq 0x21ad0
movq %rax, 0x138(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x21a90
testb $0x1, %al
jne 0x1f110
jmp 0x1f231
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x0, 0x7c(%rax)
jle 0x1f151
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x7c(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x7c(%rax)
leaq 0x140(%rsp), %rdi
callq 0x21b10
jmp 0x1f22c
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x0, 0x70(%rax)
je 0x1f17d
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x1, 0x70(%rax)
jne 0x1f19b
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq %rax, %rsi
leaq 0x95304(%rip), %rdi     # 0xb4498
callq 0x20c30
jmp 0x1f1eb
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq %rax, %rsi
leaq 0x952fe(%rip), %rdi     # 0xb44b0
callq 0x20c30
leaq 0x140(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x88(%rax), %eax
movl %eax, 0x44(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x21b00
movl 0x44(%rsp), %ecx
movq (%rax), %rax
movl %ecx, 0x84(%rax)
leaq 0x128(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x21ba0
movq 0x128(%rsp), %rsi
leaq 0x952e9(%rip), %rdi     # 0xb44f8
callq 0x21b30
movq %rax, 0x130(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x140(%rsp)
jmp 0x1f0de
leaq 0x95278(%rip), %rdi     # 0xb44b0
callq 0x21a60
movq %rax, 0x120(%rsp)
leaq 0x95264(%rip), %rdi     # 0xb44b0
callq 0x21ad0
movq %rax, 0x118(%rsp)
leaq 0x120(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x21a90
testb $0x1, %al
jne 0x1f277
jmp 0x1f6ed
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x4, 0x70(%rax)
jne 0x1f38f
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
imull $0x4b0, 0x78(%rax), %eax # imm = 0x4B0
movl $0x64, %ecx
cltd
idivl %ecx
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x34(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movslq 0x90(%rax), %rcx
leaq 0x32068(%rip), %rax     # 0x51340
imulq $0x258, %rcx, %rcx      # imm = 0x258
addq %rcx, %rax
movq %rax, 0x38(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movss 0x34(%rsp), %xmm0
movq %rax, %rcx
movq 0x38(%rsp), %rax
movq (%rcx), %rcx
movslq 0x94(%rcx), %rcx
addss (%rax,%rcx,4), %xmm0
movss %xmm0, (%rax,%rcx,4)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
cmpl $0x2, %edx
jge 0x1f341
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x78(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x78(%rax)
movl $0x0, 0x114(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rsi
addq $0x78, %rsi
leaq 0x114(%rsp), %rdi
callq 0x215f0
movl (%rax), %eax
movl %eax, 0x30(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movl 0x30(%rsp), %ecx
movq (%rax), %rax
movl %ecx, 0x78(%rax)
jmp 0x1f6d9
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x2, 0x70(%rax)
jne 0x1f595
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movq (%rax), %rax
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rax
cmpl $0xfffffe0c, 0x20(%rax) # imm = 0xFFFFFE0C
je 0x1f406
movq 0x108(%rsp), %rax
movslq 0x20(%rax), %rcx
leaq 0x69178(%rip), %rax     # 0x88560
imulq $0x4b0, %rcx, %rcx      # imm = 0x4B0
addq %rcx, %rax
movq 0x108(%rsp), %rcx
movslq 0x24(%rcx), %rcx
movq $0x0, (%rax,%rcx,8)
callq 0x50b0
movl $0x9, %ecx
cltd
idivl %ecx
movl %edx, 0x104(%rsp)
callq 0x50b0
movl $0x9, %ecx
cltd
idivl %ecx
movl %edx, 0x100(%rsp)
movq 0x108(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x90(%rax), %eax
addl 0x104(%rsp), %eax
subl $0x4, %eax
movl %eax, 0x2c(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq 0x20(%rsp), %rdi
movl 0x2c(%rsp), %esi
movq (%rax), %rax
movl 0x94(%rax), %edx
addl 0x100(%rsp), %edx
subl $0x4, %edx
callq 0xef90
testb $0x1, %al
jne 0x1f493
jmp 0x1f4c0
callq 0x50b0
movl $0x9, %ecx
cltd
idivl %ecx
movl %edx, 0x104(%rsp)
callq 0x50b0
movl $0x9, %ecx
cltd
idivl %ecx
movl %edx, 0x100(%rsp)
jmp 0x1f42e
movq 0x108(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x90(%rax), %eax
addl 0x104(%rsp), %eax
subl $0x4, %eax
movslq %eax, %rcx
leaq 0x69069(%rip), %rax     # 0x88560
imulq $0x4b0, %rcx, %rcx      # imm = 0x4B0
addq %rcx, %rax
movq %rax, 0x18(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq 0x10(%rsp), %rdx
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq (%rcx), %rcx
movl 0x94(%rcx), %ecx
addl 0x100(%rsp), %ecx
subl $0x4, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x90(%rax), %ecx
addl 0x104(%rsp), %ecx
subl $0x4, %ecx
movq 0x108(%rsp), %rax
movl %ecx, 0x20(%rax)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x94(%rax), %ecx
addl 0x100(%rsp), %ecx
subl $0x4, %ecx
movq 0x108(%rsp), %rax
movl %ecx, 0x24(%rax)
jmp 0x1f6d7
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x3, 0x70(%rax)
jne 0x1f6a3
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x1, 0x84(%rax)
jne 0x1f629
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x90(%rax), %eax
movl %eax, 0x8(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x94(%rax), %eax
movl %eax, 0xc(%rsp)
callq 0x50b0
movl 0x8(%rsp), %edi
movl 0xc(%rsp), %esi
movl $0x2, %ecx
cltd
idivl %ecx
movslq %edx, %rax
leaq 0x68d85(%rip), %rdx     # 0x883a0
imulq $0x30, %rax, %rax
addq %rax, %rdx
callq 0xf520
jmp 0x1f6a1
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x2, 0x84(%rax)
jne 0x1f69f
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x90(%rax), %eax
movl %eax, (%rsp)
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl 0x94(%rax), %eax
movl %eax, 0x4(%rsp)
callq 0x50b0
movl (%rsp), %edi
movl 0x4(%rsp), %esi
movl $0x2, %ecx
cltd
idivl %ecx
movslq %edx, %rax
leaq 0x68d6d(%rip), %rdx     # 0x88400
imulq $0x30, %rax, %rax
addq %rax, %rdx
callq 0xf520
jmp 0x1f6a1
jmp 0x1f6d5
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
cmpl $0x5, 0x70(%rax)
jne 0x1f6d3
leaq 0x120(%rsp), %rdi
callq 0x21b00
movq (%rax), %rax
movl $0x1, 0x84(%rax)
jmp 0x1f6d5
jmp 0x1f6d7
jmp 0x1f6d9
jmp 0x1f6db
leaq 0x120(%rsp), %rdi
callq 0x21b10
jmp 0x1f245
leaq 0x94da4(%rip), %rdi     # 0xb4498
callq 0x21a60
movq %rax, 0xf8(%rsp)
leaq 0x94d90(%rip), %rdi     # 0xb4498
callq 0x21ad0
movq %rax, 0xf0(%rsp)
leaq 0xf8(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x21a90
testb $0x1, %al
jne 0x1f730
jmp 0x1f769
leaq 0xf8(%rsp), %rdi
callq 0x21b00
movq (%rax), %rdi
callq 0x1c200
leaq 0xf8(%rsp), %rdi
callq 0x21b00
movq (%rax), %rdi
callq 0x13e30
leaq 0xf8(%rsp), %rdi
callq 0x21b10
jmp 0x1f701
leaq 0x94d28(%rip), %rdi     # 0xb4498
callq 0x21a60
movq %rax, 0xe0(%rsp)
leaq 0xe8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x21ba0
leaq 0x94cff(%rip), %rdi     # 0xb4498
callq 0x21ad0
movq %rax, 0xd0(%rsp)
leaq 0xd8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x21ba0
movq 0xe8(%rsp), %rsi
movq 0xd8(%rsp), %rdx
leaq 0x94cc6(%rip), %rdi     # 0xb4498
callq 0x21be0
movq %rax, 0xc8(%rsp)
leaq 0x94c9a(%rip), %rdi     # 0xb4480
callq 0x21c80
movq %rax, 0xc0(%rsp)
leaq 0x94c86(%rip), %rdi     # 0xb4480
callq 0x21cf0
movq %rax, 0xb8(%rsp)
leaq 0xc0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x21cb0
testb $0x1, %al
jne 0x1f822
jmp 0x1f877
leaq 0xc0(%rsp), %rdi
callq 0x21d20
movq (%rax), %rcx
movq %rcx, 0xa8(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0xb0(%rsp)
movq 0xa8(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x18740
leaq 0xc0(%rsp), %rdi
xorl %esi, %esi
callq 0x21d30
movq %rax, 0xa0(%rsp)
jmp 0x1f7f3
leaq 0x94c02(%rip), %rdi     # 0xb4480
callq 0x21c80
movq %rax, 0x90(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x21e10
leaq 0x94bd9(%rip), %rdi     # 0xb4480
callq 0x21cf0
movq %rax, 0x80(%rsp)
leaq 0x88(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x21e10
movq 0x98(%rsp), %rsi
movq 0x88(%rsp), %rdx
leaq 0x94ba0(%rip), %rdi     # 0xb4480
callq 0x21d70
movq %rax, 0x78(%rsp)
jmp 0x1f9eb
movq 0x1b0(%rsp), %rax
testb $0x1, 0x9(%rax)
je 0x1f951
movq 0x1b0(%rsp), %rax
cmpl $0x64, 0x10(%rax)
jle 0x1f94c
movq 0x1b0(%rsp), %rax
movl 0x10(%rax), %ecx
subl $0x64, %ecx
movl %ecx, 0x10(%rax)
movq 0x1b0(%rsp), %rax
movl 0x20(%rax), %edi
movq 0x1b0(%rsp), %rax
movl 0x24(%rax), %esi
callq 0x20770
testb $0x1, %al
jne 0x1f93d
jmp 0x1f94a
movq 0x1b0(%rsp), %rdi
callq 0x19b00
jmp 0x1f94c
jmp 0x1f9e9
movq 0x1b0(%rsp), %rax
cmpl $0x64, 0x10(%rax)
jle 0x1f9e7
movq 0x1b0(%rsp), %rax
movl 0x10(%rax), %ecx
subl $0x64, %ecx
movl %ecx, 0x10(%rax)
testb $0x1, 0x1ba07(%rip)     # 0x3b382
jne 0x1f98a
movq 0x1b0(%rsp), %rdi
callq 0x19ba0
movq 0x1b0(%rsp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x40(%rax)
movq 0x1b0(%rsp), %rax
movss 0x3c(%rax), %xmm0
movq 0x1b0(%rsp), %rax
movq (%rax), %rax
subss 0x1c(%rax), %xmm0
movss %xmm0, 0x74(%rsp)
movq 0x1b0(%rsp), %rax
movq (%rax), %rsi
addq $0x18, %rsi
leaq 0x74(%rsp), %rdi
callq 0x20a50
movss (%rax), %xmm0
movq 0x1b0(%rsp), %rax
movss %xmm0, 0x3c(%rax)
jmp 0x1f9e9
jmp 0x1f9eb
jmp 0x1f9ed
jmp 0x1f9ef
leaq 0x1c0(%rsp), %rdi
callq 0x20ab0
jmp 0x1ebbb
callq 0x50b0
movl $0xfa0, %ecx            # imm = 0xFA0
cltd
idivl %ecx
movl %edx, %eax
addl $0x96, %eax
addl 0x1b969(%rip), %eax     # 0x3b384
cmpl $0xfa0, %eax            # imm = 0xFA0
jle 0x1fa81
callq 0x50b0
movl 0x1b94f(%rip), %ecx     # 0x3b37c
subl $0x5, %ecx
imull $0x6, %ecx, %edx
movl $0x2d, %ecx
subl %edx, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x1fa81
callq 0xf130
movq %rax, 0x6c(%rsp)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
addl $0x1, %edx
movslq %edx, %rsi
leaq 0x689fa(%rip), %rdi     # 0x88460
callq 0x20650
movq (%rax), %rdi
movl 0x6c(%rsp), %edx
movl 0x70(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, %esi
callq 0xfdf0
xorl %eax, %eax
addq $0x1c8, %rsp            # imm = 0x1C8
retq
movq 0x178(%rsp), %rdi
callq 0x5480
nopl (%rax,%rax)