// File: essarrdee[P]mutantaliens/mutantaliens.cpp
// Function: init_species()
void init_species()
{
	init_human_sp();
	noise wn[TERRAIN_TYPES] = {{1.0,"footsteps",false},{1.5,"footsteps",false},{1.5f,"footsteps",false},{2.0,"footsteps",false},{0.0,"",false},
	{2.3f,"footsteps",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false}};
	walk_noise[0] = std::vector<noise>(wn,wn+TERRAIN_TYPES);
	//delete [] wn;
	noise rn[TERRAIN_TYPES] = {{2.0,"footsteps",false},{3.0,"footsteps",false},{3.5f,"footsteps",false},{3.0,"footsteps",false},{0.0,"",false},
	{3.3f,"footsteps",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false},{0.0,"",false}};
	run_noise[0] = std::vector<noise>(rn,rn+TERRAIN_TYPES);
	//delete [] rn;
	for (int spsp=1; spsp<ZOO_SIZE+1; spsp++)
	{
		species* alien = new species();
		alien->damage_known = false;
		alien->health_known = false;
		alien->size_known = false;
		alien->walk_known = false;
		alien->run_known = false;
		alien->id = spsp;
		alien->crit_known = false;
		alien->body_sections_tried = 0;
		int size = rand()%3;
		if(spsp == ZOO_SIZE) size = 2;
		else if(spsp==ZOO_SIZE - 1) size = 1;
		else if(spsp==ZOO_SIZE - 2) size = 0;
		alien->syl1 = random_syllable();
		while(true)
		{
			bool ok_name = true;
			for (int spspsp = 1; spspsp < spsp; spspsp++)
			{
				if(zoo[spspsp]->ch == alien->syl1[0])
				{
					ok_name = false;
					alien->syl1 = random_syllable();
				}
			}
			if(ok_name) break;
		}
		alien->syl2 = random_syllable();
		alien->name = alien->syl1+"-"+alien->syl2;
		alien->ch = alien->name[0];
		/*alien->colour = rand()%6+1;
		while(alien->colour == COLOR_GREEN)
		{
			alien->colour = rand()%6+1;
		}*/
		if(size == 0) alien->colour = COLOR_MAGENTA;
		if(size == 1) alien->colour = COLOR_CYAN;
		if(size == 2) alien->colour = COLOR_YELLOW;

		alien->size = size;
		std::string walk_str;
		std::string run_str;
		float extra_noise;
		alien->crit_part_name = random_syllable();
		switch(size)
		{
		case 0:
			alien->description = "A small alien.";
			alien->damage = rand()%2+2;
			alien->min_health = 4+rand()%4;
			alien->health_range = rand()%2+1;
			alien->body_sections = 3+rand()%4;

			if(rand()%12<1+difficulty/3)
			{ alien->psychic_range = rand()%20+10; }
			else
			{
				alien->psychic_range = 0;
			}

			switch(rand()%7)
			{
			case 0:
				alien->vis_range = rand()%6+6; break;
			case 1: case 2: case 3:
				alien->vis_range = rand()%4+4; break;
			case 4: case 5: case 6:
				alien->vis_range = rand()%3+3; break;
			}

			if(rand()%7 < 2){
				alien->hearing_thres = 1.0f+((float)(rand()%10))/3;
				alien->hearing_adapt = 0.3f;
			}
			else
			{
				alien->hearing_thres = -4.0f+(float)(rand()%300)*0.01f;
				alien->hearing_adapt = 1.5f;
			}

			switch(rand()%7)
			{
			case 0: case 1:
				alien->smell_clarity = (float)(rand()%4) +8.0f; break;
			case 2: case 3: case 4:
				alien->smell_clarity = randfloat()+1.0f; break;
			case 5: case 6:
				alien->smell_clarity = 0.1f*(randfloat()+1.0f); break;
			}

			alien->walk_energy = rand()%7+9;
			alien->run_energy = (3*alien->walk_energy)/2 + rand()%3;
			alien->stamina = 5*((rand()%4+6)*alien->run_energy + rand()%(2*alien->run_energy));

			switch(rand()%3)
			{
			case 0:
				walk_str = "scuttling"; break;
			case 1:
				walk_str = "scampering"; break;
			case 2:
				walk_str = "pattering"; break;
			}
			switch(rand()%3)
			{
			case 0:
				run_str = "scuttling"; break;
			case 1:
				run_str = "scampering"; break;
			case 2:
				run_str = "fluttering";
			}
			extra_noise = 7.0f;
			walk_noise[spsp] = std::vector<noise>(wn,wn+TERRAIN_TYPES);
			run_noise[spsp] = std::vector<noise>(rn,rn+TERRAIN_TYPES);
			for(int i=0;i<TERRAIN_TYPES;i++)
			{
				walk_noise[spsp][i].describe = walk_str;
				walk_noise[spsp][i].volume +=extra_noise;
				run_noise[spsp][i].describe = run_str;
				run_noise[spsp][i].volume +=extra_noise*1.6f;
			}
			break;
		case 1:
			alien->description = "A medium-sized alien.";
			alien->damage = rand()%6+4;
			alien->min_health = 10+rand()%6;
			alien->health_range = rand()%4+4;
			alien->body_sections = 6+rand()%8;

			if(rand()%12<2+(difficulty-3)/3)
			{ alien->psychic_range = rand()%30+20; }
			else
			{
				alien->psychic_range = 0;
			}

			switch(rand()%7)
			{
			case 0: case 1: case 2:
				alien->vis_range = rand()%6+6; break;
			case 3: case 4: case 5:
				alien->vis_range = rand()%4+4; break;
			case 6:
				alien->vis_range = rand()%2+2; break;
			}

			if(rand()%7 < 3)
			{
				alien->hearing_thres = 2.0f+0.05f*(rand()%20);
				alien->hearing_adapt = 0.25f;
			}
			else
			{
				alien->hearing_thres = -2.0f+0.1f*(rand()%10);
				alien->hearing_adapt = 0.7f;
			}

			switch(rand()%7)
			{
			case 0: case 1: case 2:
				alien->smell_clarity = (float)(rand()%4) +8.0f; break;
			case 3: case 4:
				alien->smell_clarity = randfloat()+1.0f; break;
			case 5: case 6:
				alien->smell_clarity = 0.1f*(randfloat()+1.0f); break;
			}

			alien->walk_energy = rand()%4+8;
			alien->run_energy = ((rand()%10+5)*alien->walk_energy)/5 + rand()%4;
			alien->stamina = 4*((rand()%5+7)*alien->run_energy + rand()%(2*alien->run_energy));
						walk_noise[spsp] = std::vector<noise>(wn,wn+TERRAIN_TYPES);

			switch(rand()%3)
			{
			case 0:
				walk_str = "footsteps"; break;
			case 1:
				walk_str = "cantering"; break;
			case 2:
				walk_str = "trotting"; break;
			}
			switch(rand()%2)
			{
			case 0:
				run_str = "galloping"; break;
			case 1: 
				run_str = "running"; break;
			}
			extra_noise = 9.0f;
			walk_noise[spsp] = std::vector<noise>(wn,wn+TERRAIN_TYPES);
			run_noise[spsp] = std::vector<noise>(rn,rn+TERRAIN_TYPES);
			for(int i=0;i<TERRAIN_TYPES;i++)
			{
				walk_noise[spsp][i].describe = walk_str;
				walk_noise[spsp][i].volume +=extra_noise;
				run_noise[spsp][i].describe = run_str;
				run_noise[spsp][i].volume +=extra_noise*1.6f;
			}
			break;
		case 2:
			alien->description = "A huge alien.";
			alien->damage = rand()%8+8;
			alien->min_health = 20+rand()%10;
			alien->health_range = rand()%7+5;
			alien->body_sections = 9+rand()%16;

			if(rand()%12<3+(difficulty/5))
			{ alien->psychic_range = rand()%30+20; }
			else
			{
				alien->psychic_range = 0;
			}

			switch(rand()%7)
			{
			case 0: case 1: case 2: case 3:
				alien->vis_range = rand()%6+6; break;
			case 4: case 5:
				alien->vis_range = rand()%4+4; break;
			case 6:
				alien->vis_range = rand()%2+2; break;
			}

			if(rand()%7 < 4)
			{
				alien->hearing_thres = 2.5f+0.1f*(rand()%15);
				alien->hearing_adapt = 0.1f;

			}
			else
			{
				alien->hearing_thres = -5.0f+0.03f*(rand()%100);
				alien->hearing_adapt = 1.0f;

			}

			switch(rand()%7)
			{
			case 0: case 1:
				alien->smell_clarity = (float)(rand()%4) +8.0f; break;
			case 2: case 3: case 4:
				alien->smell_clarity = randfloat()+1.0f; break;
			case 5: case 6:
				alien->smell_clarity = 0.1f*(randfloat()+1.0f); break;
			}

			alien->walk_energy = rand()%3+6;
			alien->run_energy = alien->walk_energy + rand()%6;
			alien->stamina = 2*((rand()%4+5)*alien->run_energy + rand()%(2*alien->run_energy));
			switch(rand()%3)
			{
			case 0:
				walk_str = "thumping"; break;
			case 1:
				walk_str = "pounding"; break;
			case 2:
				walk_str = "crashing"; break;
			}
			switch(rand()%1)
			{
			case 0:
				run_str = "charging"; break;
			}
			extra_noise = 11.5f;
			walk_noise[spsp] = std::vector<noise>(wn,wn+TERRAIN_TYPES);
			run_noise[spsp] = std::vector<noise>(rn,rn+TERRAIN_TYPES);
			for(int i=0;i<TERRAIN_TYPES;i++)
			{
				walk_noise[spsp][i].describe = walk_str;
				walk_noise[spsp][i].volume +=extra_noise;
				run_noise[spsp][i].describe = run_str;
				run_noise[spsp][i].volume +=extra_noise*1.6f;
			}
		}
		/*char buf[1000] = "";
		sprintf(buf,"A %s is a %s creature %s.",
			alien->name.c_str(),
			(std::string(alien->psychic_range?"psychic":"")+std::string(alien->psychic_range&&alien->sees?", ":"")+std::string(alien->sees?"sighted":"")).c_str(),
			(std::string(alien->smells||alien->hears?"with good ":"")+std::string(alien->hears?"hearing":"")+
			 std::string(alien->hears&&alien->smells?" and ":"")+std::string(alien->smells?"sense of smell":"")).c_str());
		alien->description = std::string(buf);*/
		alien->walk_energy += (difficulty-5)/3;
		alien->run_energy += (difficulty-5)/2;
		alien->damage += (difficulty - 5)/2;
		alien->hearing_thres -= (float)(difficulty-5)/3.0f;
		alien->min_health += (difficulty-5)/3;
		alien->vis_range += (difficulty-5)/4;
		if(rand()%10 > difficulty) alien->psychic_range += 2*difficulty;
		zoo.push_back(alien);
	}
}

