// File: Finsenty54[P]fast_collision/block0.cpp
// Function: find_block0(unsigned int*, unsigned int const*)
void find_block0(uint32 block[], const uint32 IV[])
{
	//初始化
	uint32 Q[68] = { IV[0], IV[3], IV[2], IV[1] };

	std::vector<uint32> q4mask(1<<4); //1<<4 = 16
	for (unsigned k = 0; k < q4mask.size(); ++k)
		q4mask[k] = ((k<<2) ^ (k<<26)) & 0x38000004;  //^ 异或 & 与
		//0011 1000 0000 0000 0000 0000 0000 0100

	std::vector<uint32> q9q10mask(1<<3);
	for (unsigned k = 0; k < q9q10mask.size(); ++k)
		q9q10mask[k] = ((k<<13) ^ (k<<4)) & 0x2060;
		
	std::vector<uint32> q9mask(1<<16);
	for (unsigned k = 0; k < q9mask.size(); ++k)
		q9mask[k] = ((k<<1) ^ (k<<2) ^ (k<<5) ^ (k<<7) ^ (k<<8) ^ (k<<10) ^ (k<<11) ^ (k<<13)) & 0x0eb94f16;

	while (true)
	{
		//Qoff =3 , 随机赋值
		//Q68 , 那么 Q4‘ == Q1 实际上从Q1开始算
		Q[Qoff + 1] = xrng64();
		Q[Qoff + 3] = (xrng64() & 0xfe87bc3f) | 0x017841c0;
		//1111 1110 1000 0111 1011 1100 0011 1111  为0处的值都改为0，为1处的值都不变
		//0000 0001 0111 1000 0100 0001 1100 0000  都变为1，其他值不变
		//满足新的差分路径条件
		Q[Qoff + 4] = (xrng64() & 0x44000033) | 0x000002c0 | (Q[Qoff + 3] & 0x0287bc00);
		Q[Qoff + 5] = 0x41ffffc8 | (Q[Qoff + 4] & 0x04000033);
		Q[Qoff + 6] = 0xb84b82d6;
		//1011 1000 0100 1011 1000 0010 1101 0110 
		Q[Qoff + 7] = (xrng64() & 0x68000084) | 0x02401b43;
		Q[Qoff + 8] = (xrng64() & 0x2b8f6e04) | 0x005090d3 | (~Q[Qoff + 7] & 0x40000000);
		Q[Qoff + 9] = 0x20040068 | (Q[Qoff + 8] & 0x00020000) | (~Q[Qoff + 8] & 0x40000000);
		Q[Qoff + 10] = (xrng64() & 0x40000000) | 0x1040b089;
		Q[Qoff + 11] = (xrng64() & 0x10408008) | 0x0fbb7f16 | (~Q[Qoff + 10] & 0x40000000);
		Q[Qoff + 12] = (xrng64() & 0x1ed9df7f) | 0x00022080 | (~Q[Qoff + 11] & 0x40200000);
		Q[Qoff + 13] = (xrng64() & 0x5efb4f77) | 0x20049008;
		Q[Qoff + 14] = (xrng64() & 0x1fff5f77) | 0x0000a088 | (~Q[Qoff + 13] & 0x40000000);
		Q[Qoff + 15] = (xrng64() & 0x5efe7ff7) | 0x80008000 | (~Q[Qoff + 14] & 0x00010000);
		Q[Qoff + 16] = (xrng64() & 0x1ffdffff) | 0xa0000000 | (~Q[Qoff + 15] & 0x40020000);

		//已经赋值给 block[]
		MD5_REVERSE_STEP(0, 0xd76aa478, 7); //(t,ac,rc);q1-q0; result = m0
		MD5_REVERSE_STEP(6, 0xa8304613, 17); //result = m6
		MD5_REVERSE_STEP(7, 0xfd469501, 22); //m7
		MD5_REVERSE_STEP(11, 0x895cd7be, 22); //m11
		MD5_REVERSE_STEP(14, 0xa679438e, 17); //m14
		MD5_REVERSE_STEP(15, 0x49b40821, 22); //m15

		//没有加 m1
		const uint32 tt1 = FF(Q[Qoff + 1], Q[Qoff + 0], Q[Qoff - 1]) + Q[Qoff - 2] + 0xe8c7b756;	
		//没有加 m1
		const uint32 tt17 = GG(Q[Qoff + 16], Q[Qoff + 15], Q[Qoff + 14]) + Q[Qoff + 13] + 0xf61e2562;
		const uint32 tt18 = Q[Qoff + 14] + 0xc040b340 + block[6];
		const uint32 tt19 = Q[Qoff + 15] + 0x265e5a51 + block[11];
		const uint32 tt20 = Q[Qoff + 16] + 0xe9b6c7aa + block[0];
		const uint32 tt5 = RR(Q[Qoff + 6] - Q[Qoff + 5], 12) - FF(Q[Qoff + 5], Q[Qoff + 4], Q[Qoff + 3]) - 0x4787c62a;

		// change q17 until conditions are met on q18, q19 and q20
		unsigned counter = 0;
		// 失败查找128次
		while (counter < (1 << 7)) //七个条件
		{
			const uint32 q16 = Q[Qoff + 16];
			uint32 q17 = ((xrng64() & 0x3ffd7ff7) | (q16&0xc0008008)) ^ 0x40000000;
			++counter;

			uint32 q18 = GG(q17, q16, Q[Qoff + 15]) + tt18;
			//得到q18值
			q18 = RL(q18, 9); q18 += q17;
			if (0x00020000 != ((q18^q17)&0xa0020000)) //1010 0000 0000 00010 ...
				//这里的条件涉及backward
				//如果不相同，也就是条件不满足，就要重新计算
				//q18有三个条件
				continue;

			uint32 q19 = GG(q18, q17, q16) + tt19;
			q19 = RL(q19, 14); q19 += q18;
			if (0x80000000 != (q19 & 0x80020000))
				continue;
			
			uint32 q20 = GG(q19, q18, q17) + tt20;
			q20 = RL(q20, 20); q20 += q19;
			if (0x00040000 != ((q20^q19) & 0x80040000))
				continue;
			
			//计算得到m1
			block[1] = q17-q16; block[1] = RR(block[1], 5); block[1] -= tt17;

			//计算得到q2
			uint32 q2 = block[1] + tt1; q2 = RL(q2, 12); q2 += Q[Qoff + 1];

			//计算得到m5
			block[5] = tt5 - q2;

			Q[Qoff + 2] = q2; // q2刚开始没有算
			Q[Qoff + 17] = q17;
			Q[Qoff + 18] = q18;
			Q[Qoff + 19] = q19;
			Q[Qoff + 20] = q20;

			//计算m2
			MD5_REVERSE_STEP(2, 0x242070db, 17);

			counter = 0;
			break;
		}

		//counter不为0，失败，重新选择q1,q3,...,q16
		if (counter != 0)
			continue;

		const uint32 q4 = Q[Qoff + 4];
		const uint32 q9backup = Q[Qoff + 9];
		const uint32 tt21 = GG(Q[Qoff+20], Q[Qoff+19], Q[Qoff+18]) + Q[Qoff+17] + 0xd62f105d;

		// iterate over possible changes of q4 
		// 迭代q4的所有可能值
		// while keeping all conditions on q1-q20 intact
		// 但q1-q20的充分条件全部都保持，通过改变消息值 使得成立
		// this changes m3, m4, m5 and m7
		// 如果是klima的tunnel的话，m5应该不会变
		unsigned counter2 = 0;
		while (counter2 < (1<<4))
		{
			//tunnel??
			//有些值是要满足的，是要不变的
			Q[Qoff+4] = q4 ^ q4mask[counter2];
			++counter2;

			// 计算得到m5
			MD5_REVERSE_STEP(5, 0x4787c62a, 12);

			// 计算得到q21
			uint32 q21 = tt21 + block[5];
			q21 = RL(q21,5); q21 += Q[Qoff+20];
			if (0 != ((q21^Q[Qoff+20]) & 0x80020000))
				continue;

			Q[Qoff + 21] = q21;

			//q4 变了，计算出m3,m4,m7
			// q4 tunnel:q4-q8，不会影响q6,q7的等式,只要q6=0,q7=1
			// q4,q5,q8的等式，通过改变消息而使的等式仍然成立
			MD5_REVERSE_STEP(3, 0xc1bdceee, 22);
			MD5_REVERSE_STEP(4, 0xf57c0faf, 7);
			MD5_REVERSE_STEP(7, 0xfd469501, 22);
			
			const uint32 tt22 = GG(Q[Qoff + 21], Q[Qoff + 20], Q[Qoff + 19]) + Q[Qoff + 18] + 0x02441453;
			const uint32 tt23 = Q[Qoff + 19] + 0xd8a1e681 + block[15];
			const uint32 tt24 = Q[Qoff + 20] + 0xe7d3fbc8 + block[4];

			const uint32 tt9 = Q[Qoff + 6] + 0x8b44f7af;
			const uint32 tt10 = Q[Qoff + 7] + 0xffff5bb1;
			const uint32 tt8 = FF(Q[Qoff + 8], Q[Qoff + 7], Q[Qoff + 6]) + Q[Qoff + 5] + 0x698098d8;		
			const uint32 tt12 = RR(Q[Qoff+13]-Q[Qoff+12],7) - 0x6b901122;
			const uint32 tt13 = RR(Q[Qoff+14]-Q[Qoff+13],12) - FF(Q[Qoff+13],Q[Qoff+12],Q[Qoff+11]) - 0xfd987193;

			// iterate over possible changes of q9 and q10
			// 迭代q9,q10的所有可能值
			// while keeping conditions on q1-q21 intact
			// 保持q1-q21的条件不变
			// this changes m8, m9, m10, m12 and m13 (and not m11!)
			// the possible changes of q9 that also do not change m10 are used below
			for (unsigned counter3 = 0; counter3 < (1<<3);)
			{
				uint32 q10 = Q[Qoff+10] ^ (q9q10mask[counter3] & 0x60);
				Q[Qoff + 9] = q9backup ^ (q9q10mask[counter3] & 0x2000);
				++counter3;

				//计算得到m10
				uint32 m10 = RR(Q[Qoff+11]-q10,17);
				m10 -= FF(q10, Q[Qoff+9], Q[Qoff+8]) + tt10;

				//计算得到q22
				uint32 aa = Q[Qoff + 21];
				uint32 dd = tt22+m10; dd = RL(dd, 9) + aa;
				if (0x80000000 != (dd & 0x80000000)) continue; //这里有问题
				//0x00000000!=(dd & 0x80000000)

				//计算得到q23
				uint32 bb = Q[Qoff + 20];
				uint32 cc = tt23 + GG(dd, aa, bb); 
				if (0 != (cc & 0x20000)) continue;
				cc = RL(cc, 14) + dd;
				if (0 != (cc & 0x80000000)) continue;

				//计算得到q24
				bb = tt24 + GG(cc, dd, aa); bb = RL(bb, 20) + cc;
				//q24_32=1
				if (0 == (bb & 0x80000000)) continue;

				block[10] = m10;
				//计算新的m13
				block[13] = tt13 - q10;

				//其他消息没有在前几轮产生影响，所以没事，不用计算，下一个tunnel还是要改变的


				// iterate over possible changes of q9
				// while keeping intact conditions on q1-q24
				// this changes m8, m9 and m12 (but not m10!)
				for (unsigned counter4 = 0; counter4 < (1<<16); ++counter4)
				{
					//这里计算出 8，9，12
					uint32 q9 = Q[Qoff + 9] ^ q9mask[counter4];
					block[12] = tt12 - FF(Q[Qoff + 12], Q[Qoff + 11], q10) - q9;
					uint32 m8 = q9 - Q[Qoff + 8];
					block[8] = RR(m8, 7) - tt8; 
					uint32 m9 = q10 - q9;
					block[9] = RR(m9, 12) - FF(q9, Q[Qoff + 8], Q[Qoff + 7]) - tt9; 

					//aa=21,bb=24,cc=23,dd=22
					uint32 a = aa, b = bb, c = cc, d = dd;
					// get 25
					MD5_STEP(GG, a, b, c, d, block[9], 0x21e1cde6, 5); 
					MD5_STEP(GG, d, a, b, c, block[14], 0xc33707d6, 9);
					MD5_STEP(GG, c, d, a, b, block[3], 0xf4d50d87, 14);
					MD5_STEP(GG, b, c, d, a, block[8], 0x455a14ed, 20);
					MD5_STEP(GG, a, b, c, d, block[13], 0xa9e3e905, 5);
					MD5_STEP(GG, d, a, b, c, block[2], 0xfcefa3f8, 9);
					MD5_STEP(GG, c, d, a, b, block[7], 0x676f02d9, 14);
					MD5_STEP(GG, b, c, d, a, block[12], 0x8d2a4c8a, 20);
					MD5_STEP(HH, a, b, c, d, block[5], 0xfffa3942, 4);
					// get 34
					MD5_STEP(HH, d, a, b, c, block[8], 0x8771f681, 11);
					
					//测试q35是否满足条件，根据lila05
					c += HH(d, a, b) + block[11] + 0x6d9d6122;
					if (0 != (c & (1 << 15))) 
						continue;
					c = (c<<16 | c>>16) + d;
					
					MD5_STEP(HH, b, c, d, a, block[14], 0xfde5380c, 23);
					MD5_STEP(HH, a, b, c, d, block[1], 0xa4beea44, 4);
					MD5_STEP(HH, d, a, b, c, block[4], 0x4bdecfa9, 11);
					MD5_STEP(HH, c, d, a, b, block[7], 0xf6bb4b60, 16);
					MD5_STEP(HH, b, c, d, a, block[10], 0xbebfbc70, 23);
					MD5_STEP(HH, a, b, c, d, block[13], 0x289b7ec6, 4);
					MD5_STEP(HH, d, a, b, c, block[0], 0xeaa127fa, 11);
					MD5_STEP(HH, c, d, a, b, block[3], 0xd4ef3085, 16);
					MD5_STEP(HH, b, c, d, a, block[6], 0x04881d05, 23);
					MD5_STEP(HH, a, b, c, d, block[9], 0xd9d4d039, 4);
					MD5_STEP(HH, d, a, b, c, block[12], 0xe6db99e5, 11);
					MD5_STEP(HH, c, d, a, b, block[15], 0x1fa27cf8, 16);

					//get q48
					MD5_STEP(HH, b, c, d, a, block[2], 0xc4ac5665, 23);
					if (0 != ((b^d) & 0x80000000))
						continue;

					MD5_STEP(II, a, b, c, d, block[0], 0xf4292244, 6);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, d, a, b, c, block[7], 0x432aff97, 10);
					if (0 == ((b^d) >> 31)) continue;
					MD5_STEP(II, c, d, a, b, block[14], 0xab9423a7, 15);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, b, c, d, a, block[5], 0xfc93a039, 21);
					if (0 != ((b^d) >> 31)) continue;
					MD5_STEP(II, a, b, c, d, block[12], 0x655b59c3, 6);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, d, a, b, c, block[3], 0x8f0ccc92, 10);
					if (0 != ((b^d) >> 31)) continue;
					MD5_STEP(II, c, d, a, b, block[10], 0xffeff47d, 15);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, b, c, d, a, block[1], 0x85845dd1, 21);
					if (0 != ((b^d) >> 31)) continue;
					MD5_STEP(II, a, b, c, d, block[8], 0x6fa87e4f, 6);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, d, a, b, c, block[15], 0xfe2ce6e0, 10);
					if (0 != ((b^d) >> 31)) continue;
					MD5_STEP(II, c, d, a, b, block[6], 0xa3014314, 15);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, b, c, d, a, block[13], 0x4e0811a1, 21);
					if (0 == ((b^d) >> 31)) continue;
					MD5_STEP(II, a, b, c, d, block[4], 0xf7537e82, 6);
					if (0 != ((a^c) >> 31)) continue;
					MD5_STEP(II, d, a, b, c, block[11], 0xbd3af235, 10);
					if (0 != ((b^d) >> 31)) continue;
					MD5_STEP(II, c, d, a, b, block[2], 0x2ad7d2bb, 15);
					if (0 != ((a^c) >> 31)) continue;
					// get q64
					MD5_STEP(II, b, c, d, a, block[9], 0xeb86d391, 21);

					uint32 IHV1 = b + IV[1];
					uint32 IHV2 = c + IV[2];
					uint32 IHV3 = d + IV[3];

					bool wang = true;
					if (0x02000000 != ((IHV2^IHV1) & 0x86000000)) wang = false;
					if (0 != ((IHV1^IHV3) & 0x82000000)) wang = false;
					if (0 != (IHV1 & 0x06000020)) wang = false;
					
					bool stevens = true;
					if ( ((IHV1^IHV2)>>31)!=0 || ((IHV1^IHV3)>>31)!= 0 ) stevens = false;
					if ( (IHV3&(1<<25))!=0 || (IHV2&(1<<25))!=0 || (IHV1&(1<<25))!=0 
						|| ((IHV2^IHV1)&1)!=0) stevens = false;
										
					if (!(wang || stevens)) continue;

					std::cout << "." << std::flush;

					uint32 IV1[4], IV2[4];
					for (int t = 0; t < 4; ++t)
						IV2[t] = IV1[t] = IV[t];

					uint32 block2[16];
					for (int t = 0; t < 16; ++t)
						block2[t] = block[t];
					block2[4] += 1<<31;
					block2[11] += 1<<15;
					block2[14] += 1<<31;

					md5_compress(IV1, block);
					md5_compress(IV2, block2);
					if (	   (IV2[0] == IV1[0] + (1<<31))
							&& (IV2[1] == IV1[1] + (1<<31) + (1<<25))
							&& (IV2[2] == IV1[2] + (1<<31) + (1<<25))
							&& (IV2[3] == IV1[3] + (1<<31) + (1<<25)))
						return;

					if (IV2[0] != IV1[0] + (1<<31))
						std::cout << "!" << std::flush;
				}
			}
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4f0, %rsp            # imm = 0x4F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x120(%rbp), %rdi
xorl %esi, %esi
movl $0x110, %edx            # imm = 0x110
callq 0x1090
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x120(%rbp)
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x11c(%rbp)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x118(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x114(%rbp)
leaq -0x139(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0x4400
movq -0x2d0(%rbp), %rdx
leaq -0x138(%rbp), %rdi
movl $0x10, %esi
callq 0x4420
jmp 0x1ba6
leaq -0x139(%rbp), %rdi
callq 0x4490
movl $0x0, -0x150(%rbp)
movl -0x150(%rbp), %eax
movq %rax, -0x2d8(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x44b0
movq %rax, %rcx
movq -0x2d8(%rbp), %rax
cmpq %rcx, %rax
jae 0x1c53
movl -0x150(%rbp), %eax
shll $0x2, %eax
movl -0x150(%rbp), %ecx
shll $0x1a, %ecx
xorl %ecx, %eax
andl $0x38000004, %eax       # imm = 0x38000004
movl %eax, -0x2dc(%rbp)
movl -0x150(%rbp), %eax
movl %eax, %esi
leaq -0x138(%rbp), %rdi
callq 0x44d0
movl -0x2dc(%rbp), %ecx
movl %ecx, (%rax)
movl -0x150(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x150(%rbp)
jmp 0x1bbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x139(%rbp), %rdi
callq 0x4490
jmp 0x43e9
leaq -0x169(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x4400
movq -0x2e8(%rbp), %rdx
leaq -0x168(%rbp), %rdi
movl $0x8, %esi
callq 0x4420
jmp 0x1c80
leaq -0x169(%rbp), %rdi
callq 0x4490
movl $0x0, -0x170(%rbp)
movl -0x170(%rbp), %eax
movq %rax, -0x2f0(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x44b0
movq %rax, %rcx
movq -0x2f0(%rbp), %rax
cmpq %rcx, %rax
jae 0x1d2d
movl -0x170(%rbp), %eax
shll $0xd, %eax
movl -0x170(%rbp), %ecx
shll $0x4, %ecx
xorl %ecx, %eax
andl $0x2060, %eax           # imm = 0x2060
movl %eax, -0x2f4(%rbp)
movl -0x170(%rbp), %eax
movl %eax, %esi
leaq -0x168(%rbp), %rdi
callq 0x44d0
movl -0x2f4(%rbp), %ecx
movl %ecx, (%rax)
movl -0x170(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x170(%rbp)
jmp 0x1c96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x169(%rbp), %rdi
callq 0x4490
jmp 0x43dd
leaq -0x189(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x4400
movq -0x300(%rbp), %rdx
leaq -0x188(%rbp), %rdi
movl $0x10000, %esi          # imm = 0x10000
callq 0x4420
jmp 0x1d5a
leaq -0x189(%rbp), %rdi
callq 0x4490
movl $0x0, -0x190(%rbp)
movl -0x190(%rbp), %eax
movq %rax, -0x308(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x44b0
movq %rax, %rcx
movq -0x308(%rbp), %rax
cmpq %rcx, %rax
jae 0x1e4f
movl -0x190(%rbp), %eax
shll %eax
movl -0x190(%rbp), %ecx
shll $0x2, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0x5, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0x7, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0x8, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0xa, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0xb, %ecx
xorl %ecx, %eax
movl -0x190(%rbp), %ecx
shll $0xd, %ecx
xorl %ecx, %eax
andl $0xeb94f16, %eax        # imm = 0xEB94F16
movl %eax, -0x30c(%rbp)
movl -0x190(%rbp), %eax
movl %eax, %esi
leaq -0x188(%rbp), %rdi
callq 0x44d0
movl -0x30c(%rbp), %ecx
movl %ecx, (%rax)
movl -0x190(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x190(%rbp)
jmp 0x1d70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x189(%rbp), %rdi
callq 0x4490
jmp 0x43d1
jmp 0x1e51
jmp 0x1e53
callq 0x44f0
movl %eax, -0x310(%rbp)
jmp 0x1e60
movl -0x310(%rbp), %eax
movl %eax, -0x110(%rbp)
callq 0x44f0
movl %eax, -0x314(%rbp)
jmp 0x1e79
movl -0x314(%rbp), %eax
andl $0xfe87bc3f, %eax       # imm = 0xFE87BC3F
orl $0x17841c0, %eax        # imm = 0x17841C0
movl %eax, -0x108(%rbp)
callq 0x44f0
movl %eax, -0x318(%rbp)
jmp 0x1e9c
movl -0x318(%rbp), %edx
andl $0x44000033, %edx       # imm = 0x44000033
movl -0x108(%rbp), %eax
andl $0x287bc00, %eax        # imm = 0x287BC00
movl %eax, %ecx
movl %edx, %eax
leal 0x2c0(%rax,%rcx), %eax
movl %eax, -0x104(%rbp)
movl -0x104(%rbp), %eax
andl $0x4000033, %eax        # imm = 0x4000033
orl $0x41ffffc8, %eax       # imm = 0x41FFFFC8
movl %eax, -0x100(%rbp)
movl $0xb84b82d6, -0xfc(%rbp) # imm = 0xB84B82D6
callq 0x44f0
movl %eax, -0x31c(%rbp)
jmp 0x1ef1
movl -0x31c(%rbp), %eax
andl $0x68000084, %eax       # imm = 0x68000084
orl $0x2401b43, %eax        # imm = 0x2401B43
movl %eax, -0xf8(%rbp)
callq 0x44f0
movl %eax, -0x320(%rbp)
jmp 0x1f14
movl -0x320(%rbp), %ecx
andl $0x2b8f6e04, %ecx       # imm = 0x2B8F6E04
movl -0xf8(%rbp), %edx
notl %edx
andl $0x40000000, %edx       # imm = 0x40000000
movl %ecx, %eax
movl %edx, %ecx
leal 0x5090d3(%rax,%rcx), %eax
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %eax
andl $0x40020000, %eax       # imm = 0x40020000
xorl $0x40000000, %eax       # imm = 0x40000000
orl $0x20040068, %eax       # imm = 0x20040068
movl %eax, -0xf0(%rbp)
callq 0x44f0
movl %eax, -0x324(%rbp)
jmp 0x1f67
movl -0x324(%rbp), %eax
andl $0x40000000, %eax       # imm = 0x40000000
orl $0x1040b089, %eax       # imm = 0x1040B089
movl %eax, -0xec(%rbp)
callq 0x44f0
movl %eax, -0x328(%rbp)
jmp 0x1f8a
movl -0x328(%rbp), %ecx
andl $0x10408008, %ecx       # imm = 0x10408008
movl -0xec(%rbp), %edx
notl %edx
andl $0x40000000, %edx       # imm = 0x40000000
movl %ecx, %eax
movl %edx, %ecx
leal 0xfbb7f16(%rax,%rcx), %eax
movl %eax, -0xe8(%rbp)
callq 0x44f0
movl %eax, -0x32c(%rbp)
jmp 0x1fc2
movl -0x32c(%rbp), %ecx
andl $0x1ed9df7f, %ecx       # imm = 0x1ED9DF7F
movl -0xe8(%rbp), %edx
notl %edx
andl $0x40200000, %edx       # imm = 0x40200000
movl %ecx, %eax
movl %edx, %ecx
leal 0x22080(%rax,%rcx), %eax
movl %eax, -0xe4(%rbp)
callq 0x44f0
movl %eax, -0x330(%rbp)
jmp 0x1ffa
movl -0x330(%rbp), %eax
andl $0x5efb4f77, %eax       # imm = 0x5EFB4F77
orl $0x20049008, %eax       # imm = 0x20049008
movl %eax, -0xe0(%rbp)
callq 0x44f0
movl %eax, -0x334(%rbp)
jmp 0x201d
movl -0x334(%rbp), %ecx
andl $0x1fff5f77, %ecx       # imm = 0x1FFF5F77
movl -0xe0(%rbp), %edx
notl %edx
andl $0x40000000, %edx       # imm = 0x40000000
movl %ecx, %eax
movl %edx, %ecx
leal 0xa088(%rax,%rcx), %eax
movl %eax, -0xdc(%rbp)
callq 0x44f0
movl %eax, -0x338(%rbp)
jmp 0x2055
movl -0x338(%rbp), %ecx
andl $0x5efe7ff7, %ecx       # imm = 0x5EFE7FF7
movl -0xdc(%rbp), %edx
notl %edx
andl $0x10000, %edx          # imm = 0x10000
movl %ecx, %eax
movl %edx, %ecx
leal -0x7fff8000(%rax,%rcx), %eax
movl %eax, -0xd8(%rbp)
callq 0x44f0
movl %eax, -0x33c(%rbp)
jmp 0x208d
movl -0x33c(%rbp), %ecx
andl $0x1ffdffff, %ecx       # imm = 0x1FFDFFFF
movl -0xd8(%rbp), %edx
notl %edx
andl $0x40020000, %edx       # imm = 0x40020000
movl %ecx, %eax
movl %edx, %ecx
leal -0x60000000(%rax,%rcx), %eax
movl %eax, -0xd4(%rbp)
movl -0x114(%rbp), %eax
movl -0x110(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movl (%rax), %edi
movl $0x7, %esi
callq 0x4540
movl %eax, -0x340(%rbp)
jmp 0x20e4
movl -0x114(%rbp), %edi
movl -0x11c(%rbp), %edx
movl -0x118(%rbp), %esi
callq 0x4570
movl %eax, -0x344(%rbp)
jmp 0x2103
movl -0x344(%rbp), %eax
movl -0x340(%rbp), %ecx
subl %eax, %ecx
movl -0x120(%rbp), %eax
subl %eax, %ecx
addl $0x28955b88, %ecx       # imm = 0x28955B88
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movl -0xfc(%rbp), %eax
movl -0xf8(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x8(%rbp), %rax
movl 0x18(%rax), %edi
movl $0x11, %esi
callq 0x4540
movl %eax, -0x348(%rbp)
jmp 0x2153
movl -0xfc(%rbp), %edi
movl -0x104(%rbp), %edx
movl -0x100(%rbp), %esi
callq 0x4570
movl %eax, -0x34c(%rbp)
jmp 0x2172
movl -0x34c(%rbp), %eax
movl -0x348(%rbp), %ecx
subl %eax, %ecx
movl -0x108(%rbp), %eax
subl %eax, %ecx
addl $0x57cfb9ed, %ecx       # imm = 0x57CFB9ED
movq -0x8(%rbp), %rax
movl %ecx, 0x18(%rax)
movl -0xf8(%rbp), %eax
movl -0xf4(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %edi
movl $0x16, %esi
callq 0x4540
movl %eax, -0x350(%rbp)
jmp 0x21c3
movl -0xf8(%rbp), %edi
movl -0x100(%rbp), %edx
movl -0xfc(%rbp), %esi
callq 0x4570
movl %eax, -0x354(%rbp)
jmp 0x21e2
movl -0x354(%rbp), %eax
movl -0x350(%rbp), %ecx
subl %eax, %ecx
movl -0x104(%rbp), %eax
subl %eax, %ecx
addl $0x2b96aff, %ecx        # imm = 0x2B96AFF
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
movl -0xe8(%rbp), %eax
movl -0xe4(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x2c(%rax)
movq -0x8(%rbp), %rax
movl 0x2c(%rax), %edi
movl $0x16, %esi
callq 0x4540
movl %eax, -0x358(%rbp)
jmp 0x2233
movl -0xe8(%rbp), %edi
movl -0xf0(%rbp), %edx
movl -0xec(%rbp), %esi
callq 0x4570
movl %eax, -0x35c(%rbp)
jmp 0x2252
movl -0x35c(%rbp), %eax
movl -0x358(%rbp), %ecx
subl %eax, %ecx
movl -0xf4(%rbp), %eax
subl %eax, %ecx
addl $0x76a32842, %ecx       # imm = 0x76A32842
movq -0x8(%rbp), %rax
movl %ecx, 0x2c(%rax)
movl -0xdc(%rbp), %eax
movl -0xd8(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x38(%rax)
movq -0x8(%rbp), %rax
movl 0x38(%rax), %edi
movl $0x11, %esi
callq 0x4540
movl %eax, -0x360(%rbp)
jmp 0x22a3
movl -0xdc(%rbp), %edi
movl -0xe4(%rbp), %edx
movl -0xe0(%rbp), %esi
callq 0x4570
movl %eax, -0x364(%rbp)
jmp 0x22c2
movl -0x364(%rbp), %eax
movl -0x360(%rbp), %ecx
subl %eax, %ecx
movl -0xe8(%rbp), %eax
subl %eax, %ecx
addl $0x5986bc72, %ecx       # imm = 0x5986BC72
movq -0x8(%rbp), %rax
movl %ecx, 0x38(%rax)
movl -0xd8(%rbp), %eax
movl -0xd4(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %edi
movl $0x16, %esi
callq 0x4540
movl %eax, -0x368(%rbp)
jmp 0x2313
movl -0xd8(%rbp), %edi
movl -0xe0(%rbp), %edx
movl -0xdc(%rbp), %esi
callq 0x4570
movl %eax, -0x36c(%rbp)
jmp 0x2332
movl -0x36c(%rbp), %eax
movl -0x368(%rbp), %ecx
subl %eax, %ecx
movl -0xe4(%rbp), %eax
subl %eax, %ecx
addl $0xb64bf7df, %ecx       # imm = 0xB64BF7DF
movq -0x8(%rbp), %rax
movl %ecx, 0x3c(%rax)
movl -0x110(%rbp), %edi
movl -0x118(%rbp), %edx
movl -0x114(%rbp), %esi
callq 0x4570
movl %eax, -0x370(%rbp)
jmp 0x2374
movl -0x370(%rbp), %edx
movl -0x11c(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal -0x173848aa(%rax,%rcx), %eax
movl %eax, -0x194(%rbp)
movl -0xd4(%rbp), %edi
movl -0xdc(%rbp), %edx
movl -0xd8(%rbp), %esi
callq 0x4590
movl %eax, -0x374(%rbp)
jmp 0x23b0
movl -0x374(%rbp), %edx
movl -0xe0(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal -0x9e1da9e(%rax,%rcx), %eax
movl %eax, -0x198(%rbp)
movl -0xdc(%rbp), %ecx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x3fbf4cc0(%rax,%rcx), %eax
movl %eax, -0x19c(%rbp)
movl -0xd8(%rbp), %ecx
movq -0x8(%rbp), %rax
movl 0x2c(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal 0x265e5a51(%rax,%rcx), %eax
movl %eax, -0x1a0(%rbp)
movl -0xd4(%rbp), %ecx
movq -0x8(%rbp), %rax
movl (%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x16493856(%rax,%rcx), %eax
movl %eax, -0x1a4(%rbp)
movl -0x100(%rbp), %eax
movl -0xfc(%rbp), %edi
subl %eax, %edi
movl $0xc, %esi
callq 0x4540
movl %eax, -0x378(%rbp)
jmp 0x2446
movl -0x100(%rbp), %edi
movl -0x108(%rbp), %edx
movl -0x104(%rbp), %esi
callq 0x4570
movl %eax, -0x37c(%rbp)
jmp 0x2465
movl -0x37c(%rbp), %ecx
movl -0x378(%rbp), %eax
subl %ecx, %eax
subl $0x4787c62a, %eax       # imm = 0x4787C62A
movl %eax, -0x1a8(%rbp)
movl $0x0, -0x1ac(%rbp)
cmpl $0x80, -0x1ac(%rbp)
jae 0x27fe
movl -0xd4(%rbp), %eax
movl %eax, -0x1b0(%rbp)
callq 0x44f0
movl %eax, -0x380(%rbp)
jmp 0x24b1
movl -0x380(%rbp), %eax
andl $0x3ffd7ff7, %eax       # imm = 0x3FFD7FF7
movl -0x1b0(%rbp), %ecx
andl $0xc0008008, %ecx       # imm = 0xC0008008
orl %ecx, %eax
xorl $0x40000000, %eax       # imm = 0x40000000
movl %eax, -0x1b4(%rbp)
movl -0x1ac(%rbp), %eax
incl %eax
movl %eax, -0x1ac(%rbp)
movl -0x1b4(%rbp), %edi
movl -0x1b0(%rbp), %esi
movl -0xd8(%rbp), %edx
callq 0x4590
movl %eax, -0x384(%rbp)
jmp 0x2502
movl -0x384(%rbp), %eax
movl -0x19c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1b8(%rbp)
movl -0x1b8(%rbp), %edi
movl $0x9, %esi
callq 0x45b0
movl %eax, -0x388(%rbp)
jmp 0x252e
movl -0x388(%rbp), %eax
movl %eax, -0x1b8(%rbp)
movl -0x1b4(%rbp), %eax
addl -0x1b8(%rbp), %eax
movl %eax, -0x1b8(%rbp)
movl -0x1b8(%rbp), %ecx
xorl -0x1b4(%rbp), %ecx
andl $0xa0020000, %ecx       # imm = 0xA0020000
movl $0x20000, %eax          # imm = 0x20000
cmpl %ecx, %eax
je 0x258f
jmp 0x2488
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x148(%rbp)
movl %eax, -0x14c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4620
jmp 0x43d1
movl -0x1b8(%rbp), %edi
movl -0x1b4(%rbp), %esi
movl -0x1b0(%rbp), %edx
callq 0x4590
movl %eax, -0x38c(%rbp)
jmp 0x25ae
movl -0x38c(%rbp), %eax
movl -0x1a0(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1bc(%rbp)
movl -0x1bc(%rbp), %edi
movl $0xe, %esi
callq 0x45b0
movl %eax, -0x390(%rbp)
jmp 0x25da
movl -0x390(%rbp), %eax
movl %eax, -0x1bc(%rbp)
movl -0x1b8(%rbp), %eax
addl -0x1bc(%rbp), %eax
movl %eax, -0x1bc(%rbp)
movl -0x1bc(%rbp), %ecx
andl $0x80020000, %ecx       # imm = 0x80020000
movl $0x80000000, %eax       # imm = 0x80000000
cmpl %ecx, %eax
je 0x2612
jmp 0x2488
movl -0x1bc(%rbp), %edi
movl -0x1b8(%rbp), %esi
movl -0x1b4(%rbp), %edx
callq 0x4590
movl %eax, -0x394(%rbp)
jmp 0x2631
movl -0x394(%rbp), %eax
movl -0x1a4(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1c0(%rbp)
movl -0x1c0(%rbp), %edi
movl $0x14, %esi
callq 0x45b0
movl %eax, -0x398(%rbp)
jmp 0x265d
movl -0x398(%rbp), %eax
movl %eax, -0x1c0(%rbp)
movl -0x1bc(%rbp), %eax
addl -0x1c0(%rbp), %eax
movl %eax, -0x1c0(%rbp)
movl -0x1c0(%rbp), %ecx
xorl -0x1bc(%rbp), %ecx
andl $0x80040000, %ecx       # imm = 0x80040000
movl $0x40000, %eax          # imm = 0x40000
cmpl %ecx, %eax
je 0x269b
jmp 0x2488
movl -0x1b4(%rbp), %ecx
movl -0x1b0(%rbp), %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %edi
movl $0x5, %esi
callq 0x4540
movl %eax, -0x39c(%rbp)
jmp 0x26c9
movl -0x39c(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x4(%rax)
movl -0x198(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x4(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl -0x194(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1c4(%rbp)
movl -0x1c4(%rbp), %edi
movl $0xc, %esi
callq 0x45b0
movl %eax, -0x3a0(%rbp)
jmp 0x2715
movl -0x3a0(%rbp), %eax
movl %eax, -0x1c4(%rbp)
movl -0x110(%rbp), %ecx
movl -0x1c4(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x1c4(%rbp)
movl -0x1a8(%rbp), %ecx
movl -0x1c4(%rbp), %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
movl -0x1c4(%rbp), %eax
movl %eax, -0x10c(%rbp)
movl -0x1b4(%rbp), %eax
movl %eax, -0xd0(%rbp)
movl -0x1b8(%rbp), %eax
movl %eax, -0xcc(%rbp)
movl -0x1bc(%rbp), %eax
movl %eax, -0xc8(%rbp)
movl -0x1c0(%rbp), %eax
movl %eax, -0xc4(%rbp)
movl -0x10c(%rbp), %eax
movl -0x108(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edi
movl $0x11, %esi
callq 0x4540
movl %eax, -0x3a4(%rbp)
jmp 0x27b4
movl -0x10c(%rbp), %edi
movl -0x114(%rbp), %edx
movl -0x110(%rbp), %esi
callq 0x4570
movl %eax, -0x3a8(%rbp)
jmp 0x27d3
movl -0x3a8(%rbp), %eax
movl -0x3a4(%rbp), %ecx
subl %eax, %ecx
subl -0x118(%rbp), %ecx
subl $0x242070db, %ecx       # imm = 0x242070DB
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
movl $0x0, -0x1ac(%rbp)
cmpl $0x0, -0x1ac(%rbp)
je 0x280c
jmp 0x1e51
movl -0x104(%rbp), %eax
movl %eax, -0x1c8(%rbp)
movl -0xf0(%rbp), %eax
movl %eax, -0x1cc(%rbp)
movl -0xc4(%rbp), %edi
movl -0xcc(%rbp), %edx
movl -0xc8(%rbp), %esi
callq 0x4590
movl %eax, -0x3ac(%rbp)
jmp 0x2843
movl -0x3ac(%rbp), %eax
addl -0xd0(%rbp), %eax
addl $0xd62f105d, %eax       # imm = 0xD62F105D
movl %eax, -0x1d0(%rbp)
movl $0x0, -0x1d4(%rbp)
cmpl $0x10, -0x1d4(%rbp)
jae 0x43cc
movl -0x1c8(%rbp), %eax
movl %eax, -0x3b4(%rbp)
movl -0x1d4(%rbp), %eax
movl %eax, %esi
leaq -0x138(%rbp), %rdi
callq 0x44d0
movq %rax, %rcx
movl -0x3b4(%rbp), %eax
movl (%rcx), %ecx
xorl %ecx, %eax
movl %eax, -0x104(%rbp)
movl -0x1d4(%rbp), %eax
incl %eax
movl %eax, -0x1d4(%rbp)
movl -0x100(%rbp), %eax
movl -0xfc(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x8(%rbp), %rax
movl 0x14(%rax), %edi
movl $0xc, %esi
callq 0x4540
movl %eax, -0x3b0(%rbp)
jmp 0x28e0
movl -0x100(%rbp), %edi
movl -0x108(%rbp), %edx
movl -0x104(%rbp), %esi
callq 0x4570
movl %eax, -0x3b8(%rbp)
jmp 0x28ff
movl -0x3b8(%rbp), %eax
movl -0x3b0(%rbp), %ecx
subl %eax, %ecx
movl -0x10c(%rbp), %eax
subl %eax, %ecx
addl $0xb87839d6, %ecx       # imm = 0xB87839D6
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
movl -0x1d0(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x14(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x1d8(%rbp)
movl -0x1d8(%rbp), %edi
movl $0x5, %esi
callq 0x45b0
movl %eax, -0x3bc(%rbp)
jmp 0x294f
movl -0x3bc(%rbp), %eax
movl %eax, -0x1d8(%rbp)
movl -0xc4(%rbp), %eax
addl -0x1d8(%rbp), %eax
movl %eax, -0x1d8(%rbp)
movl -0x1d8(%rbp), %ecx
xorl -0xc4(%rbp), %ecx
andl $0x80020000, %ecx       # imm = 0x80020000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x298a
jmp 0x2864
movl -0x1d8(%rbp), %eax
movl %eax, -0xc0(%rbp)
movl -0x108(%rbp), %eax
movl -0x104(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %edi
movl $0x16, %esi
callq 0x4540
movl %eax, -0x3c0(%rbp)
jmp 0x29c4
movl -0x108(%rbp), %edi
movl -0x110(%rbp), %edx
movl -0x10c(%rbp), %esi
callq 0x4570
movl %eax, -0x3c4(%rbp)
jmp 0x29e3
movl -0x3c4(%rbp), %eax
movl -0x3c0(%rbp), %ecx
subl %eax, %ecx
movl -0x114(%rbp), %eax
subl %eax, %ecx
addl $0x3e423112, %ecx       # imm = 0x3E423112
movq -0x8(%rbp), %rax
movl %ecx, 0xc(%rax)
movl -0x104(%rbp), %eax
movl -0x100(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl 0x10(%rax), %edi
movl $0x7, %esi
callq 0x4540
movl %eax, -0x3c8(%rbp)
jmp 0x2a34
movl -0x104(%rbp), %edi
movl -0x10c(%rbp), %edx
movl -0x108(%rbp), %esi
callq 0x4570
movl %eax, -0x3cc(%rbp)
jmp 0x2a53
movl -0x3cc(%rbp), %eax
movl -0x3c8(%rbp), %ecx
subl %eax, %ecx
movl -0x110(%rbp), %eax
subl %eax, %ecx
addl $0xa83f051, %ecx        # imm = 0xA83F051
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
movl -0xf8(%rbp), %eax
movl -0xf4(%rbp), %ecx
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %edi
movl $0x16, %esi
callq 0x4540
movl %eax, -0x3d0(%rbp)
jmp 0x2aa4
movl -0xf8(%rbp), %edi
movl -0x100(%rbp), %edx
movl -0xfc(%rbp), %esi
callq 0x4570
movl %eax, -0x3d4(%rbp)
jmp 0x2ac3
movl -0x3d4(%rbp), %eax
movl -0x3d0(%rbp), %ecx
subl %eax, %ecx
movl -0x104(%rbp), %eax
subl %eax, %ecx
addl $0x2b96aff, %ecx        # imm = 0x2B96AFF
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
movl -0xc0(%rbp), %edi
movl -0xc8(%rbp), %edx
movl -0xc4(%rbp), %esi
callq 0x4590
movl %eax, -0x3d8(%rbp)
jmp 0x2b05
movl -0x3d8(%rbp), %edx
movl -0xcc(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x2441453(%rax,%rcx), %eax
movl %eax, -0x1dc(%rbp)
movl -0xc8(%rbp), %ecx
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x275e197f(%rax,%rcx), %eax
movl %eax, -0x1e0(%rbp)
movl -0xc4(%rbp), %ecx
movq -0x8(%rbp), %rax
movl 0x10(%rax), %edx
movl %ecx, %eax
movl %edx, %ecx
leal -0x182c0438(%rax,%rcx), %eax
movl %eax, -0x1e4(%rbp)
movl -0xfc(%rbp), %eax
addl $0x8b44f7af, %eax       # imm = 0x8B44F7AF
movl %eax, -0x1e8(%rbp)
movl -0xf8(%rbp), %eax
addl $0xffff5bb1, %eax       # imm = 0xFFFF5BB1
movl %eax, -0x1ec(%rbp)
movl -0xf4(%rbp), %edi
movl -0xfc(%rbp), %edx
movl -0xf8(%rbp), %esi
callq 0x4570
movl %eax, -0x3dc(%rbp)
jmp 0x2b9f
movl -0x3dc(%rbp), %edx
movl -0x100(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x698098d8(%rax,%rcx), %eax
movl %eax, -0x1f0(%rbp)
movl -0xe4(%rbp), %eax
movl -0xe0(%rbp), %edi
subl %eax, %edi
movl $0x7, %esi
callq 0x4540
movl %eax, -0x3e0(%rbp)
jmp 0x2bdc
movl -0x3e0(%rbp), %eax
addl $0x946feede, %eax       # imm = 0x946FEEDE
movl %eax, -0x1f4(%rbp)
movl -0xe0(%rbp), %eax
movl -0xdc(%rbp), %edi
subl %eax, %edi
movl $0xc, %esi
callq 0x4540
movl %eax, -0x3e4(%rbp)
jmp 0x2c0d
movl -0xe0(%rbp), %edi
movl -0xe8(%rbp), %edx
movl -0xe4(%rbp), %esi
callq 0x4570
movl %eax, -0x3e8(%rbp)
jmp 0x2c2c
movl -0x3e8(%rbp), %ecx
movl -0x3e4(%rbp), %eax
subl %ecx, %eax
subl $0xfd987193, %eax       # imm = 0xFD987193
movl %eax, -0x1f8(%rbp)
movl $0x0, -0x1fc(%rbp)
cmpl $0x8, -0x1fc(%rbp)
jae 0x43c7
movl -0xec(%rbp), %eax
movl %eax, -0x3f4(%rbp)
movl -0x1fc(%rbp), %eax
movl %eax, %esi
leaq -0x168(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x44d0
movq -0x400(%rbp), %rdi
movq %rax, %rcx
movl -0x3f4(%rbp), %eax
movl (%rcx), %ecx
andl $0x60, %ecx
xorl %ecx, %eax
movl %eax, -0x200(%rbp)
movl -0x1cc(%rbp), %eax
movl %eax, -0x3f0(%rbp)
movl -0x1fc(%rbp), %eax
movl %eax, %esi
callq 0x44d0
movq %rax, %rcx
movl -0x3f0(%rbp), %eax
movl (%rcx), %ecx
andl $0x2000, %ecx           # imm = 0x2000
xorl %ecx, %eax
movl %eax, -0xf0(%rbp)
movl -0x1fc(%rbp), %eax
incl %eax
movl %eax, -0x1fc(%rbp)
movl -0xe8(%rbp), %edi
movl -0x200(%rbp), %eax
subl %eax, %edi
movl $0x11, %esi
callq 0x4540
movl %eax, -0x3ec(%rbp)
jmp 0x2d00
movl -0x3ec(%rbp), %eax
movl %eax, -0x204(%rbp)
movl -0x200(%rbp), %edi
movl -0xf4(%rbp), %edx
movl -0xf0(%rbp), %esi
callq 0x4570
movl %eax, -0x404(%rbp)
jmp 0x2d2b
movl -0x404(%rbp), %ecx
movl -0x1ec(%rbp), %eax
addl %eax, %ecx
movl -0x204(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x204(%rbp)
movl -0xc0(%rbp), %eax
movl %eax, -0x208(%rbp)
movl -0x1dc(%rbp), %eax
movl -0x204(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x20c(%rbp)
movl -0x20c(%rbp), %edi
movl $0x9, %esi
callq 0x45b0
movl %eax, -0x408(%rbp)
jmp 0x2d7f
movl -0x408(%rbp), %eax
addl -0x208(%rbp), %eax
movl %eax, -0x20c(%rbp)
movl -0x20c(%rbp), %ecx
andl $0x80000000, %ecx       # imm = 0x80000000
movl $0x80000000, %eax       # imm = 0x80000000
cmpl %ecx, %eax
je 0x2dab
jmp 0x2c4f
movl -0xc4(%rbp), %eax
movl %eax, -0x210(%rbp)
movl -0x1e0(%rbp), %eax
movl %eax, -0x410(%rbp)
movl -0x20c(%rbp), %edi
movl -0x208(%rbp), %esi
movl -0x210(%rbp), %edx
callq 0x4590
movl %eax, -0x40c(%rbp)
jmp 0x2de2
movl -0x40c(%rbp), %ecx
movl -0x410(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x214(%rbp)
movl -0x214(%rbp), %ecx
andl $0x20000, %ecx          # imm = 0x20000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x2e0d
jmp 0x2c4f
movl -0x214(%rbp), %edi
movl $0xe, %esi
callq 0x45b0
movl %eax, -0x414(%rbp)
jmp 0x2e25
movl -0x414(%rbp), %eax
addl -0x20c(%rbp), %eax
movl %eax, -0x214(%rbp)
movl -0x214(%rbp), %ecx
andl $0x80000000, %ecx       # imm = 0x80000000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x2e4e
jmp 0x2c4f
movl -0x1e4(%rbp), %eax
movl %eax, -0x41c(%rbp)
movl -0x214(%rbp), %edi
movl -0x20c(%rbp), %esi
movl -0x208(%rbp), %edx
callq 0x4590
movl %eax, -0x418(%rbp)
jmp 0x2e79
movl -0x418(%rbp), %ecx
movl -0x41c(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x210(%rbp)
movl -0x210(%rbp), %edi
movl $0x14, %esi
callq 0x45b0
movl %eax, -0x420(%rbp)
jmp 0x2ea5
movl -0x420(%rbp), %eax
addl -0x214(%rbp), %eax
movl %eax, -0x210(%rbp)
movl -0x210(%rbp), %ecx
andl $0x80000000, %ecx       # imm = 0x80000000
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x2ece
jmp 0x2c4f
movl -0x204(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
movl -0x1f8(%rbp), %ecx
subl -0x200(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x34(%rax)
movl $0x0, -0x218(%rbp)
cmpl $0x10000, -0x218(%rbp)  # imm = 0x10000
jae 0x43c2
movl -0xf0(%rbp), %eax
movl %eax, -0x42c(%rbp)
movl -0x218(%rbp), %eax
movl %eax, %esi
leaq -0x188(%rbp), %rdi
callq 0x44d0
movq %rax, %rcx
movl -0x42c(%rbp), %eax
movl (%rcx), %ecx
xorl %ecx, %eax
movl %eax, -0x21c(%rbp)
movl -0x1f4(%rbp), %eax
movl %eax, -0x428(%rbp)
movl -0xe8(%rbp), %esi
movl -0xe4(%rbp), %edi
movl -0x200(%rbp), %edx
callq 0x4570
movl %eax, -0x424(%rbp)
jmp 0x2f66
movl -0x424(%rbp), %eax
movl -0x428(%rbp), %ecx
subl %eax, %ecx
movl -0x21c(%rbp), %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x30(%rax)
movl -0x21c(%rbp), %eax
movl -0xf4(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x220(%rbp)
movl -0x220(%rbp), %edi
movl $0x7, %esi
callq 0x4540
movl %eax, -0x430(%rbp)
jmp 0x2faf
movl -0x430(%rbp), %ecx
movl -0x1f0(%rbp), %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x20(%rax)
movl -0x200(%rbp), %eax
movl -0x21c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x224(%rbp)
movl -0x224(%rbp), %edi
movl $0xc, %esi
callq 0x4540
movl %eax, -0x434(%rbp)
jmp 0x2ff0
movl -0x21c(%rbp), %edi
movl -0xf8(%rbp), %edx
movl -0xf4(%rbp), %esi
callq 0x4570
movl %eax, -0x438(%rbp)
jmp 0x300f
movl -0x438(%rbp), %eax
movl -0x434(%rbp), %ecx
subl %eax, %ecx
movl -0x1e8(%rbp), %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x24(%rax)
movl -0x208(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x210(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x214(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x20c(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4590
movl %eax, -0x43c(%rbp)
jmp 0x307b
movl -0x43c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x21e1cde6(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x5, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4590
movl %eax, -0x440(%rbp)
jmp 0x30d7
movl -0x440(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x38(%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x3cc8f82a(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0x9, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4590
movl %eax, -0x444(%rbp)
jmp 0x3133
movl -0x444(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
addl %eax, %edx
movl -0x230(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0xb2af279(%rax,%rcx), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
roll $0xe, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4590
movl %eax, -0x448(%rbp)
jmp 0x318f
movl -0x448(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
addl %eax, %edx
movl -0x22c(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x455a14ed(%rax,%rcx), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
roll $0x14, %eax
movl -0x230(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4590
movl %eax, -0x44c(%rbp)
jmp 0x31eb
movl -0x44c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x34(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x561c16fb(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x5, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4590
movl %eax, -0x450(%rbp)
jmp 0x3247
movl -0x450(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x3105c08(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0x9, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4590
movl %eax, -0x454(%rbp)
jmp 0x32a3
movl -0x454(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
addl %eax, %edx
movl -0x230(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x676f02d9(%rax,%rcx), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
roll $0xe, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4590
movl %eax, -0x458(%rbp)
jmp 0x32ff
movl -0x458(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
addl %eax, %edx
movl -0x22c(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x72d5b376(%rax,%rcx), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
roll $0x14, %eax
movl -0x230(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x45e0
movl %eax, -0x45c(%rbp)
jmp 0x335b
movl -0x45c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x5c6be(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x4, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x45e0
movl %eax, -0x460(%rbp)
jmp 0x33b7
movl -0x460(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x788e097f(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0xb, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x45e0
movl %eax, -0x464(%rbp)
jmp 0x3413
movl -0x464(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x2c(%rcx), %eax
addl $0x6d9d6122, %eax       # imm = 0x6D9D6122
addl -0x230(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %ecx
andl $0x8000, %ecx           # imm = 0x8000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3448
jmp 0x43ae
movl -0x230(%rbp), %eax
roll $0x10, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x45e0
movl %eax, -0x468(%rbp)
jmp 0x347e
movl -0x468(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x38(%rax), %eax
addl %eax, %edx
movl -0x22c(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x21ac7f4(%rax,%rcx), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
roll $0x17, %eax
movl -0x230(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x45e0
movl %eax, -0x46c(%rbp)
jmp 0x34da
movl -0x46c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x5b4115bc(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x4, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x45e0
movl %eax, -0x470(%rbp)
jmp 0x3536
movl -0x470(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x4bdecfa9(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0xb, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x45e0
movl %eax, -0x474(%rbp)
jmp 0x3592
movl -0x474(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
addl %eax, %edx
movl -0x230(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x944b4a0(%rax,%rcx), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
roll $0x10, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x45e0
movl %eax, -0x478(%rbp)
jmp 0x35ee
movl -0x478(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x28(%rax), %eax
addl %eax, %edx
movl -0x22c(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x41404390(%rax,%rcx), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
roll $0x17, %eax
movl -0x230(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x45e0
movl %eax, -0x47c(%rbp)
jmp 0x364a
movl -0x47c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x34(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x289b7ec6(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x4, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x45e0
movl %eax, -0x480(%rbp)
jmp 0x36a6
movl -0x480(%rbp), %edx
movq -0x8(%rbp), %rax
movl (%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x155ed806(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0xb, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x45e0
movl %eax, -0x484(%rbp)
jmp 0x3701
movl -0x484(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
addl %eax, %edx
movl -0x230(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x2b10cf7b(%rax,%rcx), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
roll $0x10, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x45e0
movl %eax, -0x488(%rbp)
jmp 0x375d
movl -0x488(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
addl %eax, %edx
movl -0x22c(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x4881d05(%rax,%rcx), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
roll $0x17, %eax
movl -0x230(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x45e0
movl %eax, -0x48c(%rbp)
jmp 0x37b9
movl -0x48c(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
addl %eax, %edx
movl -0x228(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x262b2fc7(%rax,%rcx), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
roll $0x4, %eax
movl -0x22c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x45e0
movl %eax, -0x490(%rbp)
jmp 0x3815
movl -0x490(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
addl %eax, %edx
movl -0x234(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal -0x1924661b(%rax,%rcx), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
roll $0xb, %eax
movl -0x228(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x45e0
movl %eax, -0x494(%rbp)
jmp 0x3871
movl -0x494(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %eax
addl %eax, %edx
movl -0x230(%rbp), %ecx
movl %ecx, %eax
movl %edx, %ecx
leal 0x1fa27cf8(%rax,%rcx), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
roll $0x10, %eax
movl -0x234(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x45e0
movl %eax, -0x498(%rbp)
jmp 0x38cd
movl -0x498(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x8(%rcx), %eax
addl $0xc4ac5665, %eax       # imm = 0xC4AC5665
addl -0x22c(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
shll $0x17, %eax
movl -0x22c(%rbp), %ecx
shrl $0x9, %ecx
orl %ecx, %eax
addl -0x230(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
andl $0x80000000, %ecx       # imm = 0x80000000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3928
jmp 0x43ae
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4600
movl %eax, -0x49c(%rbp)
jmp 0x3947
movl -0x49c(%rbp), %eax
movq -0x8(%rbp), %rcx
addl (%rcx), %eax
addl $0xf4292244, %eax       # imm = 0xF4292244
addl -0x228(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
shll $0x6, %eax
movl -0x228(%rbp), %ecx
shrl $0x1a, %ecx
orl %ecx, %eax
addl -0x22c(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x399e
jmp 0x43ae
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4600
movl %eax, -0x4a0(%rbp)
jmp 0x39bd
movl -0x4a0(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x1c(%rcx), %eax
addl $0x432aff97, %eax       # imm = 0x432AFF97
addl -0x234(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
shll $0xa, %eax
movl -0x234(%rbp), %ecx
shrl $0x16, %ecx
orl %ecx, %eax
addl -0x228(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3a15
jmp 0x43ae
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4600
movl %eax, -0x4a4(%rbp)
jmp 0x3a34
movl -0x4a4(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x38(%rcx), %eax
addl $0xab9423a7, %eax       # imm = 0xAB9423A7
addl -0x230(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
shll $0xf, %eax
movl -0x230(%rbp), %ecx
shrl $0x11, %ecx
orl %ecx, %eax
addl -0x234(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3a8c
jmp 0x43ae
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4600
movl %eax, -0x4a8(%rbp)
jmp 0x3aab
movl -0x4a8(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x14(%rcx), %eax
addl $0xfc93a039, %eax       # imm = 0xFC93A039
addl -0x22c(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
shll $0x15, %eax
movl -0x22c(%rbp), %ecx
shrl $0xb, %ecx
orl %ecx, %eax
addl -0x230(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3b03
jmp 0x43ae
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4600
movl %eax, -0x4ac(%rbp)
jmp 0x3b22
movl -0x4ac(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x30(%rcx), %eax
addl $0x655b59c3, %eax       # imm = 0x655B59C3
addl -0x228(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
shll $0x6, %eax
movl -0x228(%rbp), %ecx
shrl $0x1a, %ecx
orl %ecx, %eax
addl -0x22c(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3b7a
jmp 0x43ae
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4600
movl %eax, -0x4b0(%rbp)
jmp 0x3b99
movl -0x4b0(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0xc(%rcx), %eax
addl $0x8f0ccc92, %eax       # imm = 0x8F0CCC92
addl -0x234(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
shll $0xa, %eax
movl -0x234(%rbp), %ecx
shrl $0x16, %ecx
orl %ecx, %eax
addl -0x228(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3bf1
jmp 0x43ae
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4600
movl %eax, -0x4b4(%rbp)
jmp 0x3c10
movl -0x4b4(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x28(%rcx), %eax
addl $0xffeff47d, %eax       # imm = 0xFFEFF47D
addl -0x230(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
shll $0xf, %eax
movl -0x230(%rbp), %ecx
shrl $0x11, %ecx
orl %ecx, %eax
addl -0x234(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3c68
jmp 0x43ae
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4600
movl %eax, -0x4b8(%rbp)
jmp 0x3c87
movl -0x4b8(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x4(%rcx), %eax
addl $0x85845dd1, %eax       # imm = 0x85845DD1
addl -0x22c(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
shll $0x15, %eax
movl -0x22c(%rbp), %ecx
shrl $0xb, %ecx
orl %ecx, %eax
addl -0x230(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3cdf
jmp 0x43ae
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4600
movl %eax, -0x4bc(%rbp)
jmp 0x3cfe
movl -0x4bc(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x20(%rcx), %eax
addl $0x6fa87e4f, %eax       # imm = 0x6FA87E4F
addl -0x228(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
shll $0x6, %eax
movl -0x228(%rbp), %ecx
shrl $0x1a, %ecx
orl %ecx, %eax
addl -0x22c(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3d56
jmp 0x43ae
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4600
movl %eax, -0x4c0(%rbp)
jmp 0x3d75
movl -0x4c0(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x3c(%rcx), %eax
addl $0xfe2ce6e0, %eax       # imm = 0xFE2CE6E0
addl -0x234(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
shll $0xa, %eax
movl -0x234(%rbp), %ecx
shrl $0x16, %ecx
orl %ecx, %eax
addl -0x228(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3dcd
jmp 0x43ae
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4600
movl %eax, -0x4c4(%rbp)
jmp 0x3dec
movl -0x4c4(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x18(%rcx), %eax
addl $0xa3014314, %eax       # imm = 0xA3014314
addl -0x230(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
shll $0xf, %eax
movl -0x230(%rbp), %ecx
shrl $0x11, %ecx
orl %ecx, %eax
addl -0x234(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3e44
jmp 0x43ae
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4600
movl %eax, -0x4c8(%rbp)
jmp 0x3e63
movl -0x4c8(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x34(%rcx), %eax
addl $0x4e0811a1, %eax       # imm = 0x4E0811A1
addl -0x22c(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
shll $0x15, %eax
movl -0x22c(%rbp), %ecx
shrl $0xb, %ecx
orl %ecx, %eax
addl -0x230(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3ebb
jmp 0x43ae
movl -0x22c(%rbp), %edi
movl -0x230(%rbp), %esi
movl -0x234(%rbp), %edx
callq 0x4600
movl %eax, -0x4cc(%rbp)
jmp 0x3eda
movl -0x4cc(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x10(%rcx), %eax
addl $0xf7537e82, %eax       # imm = 0xF7537E82
addl -0x228(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %eax
shll $0x6, %eax
movl -0x228(%rbp), %ecx
shrl $0x1a, %ecx
orl %ecx, %eax
addl -0x22c(%rbp), %eax
movl %eax, -0x228(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3f32
jmp 0x43ae
movl -0x228(%rbp), %edi
movl -0x22c(%rbp), %esi
movl -0x230(%rbp), %edx
callq 0x4600
movl %eax, -0x4d0(%rbp)
jmp 0x3f51
movl -0x4d0(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x2c(%rcx), %eax
addl $0xbd3af235, %eax       # imm = 0xBD3AF235
addl -0x234(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x234(%rbp), %eax
shll $0xa, %eax
movl -0x234(%rbp), %ecx
shrl $0x16, %ecx
orl %ecx, %eax
addl -0x228(%rbp), %eax
movl %eax, -0x234(%rbp)
movl -0x22c(%rbp), %ecx
xorl -0x234(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3fa9
jmp 0x43ae
movl -0x234(%rbp), %edi
movl -0x228(%rbp), %esi
movl -0x22c(%rbp), %edx
callq 0x4600
movl %eax, -0x4d4(%rbp)
jmp 0x3fc8
movl -0x4d4(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x8(%rcx), %eax
addl $0x2ad7d2bb, %eax       # imm = 0x2AD7D2BB
addl -0x230(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x230(%rbp), %eax
shll $0xf, %eax
movl -0x230(%rbp), %ecx
shrl $0x11, %ecx
orl %ecx, %eax
addl -0x234(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x228(%rbp), %ecx
xorl -0x230(%rbp), %ecx
shrl $0x1f, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x4020
jmp 0x43ae
movl -0x230(%rbp), %edi
movl -0x234(%rbp), %esi
movl -0x228(%rbp), %edx
callq 0x4600
movl %eax, -0x4d8(%rbp)
jmp 0x403f
movl -0x4d8(%rbp), %eax
movq -0x8(%rbp), %rcx
addl 0x24(%rcx), %eax
addl $0xeb86d391, %eax       # imm = 0xEB86D391
addl -0x22c(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
shll $0x15, %eax
movl -0x22c(%rbp), %ecx
shrl $0xb, %ecx
orl %ecx, %eax
addl -0x230(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
movq -0x10(%rbp), %rcx
addl 0x4(%rcx), %eax
movl %eax, -0x238(%rbp)
movl -0x230(%rbp), %eax
movq -0x10(%rbp), %rcx
addl 0x8(%rcx), %eax
movl %eax, -0x23c(%rbp)
movl -0x234(%rbp), %eax
movq -0x10(%rbp), %rcx
addl 0xc(%rcx), %eax
movl %eax, -0x240(%rbp)
movb $0x1, -0x241(%rbp)
movl -0x23c(%rbp), %ecx
xorl -0x238(%rbp), %ecx
andl $0x86000000, %ecx       # imm = 0x86000000
movl $0x2000000, %eax        # imm = 0x2000000
cmpl %ecx, %eax
je 0x40df
movb $0x0, -0x241(%rbp)
movl -0x238(%rbp), %ecx
xorl -0x240(%rbp), %ecx
andl $0x82000000, %ecx       # imm = 0x82000000
xorl %eax, %eax
cmpl %ecx, %eax
je 0x40fe
movb $0x0, -0x241(%rbp)
movl -0x238(%rbp), %ecx
andl $0x6000020, %ecx        # imm = 0x6000020
xorl %eax, %eax
cmpl %ecx, %eax
je 0x4117
movb $0x0, -0x241(%rbp)
movb $0x1, -0x242(%rbp)
movl -0x238(%rbp), %eax
xorl -0x23c(%rbp), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
jne 0x4146
movl -0x238(%rbp), %eax
xorl -0x240(%rbp), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x414d
movb $0x0, -0x242(%rbp)
movl -0x240(%rbp), %eax
andl $0x2000000, %eax        # imm = 0x2000000
cmpl $0x0, %eax
jne 0x4191
movl -0x23c(%rbp), %eax
andl $0x2000000, %eax        # imm = 0x2000000
cmpl $0x0, %eax
jne 0x4191
movl -0x238(%rbp), %eax
andl $0x2000000, %eax        # imm = 0x2000000
cmpl $0x0, %eax
jne 0x4191
movl -0x23c(%rbp), %eax
xorl -0x238(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x4198
movb $0x0, -0x242(%rbp)
testb $0x1, -0x241(%rbp)
jne 0x41af
testb $0x1, -0x242(%rbp)
jne 0x41af
jmp 0x43ae
movq 0x11e1a(%rip), %rdi     # 0x15fd0
leaq 0xeef7(%rip), %rsi      # 0x130b4
callq 0x10d0
movq %rax, -0x4e0(%rbp)
jmp 0x41cb
movq -0x4e0(%rbp), %rdi
movq 0x11dff(%rip), %rsi     # 0x15fd8
callq 0x1100
jmp 0x41e0
movl $0x0, -0x274(%rbp)
cmpl $0x4, -0x274(%rbp)
jge 0x422e
movq -0x10(%rbp), %rax
movslq -0x274(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movslq -0x274(%rbp), %rax
movl %ecx, -0x260(%rbp,%rax,4)
movslq -0x274(%rbp), %rax
movl %ecx, -0x270(%rbp,%rax,4)
movl -0x274(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x274(%rbp)
jmp 0x41ea
movl $0x0, -0x2c4(%rbp)
cmpl $0x10, -0x2c4(%rbp)
jge 0x426e
movq -0x8(%rbp), %rax
movslq -0x2c4(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movslq -0x2c4(%rbp), %rax
movl %ecx, -0x2c0(%rbp,%rax,4)
movl -0x2c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c4(%rbp)
jmp 0x4238
movl -0x2b0(%rbp), %eax
addl $0x80000000, %eax       # imm = 0x80000000
movl %eax, -0x2b0(%rbp)
movl -0x294(%rbp), %eax
addl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x294(%rbp)
movl -0x288(%rbp), %eax
addl $0x80000000, %eax       # imm = 0x80000000
movl %eax, -0x288(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x260(%rbp), %rdi
callq 0x50b0
jmp 0x42b3
leaq -0x270(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x50b0
jmp 0x42c8
movl -0x270(%rbp), %eax
movl -0x260(%rbp), %ecx
addl $0x80000000, %ecx       # imm = 0x80000000
cmpl %ecx, %eax
jne 0x4363
movl -0x26c(%rbp), %eax
movl -0x25c(%rbp), %ecx
addl $0x80000000, %ecx       # imm = 0x80000000
addl $0x2000000, %ecx        # imm = 0x2000000
cmpl %ecx, %eax
jne 0x4363
movl -0x268(%rbp), %eax
movl -0x258(%rbp), %ecx
addl $0x80000000, %ecx       # imm = 0x80000000
addl $0x2000000, %ecx        # imm = 0x2000000
cmpl %ecx, %eax
jne 0x4363
movl -0x264(%rbp), %eax
movl -0x254(%rbp), %ecx
addl $0x80000000, %ecx       # imm = 0x80000000
addl $0x2000000, %ecx        # imm = 0x2000000
cmpl %ecx, %eax
jne 0x4363
leaq -0x188(%rbp), %rdi
callq 0x4620
leaq -0x168(%rbp), %rdi
callq 0x4620
leaq -0x138(%rbp), %rdi
callq 0x4620
addq $0x4f0, %rsp            # imm = 0x4F0
popq %rbp
retq
movl -0x270(%rbp), %eax
movl -0x260(%rbp), %ecx
addl $0x80000000, %ecx       # imm = 0x80000000
cmpl %ecx, %eax
je 0x43ac
movq 0x11c50(%rip), %rdi     # 0x15fd0
leaq 0xed2f(%rip), %rsi      # 0x130b6
callq 0x10d0
movq %rax, -0x4e8(%rbp)
jmp 0x4395
movq -0x4e8(%rbp), %rdi
movq 0x11c35(%rip), %rsi     # 0x15fd8
callq 0x1100
jmp 0x43aa
jmp 0x43ac
jmp 0x43ae
movl -0x218(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x218(%rbp)
jmp 0x2ef8
jmp 0x2c4f
jmp 0x2864
jmp 0x1e51
leaq -0x168(%rbp), %rdi
callq 0x4620
leaq -0x138(%rbp), %rdi
callq 0x4620
movq -0x148(%rbp), %rdi
callq 0x1150
nopw %cs:(%rax,%rax)
nop