// Assembly:
subq $0xbd8, %rsp            # imm = 0xBD8
callq 0x9570
movb $0x1, 0x938(%rsp)
leaq 0x960(%rsp), %rax
movq %rax, 0x958(%rsp)
movl $0x3f800000, 0x960(%rsp) # imm = 0x3F800000
leaq 0x968(%rsp), %rax
movq %rax, 0x458(%rsp)
leaq 0x957(%rsp), %rdi
movq %rdi, 0x460(%rsp)
callq 0x5490
movq 0x458(%rsp), %rdi
movq 0x460(%rsp), %rdx
leaq 0x21c0e(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xbe82
movb $0x0, 0x988(%rsp)
leaq 0x990(%rsp), %rax
movq %rax, 0x440(%rsp)
movq %rax, 0x958(%rsp)
movl $0x3fc00000, 0x990(%rsp) # imm = 0x3FC00000
leaq 0x998(%rsp), %rax
movq %rax, 0x448(%rsp)
leaq 0x943(%rsp), %rdi
movq %rdi, 0x450(%rsp)
callq 0x5490
movq 0x448(%rsp), %rdi
movq 0x450(%rsp), %rdx
leaq 0x21ba0(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xbef0
movq 0x440(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x9c0(%rsp), %rax
movq %rax, 0x428(%rsp)
movq %rax, 0x958(%rsp)
movl $0x3fc00000, 0x9c0(%rsp) # imm = 0x3FC00000
leaq 0x9c8(%rsp), %rax
movq %rax, 0x430(%rsp)
leaq 0x942(%rsp), %rdi
movq %rdi, 0x438(%rsp)
callq 0x5490
movq 0x430(%rsp), %rdi
movq 0x438(%rsp), %rdx
leaq 0x21b2e(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xbf62
movq 0x428(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x9f0(%rsp), %rax
movq %rax, 0x410(%rsp)
movq %rax, 0x958(%rsp)
movl $0x40000000, 0x9f0(%rsp) # imm = 0x40000000
leaq 0x9f8(%rsp), %rax
movq %rax, 0x418(%rsp)
leaq 0x941(%rsp), %rdi
movq %rdi, 0x420(%rsp)
callq 0x5490
movq 0x418(%rsp), %rdi
movq 0x420(%rsp), %rdx
leaq 0x21abc(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xbfd4
movq 0x410(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xa20(%rsp), %rax
movq %rax, 0x3f8(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xa20(%rsp)
leaq 0xa28(%rsp), %rax
movq %rax, 0x400(%rsp)
leaq 0x940(%rsp), %rdi
movq %rdi, 0x408(%rsp)
callq 0x5490
movq 0x400(%rsp), %rdi
movq 0x408(%rsp), %rdx
leaq 0x22022(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc046
movq 0x3f8(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xa50(%rsp), %rax
movq %rax, 0x3e0(%rsp)
movq %rax, 0x958(%rsp)
movl $0x40133333, 0xa50(%rsp) # imm = 0x40133333
leaq 0xa58(%rsp), %rax
movq %rax, 0x3e8(%rsp)
leaq 0x93f(%rsp), %rdi
movq %rdi, 0x3f0(%rsp)
callq 0x5490
movq 0x3e8(%rsp), %rdi
movq 0x3f0(%rsp), %rdx
leaq 0x219d8(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc0b8
movq 0x3e0(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xa80(%rsp), %rax
movq %rax, 0x3c8(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xa80(%rsp)
leaq 0xa88(%rsp), %rax
movq %rax, 0x3d0(%rsp)
leaq 0x93e(%rsp), %rdi
movq %rdi, 0x3d8(%rsp)
callq 0x5490
movq 0x3d0(%rsp), %rdi
movq 0x3d8(%rsp), %rdx
leaq 0x21f3e(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc12a
movq 0x3c8(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xab0(%rsp), %rax
movq %rax, 0x3b0(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xab0(%rsp)
leaq 0xab8(%rsp), %rax
movq %rax, 0x3b8(%rsp)
leaq 0x93d(%rsp), %rdi
movq %rdi, 0x3c0(%rsp)
callq 0x5490
movq 0x3b8(%rsp), %rdi
movq 0x3c0(%rsp), %rdx
leaq 0x21ecc(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc19c
movq 0x3b0(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xae0(%rsp), %rax
movq %rax, 0x398(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xae0(%rsp)
leaq 0xae8(%rsp), %rax
movq %rax, 0x3a0(%rsp)
leaq 0x93c(%rsp), %rdi
movq %rdi, 0x3a8(%rsp)
callq 0x5490
movq 0x3a0(%rsp), %rdi
movq 0x3a8(%rsp), %rdx
leaq 0x21e5a(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc20e
movq 0x398(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xb10(%rsp), %rax
movq %rax, 0x380(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xb10(%rsp)
leaq 0xb18(%rsp), %rax
movq %rax, 0x388(%rsp)
leaq 0x93b(%rsp), %rdi
movq %rdi, 0x390(%rsp)
callq 0x5490
movq 0x388(%rsp), %rdi
movq 0x390(%rsp), %rdx
leaq 0x21de8(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc280
movq 0x380(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xb40(%rsp), %rax
movq %rax, 0x368(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xb40(%rsp)
leaq 0xb48(%rsp), %rax
movq %rax, 0x370(%rsp)
leaq 0x93a(%rsp), %rdi
movq %rdi, 0x378(%rsp)
callq 0x5490
movq 0x370(%rsp), %rdi
movq 0x378(%rsp), %rdx
leaq 0x21d76(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc2f2
movq 0x368(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0xb70(%rsp), %rax
movq %rax, 0x350(%rsp)
movq %rax, 0x958(%rsp)
movl $0x0, 0xb70(%rsp)
leaq 0xb78(%rsp), %rax
movq %rax, 0x358(%rsp)
leaq 0x939(%rsp), %rdi
movq %rdi, 0x360(%rsp)
callq 0x5490
movq 0x358(%rsp), %rdi
movq 0x360(%rsp), %rdx
leaq 0x21d04(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc364
movq 0x350(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x960(%rsp), %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, 0x958(%rsp)
leaq 0x960(%rsp), %rcx
addq $0x270, %rcx            # imm = 0x270
movq %rcx, 0x340(%rsp)
movq %rax, 0x348(%rsp)
movq 0x348(%rsp), %rdi
movq %rdi, 0x338(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, (%rdi)
addq $0x8, %rdi
callq 0x53e0
movq 0x338(%rsp), %rax
movq 0x340(%rsp), %rcx
movb $0x0, 0x28(%rax)
addq $0x30, %rax
movq %rax, 0x958(%rsp)
cmpq %rcx, %rax
movq %rax, 0x348(%rsp)
jne 0xc3a5
movb $0x0, 0x938(%rsp)
leaq 0x939(%rsp), %rdi
callq 0x5310
leaq 0x93a(%rsp), %rdi
callq 0x5310
leaq 0x93b(%rsp), %rdi
callq 0x5310
leaq 0x93c(%rsp), %rdi
callq 0x5310
leaq 0x93d(%rsp), %rdi
callq 0x5310
leaq 0x93e(%rsp), %rdi
callq 0x5310
leaq 0x93f(%rsp), %rdi
callq 0x5310
leaq 0x940(%rsp), %rdi
callq 0x5310
leaq 0x941(%rsp), %rdi
callq 0x5310
leaq 0x942(%rsp), %rdi
callq 0x5310
leaq 0x943(%rsp), %rdi
callq 0x5310
leaq 0x957(%rsp), %rdi
callq 0x5310
leaq 0xbd0(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x91f(%rsp), %rdi
movq %rdi, 0x330(%rsp)
callq 0x200e0
movq 0x328(%rsp), %rdx
movq 0x330(%rsp), %rcx
leaq 0x920(%rsp), %rdi
leaq 0x960(%rsp), %rsi
callq 0x20540
jmp 0xc4e2
leaq 0x7be87(%rip), %rdi     # 0x88370
xorl %eax, %eax
movl %eax, %esi
callq 0x205d0
movq %rax, %rdi
leaq 0x920(%rsp), %rsi
movq %rsi, 0x310(%rsp)
callq 0x205f0
movq 0x310(%rsp), %rdi
callq 0x20210
leaq 0x91f(%rsp), %rdi
callq 0x20270
movb $0x1, 0x68b(%rsp)
leaq 0x6a0(%rsp), %rax
movq %rax, 0x698(%rsp)
movl $0x40000000, 0x6a0(%rsp) # imm = 0x40000000
leaq 0x6a8(%rsp), %rax
movq %rax, 0x318(%rsp)
leaq 0x697(%rsp), %rdi
movq %rdi, 0x320(%rsp)
callq 0x5490
movq 0x318(%rsp), %rdi
movq 0x320(%rsp), %rdx
leaq 0x21506(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc58a
movb $0x0, 0x6c8(%rsp)
leaq 0x6d0(%rsp), %rax
movq %rax, 0x2f8(%rsp)
movq %rax, 0x698(%rsp)
movl $0x40400000, 0x6d0(%rsp) # imm = 0x40400000
leaq 0x6d8(%rsp), %rax
movq %rax, 0x300(%rsp)
leaq 0x696(%rsp), %rdi
movq %rdi, 0x308(%rsp)
callq 0x5490
movq 0x300(%rsp), %rdi
movq 0x308(%rsp), %rdx
leaq 0x21498(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc5f8
movq 0x2f8(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x700(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq %rax, 0x698(%rsp)
movl $0x40600000, 0x700(%rsp) # imm = 0x40600000
leaq 0x708(%rsp), %rax
movq %rax, 0x2e8(%rsp)
leaq 0x695(%rsp), %rdi
movq %rdi, 0x2f0(%rsp)
callq 0x5490
movq 0x2e8(%rsp), %rdi
movq 0x2f0(%rsp), %rdx
leaq 0x21426(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc66a
movq 0x2e0(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x730(%rsp), %rax
movq %rax, 0x2c8(%rsp)
movq %rax, 0x698(%rsp)
movl $0x40400000, 0x730(%rsp) # imm = 0x40400000
leaq 0x738(%rsp), %rax
movq %rax, 0x2d0(%rsp)
leaq 0x694(%rsp), %rdi
movq %rdi, 0x2d8(%rsp)
callq 0x5490
movq 0x2d0(%rsp), %rdi
movq 0x2d8(%rsp), %rdx
leaq 0x213b4(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc6dc
movq 0x2c8(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x760(%rsp), %rax
movq %rax, 0x2b0(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x760(%rsp)
leaq 0x768(%rsp), %rax
movq %rax, 0x2b8(%rsp)
leaq 0x693(%rsp), %rdi
movq %rdi, 0x2c0(%rsp)
callq 0x5490
movq 0x2b8(%rsp), %rdi
movq 0x2c0(%rsp), %rdx
leaq 0x2191a(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc74e
movq 0x2b0(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x790(%rsp), %rax
movq %rax, 0x298(%rsp)
movq %rax, 0x698(%rsp)
movl $0x40533333, 0x790(%rsp) # imm = 0x40533333
leaq 0x798(%rsp), %rax
movq %rax, 0x2a0(%rsp)
leaq 0x692(%rsp), %rdi
movq %rdi, 0x2a8(%rsp)
callq 0x5490
movq 0x2a0(%rsp), %rdi
movq 0x2a8(%rsp), %rdx
leaq 0x212d0(%rip), %rsi     # 0x2da89
callq 0x53d0
jmp 0xc7c0
movq 0x298(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x7c0(%rsp), %rax
movq %rax, 0x280(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x7c0(%rsp)
leaq 0x7c8(%rsp), %rax
movq %rax, 0x288(%rsp)
leaq 0x691(%rsp), %rdi
movq %rdi, 0x290(%rsp)
callq 0x5490
movq 0x288(%rsp), %rdi
movq 0x290(%rsp), %rdx
leaq 0x21836(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc832
movq 0x280(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x7f0(%rsp), %rax
movq %rax, 0x268(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x7f0(%rsp)
leaq 0x7f8(%rsp), %rax
movq %rax, 0x270(%rsp)
leaq 0x690(%rsp), %rdi
movq %rdi, 0x278(%rsp)
callq 0x5490
movq 0x270(%rsp), %rdi
movq 0x278(%rsp), %rdx
leaq 0x217c4(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc8a4
movq 0x268(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x820(%rsp), %rax
movq %rax, 0x250(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x820(%rsp)
leaq 0x828(%rsp), %rax
movq %rax, 0x258(%rsp)
leaq 0x68f(%rsp), %rdi
movq %rdi, 0x260(%rsp)
callq 0x5490
movq 0x258(%rsp), %rdi
movq 0x260(%rsp), %rdx
leaq 0x21752(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc916
movq 0x250(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x850(%rsp), %rax
movq %rax, 0x238(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x850(%rsp)
leaq 0x858(%rsp), %rax
movq %rax, 0x240(%rsp)
leaq 0x68e(%rsp), %rdi
movq %rdi, 0x248(%rsp)
callq 0x5490
movq 0x240(%rsp), %rdi
movq 0x248(%rsp), %rdx
leaq 0x216e0(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc988
movq 0x238(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x880(%rsp), %rax
movq %rax, 0x220(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x880(%rsp)
leaq 0x888(%rsp), %rax
movq %rax, 0x228(%rsp)
leaq 0x68d(%rsp), %rdi
movq %rdi, 0x230(%rsp)
callq 0x5490
movq 0x228(%rsp), %rdi
movq 0x230(%rsp), %rdx
leaq 0x2166e(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xc9fa
movq 0x220(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x8b0(%rsp), %rax
movq %rax, 0x208(%rsp)
movq %rax, 0x698(%rsp)
movl $0x0, 0x8b0(%rsp)
leaq 0x8b8(%rsp), %rax
movq %rax, 0x210(%rsp)
leaq 0x68c(%rsp), %rdi
movq %rdi, 0x218(%rsp)
callq 0x5490
movq 0x210(%rsp), %rdi
movq 0x218(%rsp), %rdx
leaq 0x215fc(%rip), %rsi     # 0x2e061
callq 0x53d0
jmp 0xca6c
movq 0x208(%rsp), %rax
movb $0x0, 0x28(%rax)
leaq 0x6a0(%rsp), %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, 0x698(%rsp)
leaq 0x6a0(%rsp), %rcx
addq $0x270, %rcx            # imm = 0x270
movq %rcx, 0x1f8(%rsp)
movq %rax, 0x200(%rsp)
movq 0x200(%rsp), %rdi
movq %rdi, 0x1f0(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, (%rdi)
addq $0x8, %rdi
callq 0x53e0
movq 0x1f0(%rsp), %rax
movq 0x1f8(%rsp), %rcx
movb $0x0, 0x28(%rax)
addq $0x30, %rax
movq %rax, 0x698(%rsp)
cmpq %rcx, %rax
movq %rax, 0x200(%rsp)
jne 0xcaad
movb $0x0, 0x68b(%rsp)
leaq 0x68c(%rsp), %rdi
callq 0x5310
leaq 0x68d(%rsp), %rdi
callq 0x5310
leaq 0x68e(%rsp), %rdi
callq 0x5310
leaq 0x68f(%rsp), %rdi
callq 0x5310
leaq 0x690(%rsp), %rdi
callq 0x5310
leaq 0x691(%rsp), %rdi
callq 0x5310
leaq 0x692(%rsp), %rdi
callq 0x5310
leaq 0x693(%rsp), %rdi
callq 0x5310
leaq 0x694(%rsp), %rdi
callq 0x5310
leaq 0x695(%rsp), %rdi
callq 0x5310
leaq 0x696(%rsp), %rdi
callq 0x5310
leaq 0x697(%rsp), %rdi
callq 0x5310
leaq 0x910(%rsp), %rax
movq %rax, 0x1e0(%rsp)
leaq 0x66f(%rsp), %rdi
movq %rdi, 0x1e8(%rsp)
callq 0x200e0
movq 0x1e0(%rsp), %rdx
movq 0x1e8(%rsp), %rcx
leaq 0x670(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
callq 0x20540
jmp 0xcbea
leaq 0x7b797(%rip), %rdi     # 0x88388
xorl %eax, %eax
movl %eax, %esi
callq 0x205d0
movq %rax, %rdi
leaq 0x670(%rsp), %rsi
callq 0x205f0
leaq 0x670(%rsp), %rdi
callq 0x20210
leaq 0x66f(%rsp), %rdi
callq 0x20270
movl $0x1, 0x668(%rsp)
cmpl $0x8, 0x668(%rsp)
jge 0xee74
movl $0x150, %edi            # imm = 0x150
callq 0x52c0
movq %rax, 0x1d8(%rsp)
jmp 0xcc51
movq 0x1d8(%rsp), %rdi
xorl %esi, %esi
movl $0x150, %edx            # imm = 0x150
callq 0x51c0
movq 0x1d8(%rsp), %rdi
callq 0x20440
movq 0x1d8(%rsp), %rax
movq %rax, 0x660(%rsp)
movq 0x660(%rsp), %rax
movb $0x0, 0x45(%rax)
movq 0x660(%rsp), %rax
movb $0x0, 0x46(%rax)
movq 0x660(%rsp), %rax
movb $0x0, 0x49(%rax)
movq 0x660(%rsp), %rax
movb $0x0, 0x47(%rax)
movq 0x660(%rsp), %rax
movb $0x0, 0x48(%rax)
movl 0x668(%rsp), %ecx
movq 0x660(%rsp), %rax
movl %ecx, (%rax)
movq 0x660(%rsp), %rax
movb $0x0, 0x44(%rax)
movq 0x660(%rsp), %rax
movl $0x0, 0x40(%rax)
callq 0x50b0
movl $0x3, %ecx
cltd
idivl %ecx
movl %edx, 0x65c(%rsp)
cmpl $0x7, 0x668(%rsp)
jne 0xd1c1
movl $0x2, 0x65c(%rsp)
jmp 0xd1f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xcec9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xcebc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xceaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xcea2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xce47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x939(%rsp), %rdi
callq 0x5310
leaq 0x93a(%rsp), %rdi
callq 0x5310
leaq 0x93b(%rsp), %rdi
callq 0x5310
leaq 0x93c(%rsp), %rdi
callq 0x5310
leaq 0x93d(%rsp), %rdi
callq 0x5310
leaq 0x93e(%rsp), %rdi
callq 0x5310
leaq 0x93f(%rsp), %rdi
callq 0x5310
leaq 0x940(%rsp), %rdi
callq 0x5310
leaq 0x941(%rsp), %rdi
callq 0x5310
leaq 0x942(%rsp), %rdi
callq 0x5310
leaq 0x943(%rsp), %rdi
callq 0x5310
leaq 0x957(%rsp), %rdi
callq 0x5310
testb $0x1, 0x938(%rsp)
jne 0xcee2
jmp 0xcf37
movq 0x958(%rsp), %rax
leaq 0x960(%rsp), %rcx
cmpq %rax, %rcx
movq %rax, 0x1d0(%rsp)
je 0xcf35
movq 0x1d0(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, 0x1c8(%rsp)
callq 0x200c0
movq 0x1c8(%rsp), %rax
leaq 0x960(%rsp), %rcx
cmpq %rcx, %rax
movq %rax, 0x1d0(%rsp)
jne 0xceff
jmp 0xcf37
jmp 0xef7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x91f(%rsp), %rdi
callq 0x20270
jmp 0xef3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd10f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd102
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd0a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd09a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xd08d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x68c(%rsp), %rdi
callq 0x5310
leaq 0x68d(%rsp), %rdi
callq 0x5310
leaq 0x68e(%rsp), %rdi
callq 0x5310
leaq 0x68f(%rsp), %rdi
callq 0x5310
leaq 0x690(%rsp), %rdi
callq 0x5310
leaq 0x691(%rsp), %rdi
callq 0x5310
leaq 0x692(%rsp), %rdi
callq 0x5310
leaq 0x693(%rsp), %rdi
callq 0x5310
leaq 0x694(%rsp), %rdi
callq 0x5310
leaq 0x695(%rsp), %rdi
callq 0x5310
leaq 0x696(%rsp), %rdi
callq 0x5310
leaq 0x697(%rsp), %rdi
callq 0x5310
testb $0x1, 0x68b(%rsp)
jne 0xd128
jmp 0xd17d
movq 0x698(%rsp), %rax
leaq 0x6a0(%rsp), %rcx
cmpq %rax, %rcx
movq %rax, 0x1c0(%rsp)
je 0xd17b
movq 0x1c0(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, 0x1b8(%rsp)
callq 0x200c0
movq 0x1b8(%rsp), %rax
leaq 0x6a0(%rsp), %rcx
cmpq %rcx, %rax
movq %rax, 0x1c0(%rsp)
jne 0xd145
jmp 0xd17d
jmp 0xef3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x66f(%rsp), %rdi
callq 0x20270
jmp 0xeefa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xeefa
cmpl $0x6, 0x668(%rsp)
jne 0xd1d8
movl $0x1, 0x65c(%rsp)
jmp 0xd1ef
cmpl $0x5, 0x668(%rsp)
jne 0xd1ed
movl $0x0, 0x65c(%rsp)
jmp 0xd1ef
jmp 0xd1f1
leaq 0x638(%rsp), %rdi
callq 0x91f0
jmp 0xd200
movq 0x660(%rsp), %rdi
addq $0xb0, %rdi
leaq 0x638(%rsp), %rsi
callq 0x5370
leaq 0x638(%rsp), %rdi
callq 0x54f8
jmp 0xd22b
movb $0x1, 0x637(%rsp)
movl $0x1, 0x630(%rsp)
movl 0x630(%rsp), %eax
cmpl 0x668(%rsp), %eax
jge 0xd304
movslq 0x630(%rsp), %rsi
leaq 0x7b1ff(%rip), %rdi     # 0x88460
callq 0x20650
movq (%rax), %rax
movsbl 0x24(%rax), %eax
movl %eax, 0x1ac(%rsp)
movq 0x660(%rsp), %rdi
addq $0xb0, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x54e0
movq %rax, 0x1b0(%rsp)
jmp 0xd296
movl 0x1ac(%rsp), %eax
movq 0x1b0(%rsp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jne 0xd2ec
movb $0x0, 0x637(%rsp)
leaq 0x610(%rsp), %rdi
callq 0x91f0
jmp 0xd2c3
movq 0x660(%rsp), %rdi
addq $0xb0, %rdi
leaq 0x610(%rsp), %rsi
callq 0x5370
leaq 0x610(%rsp), %rdi
callq 0x54f8
jmp 0xd2ee
movl 0x630(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x630(%rsp)
jmp 0xd23e
testb $0x1, 0x637(%rsp)
je 0xd310
jmp 0xd315
jmp 0xd229
leaq 0x5f0(%rsp), %rdi
callq 0x91f0
jmp 0xd324
movq 0x660(%rsp), %rdi
addq $0xd0, %rdi
leaq 0x5f0(%rsp), %rsi
movq %rsi, 0x1a0(%rsp)
callq 0x5370
movq 0x1a0(%rsp), %rdi
callq 0x54f8
movq 0x660(%rsp), %rsi
addq $0xb0, %rsi
leaq 0x2099b(%rip), %rdx     # 0x2dd06
leaq 0x5b0(%rsp), %rdi
callq 0x20670
jmp 0xd37a
movq 0x660(%rsp), %rdx
addq $0xd0, %rdx
leaq 0x5d0(%rsp), %rdi
leaq 0x5b0(%rsp), %rsi
callq 0x1fe80
jmp 0xd3a0
movq 0x660(%rsp), %rdi
addq $0xf0, %rdi
leaq 0x5d0(%rsp), %rsi
movq %rsi, 0x190(%rsp)
callq 0x5370
movq 0x190(%rsp), %rdi
callq 0x54f8
leaq 0x5b0(%rsp), %rdi
callq 0x54f8
movq 0x660(%rsp), %rdi
addq $0xf0, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x54e0
movq %rax, 0x198(%rsp)
jmp 0xd400
movq 0x198(%rsp), %rax
movb (%rax), %cl
movq 0x660(%rsp), %rax
movb %cl, 0x24(%rax)
cmpl $0x0, 0x65c(%rsp)
jne 0xd456
movq 0x660(%rsp), %rax
movl $0x5, 0x28(%rax)
jmp 0xd456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x5b0(%rsp), %rdi
callq 0x54f8
jmp 0xeefa
cmpl $0x1, 0x65c(%rsp)
jne 0xd46f
movq 0x660(%rsp), %rax
movl $0x6, 0x28(%rax)
cmpl $0x2, 0x65c(%rsp)
jne 0xd488
movq 0x660(%rsp), %rax
movl $0x3, 0x28(%rax)
movl 0x65c(%rsp), %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x38(%rax)
leaq 0x590(%rsp), %rdi
callq 0x53e0
leaq 0x570(%rsp), %rdi
callq 0x53e0
leaq 0x548(%rsp), %rdi
callq 0x91f0
jmp 0xd4c3
movq 0x660(%rsp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x548(%rsp), %rsi
movq %rsi, 0x180(%rsp)
callq 0x5370
movq 0x180(%rsp), %rdi
callq 0x54f8
movl 0x65c(%rsp), %eax
movl %eax, 0x18c(%rsp)
testl %eax, %eax
je 0xd548
jmp 0xd508
movl 0x18c(%rsp), %eax
subl $0x1, %eax
je 0xdd31
jmp 0xd51a
movl 0x18c(%rsp), %eax
subl $0x2, %eax
je 0xe5c6
jmp 0xed10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
jmp 0xee55
movq 0x660(%rsp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq 0x207aa(%rip), %rsi     # 0x2dd08
callq 0x53c0
jmp 0xd565
callq 0x50b0
movl $0x2, %ecx
cltd
idivl %ecx
addl $0x2, %edx
movq 0x660(%rsp), %rax
movl %edx, 0xc(%rax)
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x4(%rax)
callq 0x50b0
movl $0x2, %ecx
cltd
idivl %ecx
addl $0x1, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x8(%rax)
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x3, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x3c(%rax)
callq 0x50b0
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, 0x17c(%rsp)
movl 0x2dd91(%rip), %eax     # 0x3b37c
movl $0x3, %ecx
cltd
idivl %ecx
movl 0x17c(%rsp), %edx
addl $0x1, %eax
cmpl %eax, %edx
jge 0xd61e
callq 0x50b0
movl $0x14, %ecx
cltd
idivl %ecx
addl $0xa, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x20(%rax)
jmp 0xd62d
movq 0x660(%rsp), %rax
movl $0x0, 0x20(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0x178(%rsp)
je 0xd681
jmp 0xd660
movl 0x178(%rsp), %eax
decl %eax
subl $0x3, %eax
jb 0xd69e
jmp 0xd670
movl 0x178(%rsp), %eax
addl $-0x4, %eax
subl $0x3, %eax
jb 0xd6bb
jmp 0xd6d6
callq 0x50b0
movl $0x6, %ecx
cltd
idivl %ecx
addl $0x6, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xd6d6
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xd6d6
callq 0x50b0
movl $0x3, %ecx
cltd
idivl %ecx
addl $0x3, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
cmpl $0x2, %edx
jge 0xd735
callq 0x50b0
movl $0xa, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm1
movss 0x1f94f(%rip), %xmm0    # 0x2d050
divss %xmm0, %xmm1
movss 0x1f907(%rip), %xmm0    # 0x2d014
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1f91e(%rip), %xmm0    # 0x2d04c
movss %xmm0, 0x1c(%rax)
jmp 0xd780
callq 0x50b0
movl $0x12c, %ecx            # imm = 0x12C
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1f8f6(%rip), %xmm1    # 0x2d044
mulss %xmm1, %xmm0
movss 0x1f8ee(%rip), %xmm1    # 0x2d048
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1f8c5(%rip), %xmm0    # 0x2d040
movss %xmm0, 0x1c(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0x174(%rsp)
subl $0x2, %eax
jb 0xd7d8
jmp 0xd7b6
movl 0x174(%rsp), %eax
addl $-0x2, %eax
subl $0x3, %eax
jb 0xd804
jmp 0xd7c7
movl 0x174(%rsp), %eax
addl $-0x5, %eax
subl $0x2, %eax
jb 0xd824
jmp 0xd851
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1f837(%rip), %xmm1    # 0x2d028
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xd851
callq 0x6650
movss 0x1f803(%rip), %xmm1    # 0x2d014
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xd851
callq 0x6650
movaps %xmm0, %xmm1
movss 0x1f7e0(%rip), %xmm0    # 0x2d014
addss %xmm0, %xmm1
movss 0x1f7cc(%rip), %xmm0    # 0x2d00c
mulss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
callq 0x50b0
movl %eax, %edx
movslq %edx, %rax
imulq $-0x6db6db6d, %rax, %rax # imm = 0x92492493
shrq $0x20, %rax
addl %edx, %eax
movl %eax, %ecx
shrl $0x1f, %ecx
sarl $0x2, %eax
addl %ecx, %eax
movl %eax, %ecx
shll $0x3, %ecx
subl %ecx, %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x9(%rax,%rcx), %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x2c(%rax)
movq 0x660(%rsp), %rax
movl 0x2c(%rax), %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %eax
movl %eax, %ecx
shrl $0x1f, %ecx
addl %ecx, %eax
sarl %eax
movl %eax, 0x15c(%rsp)
callq 0x50b0
movl 0x15c(%rsp), %ecx
movslq %eax, %rdx
imulq $0x55555556, %rdx, %rsi # imm = 0x55555556
movq %rsi, %rdx
shrq $0x3f, %rdx
shrq $0x20, %rsi
addl %edx, %esi
movl %esi, %edx
leal (%rdx,%rdx,2), %edx
subl %edx, %eax
addl %eax, %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x30(%rax)
callq 0x50b0
movl %eax, %edx
movl %edx, %ecx
addl $0x3, %ecx
testl %edx, %edx
movl %edx, %eax
cmovsl %ecx, %eax
andl $-0x4, %eax
negl %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x6(%rax,%rcx), %eax
movq 0x660(%rsp), %rcx
movl 0x30(%rcx), %ecx
imull %ecx, %eax
movl %eax, 0x16c(%rsp)
callq 0x50b0
movq 0x660(%rsp), %rcx
movq %rcx, 0x160(%rsp)
movl 0x30(%rcx), %ecx
addl %ecx, %ecx
cltd
idivl %ecx
movq 0x160(%rsp), %rax
movl %edx, %ecx
movl 0x16c(%rsp), %edx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,4), %ecx
movl %ecx, 0x34(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $0x55555556, %rcx, %rdx # imm = 0x55555556
movq %rdx, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
movl %eax, 0x170(%rsp)
je 0xd99a
jmp 0xd97e
movl 0x170(%rsp), %eax
subl $0x1, %eax
je 0xd9b2
jmp 0xd98c
movl 0x170(%rsp), %eax
subl $0x2, %eax
je 0xd9ca
jmp 0xd9e2
leaq 0x20376(%rip), %rsi     # 0x2dd17
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xd9b0
jmp 0xd9e2
leaq 0x20195(%rip), %rsi     # 0x2db4e
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xd9c8
jmp 0xd9e2
leaq 0x20350(%rip), %rsi     # 0x2dd21
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xd9e0
jmp 0xd9e2
callq 0x50b0
movslq %eax, %rcx
imulq $0x55555556, %rcx, %rdx # imm = 0x55555556
movq %rdx, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
movl %eax, 0x158(%rsp)
je 0xda2c
jmp 0xda10
movl 0x158(%rsp), %eax
subl $0x1, %eax
je 0xda44
jmp 0xda1e
movl 0x158(%rsp), %eax
subl $0x2, %eax
je 0xda5c
jmp 0xda74
leaq 0x202e4(%rip), %rsi     # 0x2dd17
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xda42
jmp 0xda74
leaq 0x20103(%rip), %rsi     # 0x2db4e
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xda5a
jmp 0xda74
leaq 0x202c8(%rip), %rsi     # 0x2dd2b
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xda72
jmp 0xda74
movl $0x40e00000, 0x56c(%rsp) # imm = 0x40E00000
leaq 0xbd0(%rsp), %rax
movq %rax, 0x148(%rsp)
leaq 0x52f(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0x200e0
movq 0x148(%rsp), %rdx
movq 0x150(%rsp), %rcx
leaq 0x530(%rsp), %rdi
leaq 0x960(%rsp), %rsi
callq 0x20540
jmp 0xdacb
movslq 0x668(%rsp), %rsi
leaq 0x7a896(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
leaq 0x530(%rsp), %rsi
movq %rsi, 0x130(%rsp)
callq 0x205f0
movq 0x130(%rsp), %rdi
callq 0x20210
leaq 0x52f(%rsp), %rdi
callq 0x20270
leaq 0x910(%rsp), %rax
movq %rax, 0x138(%rsp)
leaq 0x50f(%rsp), %rdi
movq %rdi, 0x140(%rsp)
callq 0x200e0
movq 0x138(%rsp), %rdx
movq 0x140(%rsp), %rcx
leaq 0x510(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
callq 0x20540
jmp 0xdb5d
movslq 0x668(%rsp), %rsi
leaq 0x7a81c(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
leaq 0x510(%rsp), %rsi
callq 0x205f0
leaq 0x510(%rsp), %rdi
callq 0x20210
leaq 0x50f(%rsp), %rdi
callq 0x20270
movl $0x0, 0x508(%rsp)
cmpl $0xd, 0x508(%rsp)
jge 0xdd2c
movslq 0x668(%rsp), %rsi
leaq 0x7a7ad(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x508(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x590(%rsp), %rsi
callq 0x5040
jmp 0xdbee
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0x12c(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x7a761(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x508(%rsp), %rsi
callq 0x20630
movss 0x12c(%rsp), %xmm1
movss (%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movslq 0x668(%rsp), %rsi
leaq 0x7a740(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x508(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x570(%rsp), %rsi
callq 0x5040
jmp 0xdc73
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0x128(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x7a6f4(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x508(%rsp), %rsi
callq 0x20630
movss 0x128(%rsp), %xmm0
movss (%rax), %xmm1
movss 0x1f35a(%rip), %xmm2    # 0x2d018
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movl 0x508(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x508(%rsp)
jmp 0xdba6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x52f(%rsp), %rdi
callq 0x20270
jmp 0xee55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x50f(%rsp), %rdi
callq 0x20270
jmp 0xee55
jmp 0xed10
movq 0x660(%rsp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq 0x1ffef(%rip), %rsi     # 0x2dd36
callq 0x53c0
jmp 0xdd4e
callq 0x50b0
movl $0x6, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0xc(%rax)
callq 0x50b0
movl $0x6, %ecx
cltd
idivl %ecx
addl $0xa, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x4(%rax)
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x8(%rax)
callq 0x50b0
movl $0x8, %ecx
cltd
idivl %ecx
addl $0x6, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x3c(%rax)
callq 0x50b0
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, 0x124(%rsp)
movl 0x2d5a8(%rip), %eax     # 0x3b37c
subl $0x3, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl 0x124(%rsp), %edx
addl $0x2, %eax
cmpl %eax, %edx
jge 0xde0a
callq 0x50b0
movl $0x1e, %ecx
cltd
idivl %ecx
addl $0x14, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x20(%rax)
jmp 0xde19
movq 0x660(%rsp), %rax
movl $0x0, 0x20(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0x120(%rsp)
subl $0x3, %eax
jb 0xde6e
jmp 0xde4f
movl 0x120(%rsp), %eax
addl $-0x3, %eax
subl $0x3, %eax
jb 0xde8b
jmp 0xde60
movl 0x120(%rsp), %eax
subl $0x6, %eax
je 0xdea8
jmp 0xdec3
callq 0x50b0
movl $0x6, %ecx
cltd
idivl %ecx
addl $0x6, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xdec3
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xdec3
callq 0x50b0
movl $0x2, %ecx
cltd
idivl %ecx
addl $0x2, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
cmpl $0x3, %edx
jge 0xdf22
callq 0x50b0
movl $0x14, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1f14a(%rip), %xmm1    # 0x2d038
mulss %xmm1, %xmm0
movss 0x1f142(%rip), %xmm1    # 0x2d03c
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1f119(%rip), %xmm0    # 0x2d034
movss %xmm0, 0x1c(%rax)
jmp 0xdf6d
callq 0x50b0
movl $0xa, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1f0d1(%rip), %xmm1    # 0x2d00c
mulss %xmm1, %xmm0
movss 0x1f0e9(%rip), %xmm1    # 0x2d030
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1f0c4(%rip), %xmm0    # 0x2d02c
movss %xmm0, 0x1c(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0x11c(%rsp)
subl $0x3, %eax
jb 0xdfc5
jmp 0xdfa3
movl 0x11c(%rsp), %eax
addl $-0x3, %eax
subl $0x2, %eax
jb 0xdff1
jmp 0xdfb4
movl 0x11c(%rsp), %eax
addl $-0x5, %eax
subl $0x2, %eax
jb 0xe011
jmp 0xe03e
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1f04a(%rip), %xmm1    # 0x2d028
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xe03e
callq 0x6650
movss 0x1f016(%rip), %xmm1    # 0x2d014
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xe03e
callq 0x6650
movaps %xmm0, %xmm1
movss 0x1eff3(%rip), %xmm0    # 0x2d014
addss %xmm0, %xmm1
movss 0x1efdf(%rip), %xmm0    # 0x2d00c
mulss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
callq 0x50b0
movl %eax, %edx
movl %edx, %ecx
addl $0x3, %ecx
testl %edx, %edx
movl %edx, %eax
cmovsl %ecx, %eax
andl $-0x4, %eax
negl %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x8(%rax,%rcx), %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x2c(%rax)
callq 0x50b0
movl %eax, %ecx
movslq %ecx, %rax
imulq $0x66666667, %rax, %rdx # imm = 0x66666667
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x22, %rdx
addl %eax, %edx
addl %edx, %edx
movl %edx, %eax
leal (%rax,%rax,4), %edx
movl %ecx, %eax
negl %edx
movl %edx, %ecx
leal 0x5(%rax,%rcx), %eax
movq 0x660(%rsp), %rcx
movl 0x2c(%rcx), %ecx
imull %ecx, %eax
cltq
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x21, %rax
addl %ecx, %eax
movl %eax, 0xf8(%rsp)
callq 0x50b0
movl 0xf8(%rsp), %ecx
movl %eax, %esi
addl $0x3, %esi
testl %eax, %eax
movl %eax, %edx
cmovsl %esi, %edx
andl $-0x4, %edx
subl %edx, %eax
addl %eax, %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x30(%rax)
callq 0x50b0
movl %eax, %ecx
movslq %ecx, %rax
imulq $0x66666667, %rax, %rdx # imm = 0x66666667
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x21, %rdx
addl %eax, %edx
movl %edx, %eax
leal (%rax,%rax,4), %edx
movl %ecx, %eax
negl %edx
movl %edx, %ecx
leal 0x7(%rax,%rcx), %eax
movq 0x660(%rsp), %rcx
movl 0x30(%rcx), %ecx
imull %ecx, %eax
movl %eax, 0xfc(%rsp)
callq 0x50b0
movl 0xfc(%rsp), %ecx
movq 0x660(%rsp), %rdx
movq %rdx, 0x100(%rsp)
movl 0x30(%rdx), %esi
addl %esi, %esi
cltd
idivl %esi
movq 0x100(%rsp), %rax
addl %edx, %ecx
shll $0x2, %ecx
movl %ecx, 0x34(%rax)
leaq 0xbd0(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0x4ef(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0x200e0
movq 0x108(%rsp), %rdx
movq 0x110(%rsp), %rcx
leaq 0x4f0(%rsp), %rdi
leaq 0x960(%rsp), %rsi
callq 0x20540
jmp 0xe1af
movslq 0x668(%rsp), %rsi
leaq 0x7a1b2(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
leaq 0x4f0(%rsp), %rsi
movq %rsi, 0xe8(%rsp)
callq 0x205f0
movq 0xe8(%rsp), %rdi
callq 0x20210
leaq 0x4ef(%rsp), %rdi
callq 0x20270
callq 0x50b0
movslq %eax, %rcx
imulq $0x55555556, %rcx, %rdx # imm = 0x55555556
movq %rdx, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
movl %eax, 0xf4(%rsp)
je 0xe265
jmp 0xe223
movl 0xf4(%rsp), %eax
subl $0x1, %eax
je 0xe27d
jmp 0xe231
movl 0xf4(%rsp), %eax
subl $0x2, %eax
je 0xe295
jmp 0xe2ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x4ef(%rsp), %rdi
callq 0x20270
jmp 0xee55
leaq 0x1f81d(%rip), %rsi     # 0x2da89
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xe27b
jmp 0xe2ad
leaq 0x1fac8(%rip), %rsi     # 0x2dd4c
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xe293
jmp 0xe2ad
leaq 0x1f96a(%rip), %rsi     # 0x2dc06
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xe2ab
jmp 0xe2ad
callq 0x50b0
movl %eax, %edx
shrl $0x1f, %edx
movl %eax, %ecx
addl %edx, %ecx
andl $-0x2, %ecx
subl %ecx, %eax
movl %eax, 0xe4(%rsp)
je 0xe2d9
jmp 0xe2cb
movl 0xe4(%rsp), %eax
subl $0x1, %eax
je 0xe2f1
jmp 0xe309
leaq 0x1f92f(%rip), %rsi     # 0x2dc0f
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xe2ef
jmp 0xe309
leaq 0x2003d(%rip), %rsi     # 0x2e335
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xe307
jmp 0xe309
movl $0x41100000, 0x56c(%rsp) # imm = 0x41100000
leaq 0xbd0(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0x4cf(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0x200e0
movq 0xd0(%rsp), %rdx
movq 0xd8(%rsp), %rcx
leaq 0x4d0(%rsp), %rdi
leaq 0x960(%rsp), %rsi
callq 0x20540
jmp 0xe360
movslq 0x668(%rsp), %rsi
leaq 0x7a001(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
leaq 0x4d0(%rsp), %rsi
movq %rsi, 0xb8(%rsp)
callq 0x205f0
movq 0xb8(%rsp), %rdi
callq 0x20210
leaq 0x4cf(%rsp), %rdi
callq 0x20270
leaq 0x910(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0x4af(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x200e0
movq 0xc0(%rsp), %rdx
movq 0xc8(%rsp), %rcx
leaq 0x4b0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
callq 0x20540
jmp 0xe3f2
movslq 0x668(%rsp), %rsi
leaq 0x79f87(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
leaq 0x4b0(%rsp), %rsi
callq 0x205f0
leaq 0x4b0(%rsp), %rdi
callq 0x20210
leaq 0x4af(%rsp), %rdi
callq 0x20270
movl $0x0, 0x4a8(%rsp)
cmpl $0xd, 0x4a8(%rsp)
jge 0xe5c1
movslq 0x668(%rsp), %rsi
leaq 0x79f18(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x4a8(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x590(%rsp), %rsi
callq 0x5040
jmp 0xe483
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0xb4(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x79ecc(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x4a8(%rsp), %rsi
callq 0x20630
movss 0xb4(%rsp), %xmm1
movss (%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movslq 0x668(%rsp), %rsi
leaq 0x79eab(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x4a8(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x570(%rsp), %rsi
callq 0x5040
jmp 0xe508
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0xb0(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x79e5f(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x4a8(%rsp), %rsi
callq 0x20630
movss 0xb0(%rsp), %xmm0
movss (%rax), %xmm1
movss 0x1eac5(%rip), %xmm2    # 0x2d018
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movl 0x4a8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4a8(%rsp)
jmp 0xe43b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x4cf(%rsp), %rdi
callq 0x20270
jmp 0xee55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x4af(%rsp), %rdi
callq 0x20270
jmp 0xee55
jmp 0xed10
movq 0x660(%rsp), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq 0x1f77a(%rip), %rsi     # 0x2dd56
callq 0x53c0
jmp 0xe5e3
callq 0x50b0
movl $0x8, %ecx
cltd
idivl %ecx
addl $0x8, %edx
movq 0x660(%rsp), %rax
movl %edx, 0xc(%rax)
callq 0x50b0
movl $0xa, %ecx
cltd
idivl %ecx
addl $0x14, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x4(%rax)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
addl $0x5, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x8(%rax)
callq 0x50b0
movl $0x10, %ecx
cltd
idivl %ecx
addl $0x9, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x3c(%rax)
callq 0x50b0
movl $0xc, %ecx
cltd
idivl %ecx
movl %edx, 0xac(%rsp)
movl 0x2cd13(%rip), %eax     # 0x3b37c
movl $0x5, %ecx
cltd
idivl %ecx
movl 0xac(%rsp), %edx
addl $0x3, %eax
cmpl %eax, %edx
jge 0xe69c
callq 0x50b0
movl $0x1e, %ecx
cltd
idivl %ecx
addl $0x14, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x20(%rax)
jmp 0xe6ab
movq 0x660(%rsp), %rax
movl $0x0, 0x20(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0xa8(%rsp)
subl $0x4, %eax
jb 0xe700
jmp 0xe6e1
movl 0xa8(%rsp), %eax
addl $-0x4, %eax
subl $0x2, %eax
jb 0xe71d
jmp 0xe6f2
movl 0xa8(%rsp), %eax
subl $0x6, %eax
je 0xe73a
jmp 0xe755
callq 0x50b0
movl $0x6, %ecx
cltd
idivl %ecx
addl $0x6, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xe755
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
addl $0x4, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
jmp 0xe755
callq 0x50b0
movl $0x2, %ecx
cltd
idivl %ecx
addl $0x2, %edx
movq 0x660(%rsp), %rax
movl %edx, 0x10(%rax)
callq 0x50b0
movl $0x7, %ecx
cltd
idivl %ecx
cmpl $0x4, %edx
jge 0xe7b4
callq 0x50b0
movl $0xf, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1e88c(%rip), %xmm1    # 0x2d00c
mulss %xmm1, %xmm0
movss 0x1e898(%rip), %xmm1    # 0x2d024
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1e85f(%rip), %xmm0    # 0x2d00c
movss %xmm0, 0x1c(%rax)
jmp 0xe7ff
callq 0x50b0
movl $0x64, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1e84f(%rip), %xmm1    # 0x2d01c
mulss %xmm1, %xmm0
movss 0x1e847(%rip), %xmm1    # 0x2d020
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x18(%rax)
movq 0x660(%rsp), %rax
movss 0x1e81a(%rip), %xmm0    # 0x2d014
movss %xmm0, 0x1c(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $-0x6db6db6d, %rcx, %rcx # imm = 0x92492493
shrq $0x20, %rcx
addl %eax, %ecx
movl %ecx, %edx
shrl $0x1f, %edx
sarl $0x2, %ecx
addl %edx, %ecx
movl %ecx, %edx
shll $0x3, %edx
subl %edx, %ecx
addl %ecx, %eax
movl %eax, 0xa4(%rsp)
subl $0x2, %eax
jb 0xe857
jmp 0xe835
movl 0xa4(%rsp), %eax
addl $-0x2, %eax
subl $0x3, %eax
jb 0xe883
jmp 0xe846
movl 0xa4(%rsp), %eax
addl $-0x5, %eax
subl $0x2, %eax
jb 0xe8a3
jmp 0xe8d0
callq 0x50b0
movl $0x4, %ecx
cltd
idivl %ecx
cvtsi2ss %edx, %xmm0
movss 0x1e7b8(%rip), %xmm1    # 0x2d028
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xe8d0
callq 0x6650
movss 0x1e784(%rip), %xmm1    # 0x2d014
addss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
jmp 0xe8d0
callq 0x6650
movaps %xmm0, %xmm1
movss 0x1e761(%rip), %xmm0    # 0x2d014
addss %xmm0, %xmm1
movss 0x1e74d(%rip), %xmm0    # 0x2d00c
mulss %xmm1, %xmm0
movq 0x660(%rsp), %rax
movss %xmm0, 0x14(%rax)
callq 0x50b0
movl %eax, %ecx
movslq %ecx, %rax
imulq $0x55555556, %rax, %rdx # imm = 0x55555556
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x20, %rdx
addl %eax, %edx
movl %edx, %eax
leal (%rax,%rax,2), %edx
movl %ecx, %eax
negl %edx
movl %edx, %ecx
leal 0x6(%rax,%rcx), %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x2c(%rax)
movq 0x660(%rsp), %rax
movl 0x2c(%rax), %eax
movl %eax, 0x90(%rsp)
callq 0x50b0
movl 0x90(%rsp), %ecx
movslq %eax, %rdx
imulq $0x2aaaaaab, %rdx, %rsi # imm = 0x2AAAAAAB
movq %rsi, %rdx
shrq $0x3f, %rdx
shrq $0x20, %rsi
addl %edx, %esi
addl %esi, %esi
movl %esi, %edx
leal (%rdx,%rdx,2), %edx
subl %edx, %eax
addl %eax, %ecx
movq 0x660(%rsp), %rax
movl %ecx, 0x30(%rax)
callq 0x50b0
movl %eax, %edx
movl %edx, %ecx
addl $0x3, %ecx
testl %edx, %edx
movl %edx, %eax
cmovsl %ecx, %eax
andl $0x7ffffffc, %eax       # imm = 0x7FFFFFFC
negl %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x5(%rax,%rcx), %eax
movq 0x660(%rsp), %rcx
movl 0x30(%rcx), %ecx
imull %ecx, %eax
movl %eax, 0x94(%rsp)
callq 0x50b0
movl 0x94(%rsp), %ecx
movq 0x660(%rsp), %rdx
movq %rdx, 0x98(%rsp)
movl 0x30(%rdx), %esi
addl %esi, %esi
cltd
idivl %esi
movq 0x98(%rsp), %rax
addl %edx, %ecx
addl %ecx, %ecx
movl %ecx, 0x34(%rax)
callq 0x50b0
movslq %eax, %rcx
imulq $0x55555556, %rcx, %rdx # imm = 0x55555556
movq %rdx, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
movl %eax, 0xa0(%rsp)
je 0xea07
jmp 0xe9eb
movl 0xa0(%rsp), %eax
subl $0x1, %eax
je 0xea1f
jmp 0xe9f9
movl 0xa0(%rsp), %eax
subl $0x2, %eax
je 0xea37
jmp 0xea4f
leaq 0x1f2e6(%rip), %rsi     # 0x2dcf4
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xea1d
jmp 0xea4f
leaq 0x1f33e(%rip), %rsi     # 0x2dd64
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xea35
jmp 0xea4f
leaq 0x1f32f(%rip), %rsi     # 0x2dd6d
leaq 0x590(%rsp), %rdi
callq 0x53c0
jmp 0xea4d
jmp 0xea4f
callq 0x50b0
xorl %eax, %eax
testb %al, %al
jne 0xea74
jmp 0xea5c
leaq 0x1f29a(%rip), %rsi     # 0x2dcfd
leaq 0x570(%rsp), %rdi
callq 0x53c0
jmp 0xea72
jmp 0xea74
movl $0x41380000, 0x56c(%rsp) # imm = 0x41380000
leaq 0xbd0(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x48f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x200e0
movq 0x80(%rsp), %rdx
movq 0x88(%rsp), %rcx
leaq 0x490(%rsp), %rdi
leaq 0x960(%rsp), %rsi
callq 0x20540
jmp 0xeacb
movslq 0x668(%rsp), %rsi
leaq 0x79896(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
leaq 0x490(%rsp), %rsi
movq %rsi, 0x68(%rsp)
callq 0x205f0
movq 0x68(%rsp), %rdi
callq 0x20210
leaq 0x48f(%rsp), %rdi
callq 0x20270
leaq 0x910(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x46f(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x200e0
movq 0x70(%rsp), %rdx
movq 0x78(%rsp), %rcx
leaq 0x470(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
callq 0x20540
jmp 0xeb4b
movslq 0x668(%rsp), %rsi
leaq 0x7982e(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
leaq 0x470(%rsp), %rsi
callq 0x205f0
leaq 0x470(%rsp), %rdi
callq 0x20210
leaq 0x46f(%rsp), %rdi
callq 0x20270
movl $0x0, 0x468(%rsp)
cmpl $0xd, 0x468(%rsp)
jge 0xed0e
movslq 0x668(%rsp), %rsi
leaq 0x797bf(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x468(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x590(%rsp), %rsi
callq 0x5040
jmp 0xebdc
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0x64(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x79776(%rip), %rdi     # 0x88370
callq 0x205d0
movq %rax, %rdi
movslq 0x468(%rsp), %rsi
callq 0x20630
movss 0x64(%rsp), %xmm1
movss (%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movslq 0x668(%rsp), %rsi
leaq 0x79758(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x468(%rsp), %rsi
callq 0x20630
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x570(%rsp), %rsi
callq 0x5040
jmp 0xec5b
movss 0x56c(%rsp), %xmm0
movss %xmm0, 0x60(%rsp)
movslq 0x668(%rsp), %rsi
leaq 0x7970f(%rip), %rdi     # 0x88388
callq 0x205d0
movq %rax, %rdi
movslq 0x468(%rsp), %rsi
callq 0x20630
movss 0x60(%rsp), %xmm0
movss (%rax), %xmm1
movss 0x1e378(%rip), %xmm2    # 0x2d018
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movl 0x468(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x468(%rsp)
jmp 0xeb94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x48f(%rsp), %rdi
callq 0x20270
jmp 0xee55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x948(%rsp)
movl %eax, 0x944(%rsp)
leaq 0x46f(%rsp), %rdi
callq 0x20270
jmp 0xee55
jmp 0xed10
movl 0x2c666(%rip), %eax     # 0x3b37c
subl $0x5, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x660(%rsp), %rax
addl 0x2c(%rax), %ecx
movl %ecx, 0x2c(%rax)
movl 0x2c645(%rip), %eax     # 0x3b37c
subl $0x5, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x660(%rsp), %rax
addl 0x30(%rax), %ecx
movl %ecx, 0x30(%rax)
movl 0x2c624(%rip), %eax     # 0x3b37c
subl $0x5, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x660(%rsp), %rax
addl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movl 0x2c603(%rip), %eax     # 0x3b37c
subl $0x5, %eax
cvtsi2ss %eax, %xmm1
movss 0x1e2c8(%rip), %xmm0    # 0x2d050
divss %xmm0, %xmm1
movq 0x660(%rsp), %rax
movss 0x18(%rax), %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0x18(%rax)
movl 0x2c5d4(%rip), %eax     # 0x3b37c
subl $0x5, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x660(%rsp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl 0x2c5b3(%rip), %eax     # 0x3b37c
subl $0x5, %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq 0x660(%rsp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
callq 0x50b0
movl $0xa, %ecx
cltd
idivl %ecx
cmpl 0x2c585(%rip), %edx     # 0x3b37c
jle 0xee0f
movl 0x2c57d(%rip), %ecx     # 0x3b37c
shll %ecx
movq 0x660(%rsp), %rax
addl 0x20(%rax), %ecx
movl %ecx, 0x20(%rax)
leaq 0x7964a(%rip), %rdi     # 0x88460
leaq 0x660(%rsp), %rsi
callq 0x204d0
jmp 0xee25
leaq 0x570(%rsp), %rdi
callq 0x54f8
leaq 0x590(%rsp), %rdi
callq 0x54f8
movl 0x668(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x668(%rsp)
jmp 0xcc2f
leaq 0x570(%rsp), %rdi
callq 0x54f8
leaq 0x590(%rsp), %rdi
callq 0x54f8
jmp 0xeefa
leaq 0x6a0(%rsp), %rax
movq %rax, 0x50(%rsp)
addq $0x270, %rax            # imm = 0x270
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, 0x48(%rsp)
callq 0x200c0
movq 0x50(%rsp), %rcx
movq 0x48(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x58(%rsp)
jne 0xee8c
leaq 0x960(%rsp), %rax
movq %rax, 0x38(%rsp)
addq $0x270, %rax            # imm = 0x270
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, 0x30(%rsp)
callq 0x200c0
movq 0x38(%rsp), %rcx
movq 0x30(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x40(%rsp)
jne 0xeecb
addq $0xbd8, %rsp            # imm = 0xBD8
retq
leaq 0x6a0(%rsp), %rax
movq %rax, 0x20(%rsp)
addq $0x270, %rax            # imm = 0x270
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, 0x18(%rsp)
callq 0x200c0
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x28(%rsp)
jne 0xef12
jmp 0xef3b
leaq 0x960(%rsp), %rax
movq %rax, 0x8(%rsp)
addq $0x270, %rax            # imm = 0x270
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
addq $-0x30, %rdi
movq %rdi, (%rsp)
callq 0x200c0
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
movq %rax, 0x10(%rsp)
jne 0xef53
jmp 0xef7a
movq 0x948(%rsp), %rdi
callq 0x5480
nopw (%rax,%rax)