// File: /workspace/github_cpp_makefile_star2_O3/bothaynahazem[P]AsuMathLabG13/main.cpp
// Function: evaluate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string evaluate(string s1)
{
	stack<string> operators;
	stack<Matrix> operands;
	string result;
	string s;
for (int i=0; i<s1.length();i++)
    if (s1[i]==' ')
    s1.erase(i,1);
	if(s1[0]=='-')
        s1.insert(0,"0");
    for (int i=0; i<s1.length();i++)
    if(s1[i]==' '&& s1[i+1] == '-')
        s1.insert(i+1,"0");
    else if(s1[i]=='('&& s1[i+1]=='-')
        s1.insert(i+1,"0");

	int pos = 0;
        while (pos != string::npos)
	{
		pos = s1.find_first_of("()+-/*^", pos);
		if (pos == -1) break;
		if (s1[pos - 1] == '.')
		{
			s1.insert(pos-1, " ");
			s1.insert(pos + 2, " ");
		}
		else
		{
            s1.insert(pos, " ");
            s1.insert(pos + 2, " ");
		}
		pos = s1.find_first_of("()+-/*^", pos) + 1;
	}

	if (s1.find("sin") != string::npos )
    {

			int pos = 0;
			while (pos != string::npos)
			{
				pos = s1.find("sin");
				if (pos == -1) break;
				pos += 3;
				s1 = replaceSin(s1);
			}
		}

    if (s1.find("cos") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("cos");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceCos(s1);
		}
	}

	if (s1.find("tan") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("tan");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceTan(s1);
		}
	}

	if (s1.find("log10") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("log10");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceLog(s1);
		}
	}


	if (s1.find("log") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("log");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceLn(s1);
		}
	}

	if (s1.find("exp") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("exp");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceExp(s1);
		}
	}

    if (s1.find("sqrt") != string::npos)
	{

		int pos = 0;
		while (pos != string::npos)
		{
			pos = s1.find("sqrt");
			if (pos == -1) break;
			pos += 3;
			s1 = replaceSqrt(s1);
		}
	}

	if (s1.find("Math error") != string::npos)
		return "Math error";



	istringstream is(s1);
	while (is >> s)
	{
		if (isChar(s))
		{
			if (s[0] == '(') operators.push("(");
			else if (s[0] == ')')
			{
				while (operators.top() != "(")
				{
					string ch = operators.top(); operators.pop();
					Matrix op2 = operands.top(); operands.pop();
					Matrix op1 = operands.top(); operands.pop();
					Matrix H;
                    H=solve(op1, op2, ch);
					operands.push(H);
				}
				operators.pop();
			}
			else
			{
				while (!operators.empty() && preference(s) <= preference(operators.top()))
				{

					string ch = operators.top(); operators.pop();
					Matrix op2 = operands.top(); operands.pop();
					Matrix op1 = operands.top(); operands.pop();

					operands.push(solve(op1, op2, ch));

				}

				operators.push(s);
			}

		}
		else if(isLetter(s))
        {
            for (int i=0;i<100;i++)
            {
                if(variables_names[i]==s)
                {
                    Matrix H(input_matrices[i]);
                    operands.push(H);
                    break;
                }
            }
        }
		else
		{
			Matrix op(s);
			operands.push(op);
		}

	}

	while (!operators.empty())
	{
		string ch = operators.top(); operators.pop();
		Matrix op2 = operands.top(); operands.pop();
		Matrix op1 = operands.top(); operands.pop();

		operands.push(solve(op1, op2, ch));
	}

//	char buffer[1000];
//	sprintf(buffer, "%f", operands.top().getDeterminate());
if(operands.top().getn()!=1)
	result = operands.top().getAltString();
	else
        result = operands.top().getAltStringNoB();

	return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6e8, %rsp            # imm = 0x6E8
movq %rsi, %r14
movq %rdi, %r15
xorps %xmm0, %xmm0
leaq -0x190(%rbp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x9488
leaq -0x100(%rbp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x9614
leaq -0x58(%rbp), %r12
movq %r12, -0x10(%r12)
xorl %eax, %eax
movq %rax, -0x8(%r12)
movb %al, (%r12)
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
movq 0x8(%r14), %rcx
testq %rcx, %rcx
je 0x42f4
xorl %ebx, %ebx
movq %rcx, %rax
movq (%r14), %rcx
cmpb $0x20, (%rcx,%rbx)
jne 0x42ec
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3090
movq 0x8(%r14), %rax
incq %rbx
cmpq %rbx, %rax
ja 0x42cf
movq (%r14), %rcx
cmpb $0x2d, (%rcx)
jne 0x4319
leaq 0xcd84(%rip), %rcx      # 0x11087
movl $0x1, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3330
movq 0x8(%r14), %rax
movq %r15, -0xa8(%rbp)
testq %rax, %rax
je 0x436f
movl $0x1, %r15d
leaq 0xcd55(%rip), %rbx      # 0x11087
movq (%r14), %rax
movzbl -0x1(%rax,%r15), %ecx
cmpl $0x28, %ecx
je 0x4345
cmpl $0x20, %ecx
jne 0x4362
cmpb $0x2d, (%rax,%r15)
jne 0x4362
movl $0x1, %r8d
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x3330
leaq 0x1(%r15), %rax
cmpq %r15, 0x8(%r14)
movq %rax, %r15
ja 0x4332
movabsq $-0x100000000, %r13     # imm = 0xFFFFFFFF00000000
xorl %edx, %edx
leaq 0xcd1f(%rip), %rbx      # 0x110a1
sarq $0x20, %rdx
movl $0x7, %ecx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3420
movq %rax, %r12
cmpl $-0x1, %r12d
je 0x4480
shlq $0x20, %r12
movq %r13, %r15
leaq (%r12,%r13), %rsi
sarq $0x20, %rsi
movq (%r14), %rax
cmpb $0x2e, (%rax,%rsi)
jne 0x4404
movl $0x1, %r8d
movq %r14, %rdi
xorl %edx, %edx
leaq 0xcd27(%rip), %rcx      # 0x110f4
callq 0x3330
movabsq $0x200000000, %rax      # imm = 0x200000000
leaq (%r12,%rax), %rsi
sarq $0x20, %rsi
movl $0x1, %r8d
movq %r14, %rdi
xorl %edx, %edx
leaq 0xccfe(%rip), %rcx      # 0x110f4
callq 0x3330
sarq $0x20, %r12
movq %r12, %r13
jmp 0x4450
movq %r12, %r13
sarq $0x20, %r13
movl $0x1, %r8d
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
leaq 0xccd4(%rip), %rcx      # 0x110f4
callq 0x3330
movabsq $0x200000000, %rax      # imm = 0x200000000
addq %rax, %r12
sarq $0x20, %r12
movl $0x1, %r8d
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
leaq 0xcca9(%rip), %rcx      # 0x110f4
callq 0x3330
movl $0x7, %ecx
movq %r14, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x3420
shlq $0x20, %rax
movl $0xfffffffc, %ecx       # imm = 0xFFFFFFFC
leaq (%rcx,%rax), %rdx
addq $0x4, %rdx
movq %r15, %r13
cmpq %r15, %rdx
jne 0x4382
leaq 0xcbe8(%rip), %rsi      # 0x1106f
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x454e
leaq -0x320(%rbp), %rbx
leaq -0x330(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x3, %ecx
movq %r14, %rdi
leaq 0xcbab(%rip), %rsi      # 0x1106f
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x454e
movq %rbx, -0x330(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x3e19
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x4525
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x330(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4540
movq -0x320(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x44b5
leaq 0xcb20(%rip), %rsi      # 0x11075
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x461c
leaq -0x300(%rbp), %rbx
leaq -0x310(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x3, %ecx
movq %r14, %rdi
leaq 0xcae3(%rip), %rsi      # 0x11075
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x461c
movq %rbx, -0x310(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x59dd
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x45f3
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x310(%rbp), %rdi
cmpq %rbx, %rdi
je 0x460e
movq -0x300(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x4583
leaq 0xca59(%rip), %rsi      # 0x1107c
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x46ea
leaq -0x2e0(%rbp), %rbx
leaq -0x2f0(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x3, %ecx
movq %r14, %rdi
leaq 0xca1c(%rip), %rsi      # 0x1107c
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x46ea
movq %rbx, -0x2f0(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x5dff
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x46c1
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x2f0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x46dc
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x4651
leaq 0xc992(%rip), %rsi      # 0x11083
movl $0x5, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x47b8
leaq -0x2c0(%rbp), %rbx
leaq -0x2d0(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x5, %ecx
movq %r14, %rdi
leaq 0xc955(%rip), %rsi      # 0x11083
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x47b8
movq %rbx, -0x2d0(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x6221
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x478f
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x47aa
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x471f
leaq 0xc8ca(%rip), %rsi      # 0x11089
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x4886
leaq -0x2a0(%rbp), %rbx
leaq -0x2b0(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x3, %ecx
movq %r14, %rdi
leaq 0xc88d(%rip), %rsi      # 0x11089
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x4886
movq %rbx, -0x2b0(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x6643
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x485d
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x2b0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4878
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x47ed
leaq 0xc804(%rip), %rsi      # 0x11091
movl $0x3, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x4954
leaq -0x280(%rbp), %rbx
leaq -0x290(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x3, %ecx
movq %r14, %rdi
leaq 0xc7c7(%rip), %rsi      # 0x11091
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x4954
movq %rbx, -0x290(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x6a65
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x492b
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4946
movq -0x280(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x48bb
leaq 0xc73d(%rip), %rsi      # 0x11098
movl $0x4, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x4a22
leaq -0x260(%rbp), %rbx
leaq -0x270(%rbp), %r15
leaq -0x580(%rbp), %r12
movl $0x4, %ecx
movq %r14, %rdi
leaq 0xc700(%rip), %rsi      # 0x11098
xorl %edx, %edx
callq 0x34e0
movq %rax, %r13
cmpl $-0x1, %r13d
je 0x4a22
movq %rbx, -0x270(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x934c
movq %r12, %rdi
movq %r15, %rsi
callq 0x6e87
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x49f9
movq -0x570(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4a14
movq -0x260(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0xfffffffc, %eax       # imm = 0xFFFFFFFC
cmpl %r13d, %eax
jne 0x4989
leaq 0xc680(%rip), %rsi      # 0x110a9
movl $0xa, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x4a6f
movq -0xa8(%rbp), %r14
leaq 0x10(%r14), %rax
movq %rax, (%r14)
leaq 0xc656(%rip), %rsi      # 0x110a9
leaq 0xc659(%rip), %rdx      # 0x110b3
movq %r14, %rdi
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
callq 0x93ea
jmp 0x54fa
leaq -0x580(%rbp), %rdi
movq %r14, %rsi
movl $0x8, %edx
callq 0x34b0
leaq -0x580(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3390
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x521c
leaq -0x360(%rbp), %rax
movq %rax, -0x370(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x370(%rbp), %rdi
callq 0x934c
movq -0x370(%rbp), %rdi
movzbl (%rdi), %eax
addl $-0x28, %eax
cmpl $0x36, %eax
ja 0x5175
movb $0x1, %bl
movabsq $0x400000000000af, %rcx # imm = 0x400000000000AF
btq %rax, %rcx
jae 0x5152
leaq -0x360(%rbp), %rax
cmpq %rax, %rdi
je 0x4b11
movq -0x360(%rbp), %rsi
incq %rsi
callq 0x3300
testb $0x1, %bl
je 0x5040
movq -0x48(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x28, %eax
leaq -0xa0(%rbp), %rbx
je 0x517c
cmpl $0x29, %eax
leaq -0x1a0(%rbp), %rbx
leaq -0x190(%rbp), %r12
jne 0x4f37
movq -0x160(%rbp), %rdi
cmpq -0x158(%rbp), %rdi
jne 0x4b6b
movq -0x148(%rbp), %rax
movq -0x8(%rax), %rdi
movl $0x200, %eax            # imm = 0x200
addq %rax, %rdi
addq $-0x20, %rdi
leaq 0xc53e(%rip), %rsi      # 0x110b4
callq 0x30e0
testl %eax, %eax
je 0x51da
movq -0x160(%rbp), %rax
cmpq -0x158(%rbp), %rax
jne 0x4ba6
movq -0x148(%rbp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
movq %rbx, -0x1b0(%rbp)
movq -0x20(%rax), %rsi
movq -0x18(%rax), %rdx
addq %rsi, %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x934c
leaq -0xa0(%rbp), %r15
movq %r12, %rdi
callq 0x9a94
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x4bf6
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
movq %r15, %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x4c31
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
leaq -0x3a8(%rbp), %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
leaq -0x400(%rbp), %rdi
callq 0xa11a
leaq -0x660(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0xa5a6
leaq -0x628(%rbp), %rdi
movq %r15, %rsi
callq 0xa5a6
leaq -0x220(%rbp), %rax
movq %rax, -0x230(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x230(%rbp), %r14
movq %r14, %rdi
callq 0x934c
leaq -0x138(%rbp), %r13
movq %r13, %rdi
leaq -0x660(%rbp), %rsi
leaq -0x628(%rbp), %rdx
movq %r14, %rcx
callq 0x7307
leaq -0x708(%rbp), %r14
movq %r14, %rdi
leaq -0x400(%rbp), %rsi
movq %r13, %rdx
callq 0xb8f2
movq %r14, %rdi
callq 0xa186
movq %r13, %rdi
callq 0xa186
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x4d14
movq -0x220(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x628(%rbp), %rdi
callq 0xa186
leaq -0x660(%rbp), %rdi
callq 0xa186
leaq -0x100(%rbp), %rdi
leaq -0x400(%rbp), %r14
movq %r14, %rsi
callq 0x9baa
movq %r14, %rdi
callq 0xa186
leaq -0x3a8(%rbp), %rdi
callq 0xa186
movq %r15, %rdi
callq 0xa186
movq -0x1b0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4b48
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x4b48
movq -0x160(%rbp), %rax
cmpq -0x158(%rbp), %rax
jne 0x4da5
movq -0x148(%rbp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
leaq -0x128(%rbp), %rcx
movq %rcx, -0x138(%rbp)
movq -0x20(%rax), %rsi
movq -0x18(%rax), %rdx
addq %rsi, %rdx
leaq -0x138(%rbp), %rdi
callq 0x934c
movq %r12, %rdi
callq 0x9a94
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x4df5
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
movq %r15, %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x4e30
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
movq %r14, %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
leaq -0x5f0(%rbp), %rdi
movq %r14, %rsi
callq 0xa5a6
leaq -0x5b8(%rbp), %rdi
movq %r15, %rsi
callq 0xa5a6
leaq -0x1e0(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x138(%rbp), %rsi
movq -0x130(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1f0(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
leaq -0x400(%rbp), %r13
movq %r13, %rdi
leaq -0x5f0(%rbp), %rsi
leaq -0x5b8(%rbp), %rdx
movq %rbx, %rcx
callq 0x7307
leaq -0x100(%rbp), %rdi
movq %r13, %rsi
callq 0x9e42
movq %r13, %rdi
callq 0xa186
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x4eed
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x5b8(%rbp), %rdi
callq 0xa186
leaq -0x5f0(%rbp), %rdi
callq 0xa186
movq %r14, %rdi
callq 0xa186
movq %r15, %rdi
callq 0xa186
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x4f37
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x160(%rbp), %rax
cmpq -0x180(%rbp), %rax
je 0x502f
leaq -0x200(%rbp), %rax
movq %rax, -0x210(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x210(%rbp), %r14
movq %r14, %rdi
callq 0x934c
movq %r14, %rdi
callq 0x76fa
movl %eax, %r12d
movq -0x160(%rbp), %rax
cmpq -0x158(%rbp), %rax
leaq -0x3b8(%rbp), %r15
jne 0x4fa8
movq -0x148(%rbp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
movq %r15, -0x3c8(%rbp)
movq -0x20(%rax), %rsi
movq -0x18(%rax), %rdx
addq %rsi, %rdx
leaq -0x3c8(%rbp), %r14
movq %r14, %rdi
callq 0x934c
movq %r14, %rdi
callq 0x76fa
movl %eax, %r14d
movq -0x3c8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4fef
movq -0x3b8(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
leaq -0xa0(%rbp), %r15
je 0x5018
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x3300
cmpl %r14d, %r12d
leaq -0x190(%rbp), %r12
leaq -0x3a8(%rbp), %r14
jle 0x4d82
movq %r12, %rdi
leaq -0x48(%rbp), %rsi
callq 0x9fae
jmp 0x4a83
leaq -0x340(%rbp), %rax
movq %rax, -0x350(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x350(%rbp), %rdi
callq 0x934c
movq -0x350(%rbp), %rdi
movb (%rdi), %bl
leaq -0x340(%rbp), %rax
cmpq %rax, %rdi
je 0x5089
movq -0x340(%rbp), %rsi
incq %rsi
callq 0x3300
addb $-0x41, %bl
cmpb $0x19, %bl
ja 0x50e1
movq 0x11288(%rip), %r15     # 0x16320
movq -0x48(%rbp), %r12
movq -0x40(%rbp), %r14
addq $0x8, %r15
xorl %ebx, %ebx
cmpq %r14, (%r15)
jne 0x50cb
testq %r14, %r14
je 0x51e7
movq -0x8(%r15), %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x3310
testl %eax, %eax
je 0x51e7
addq $-0x38, %rbx
addq $0x20, %r15
cmpq $-0x15e0, %rbx          # imm = 0xEA20
jne 0x50a6
jmp 0x4a83
leaq -0x240(%rbp), %rbx
movq %rbx, -0x250(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x250(%rbp), %r15
movq %r15, %rdi
callq 0x934c
leaq -0xa0(%rbp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0xa83c
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x5136
movq -0x240(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x100(%rbp), %rdi
movq %r14, %rsi
callq 0x9baa
movq %r14, %rdi
callq 0xa186
jmp 0x4a83
cmpq $0x6, %rax
jne 0x5175
movb 0x1(%rdi), %cl
addb $-0x2a, %cl
cmpb $0x35, %cl
jae 0x5175
movabsq $0x1000000000002b, %rbx # imm = 0x1000000000002B
shrq %cl, %rbx
jmp 0x4af6
xorl %ebx, %ebx
jmp 0x4af6
leaq -0x90(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, %rdi
leaq 0xbf20(%rip), %rsi      # 0x110b4
leaq 0xbf1a(%rip), %rdx      # 0x110b5
callq 0x93ea
leaq -0x190(%rbp), %rdi
movq %rbx, %rsi
callq 0x97b8
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x4a83
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x4a83
movq %r12, %rdi
callq 0x9a94
jmp 0x4a83
movq 0x1112a(%rip), %rsi     # 0x16318
subq %rbx, %rsi
leaq -0xa0(%rbp), %rbx
movq %rbx, %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
movq %rbx, %rsi
callq 0x9baa
movq %rbx, %rdi
callq 0xa186
jmp 0x4a83
movq -0x160(%rbp), %rax
cmpq -0x180(%rbp), %rax
je 0x53ff
leaq -0x3a8(%rbp), %r13
leaq -0x6d0(%rbp), %rbx
leaq -0x698(%rbp), %r14
leaq -0x400(%rbp), %r15
cmpq -0x158(%rbp), %rax
jne 0x5268
movq -0x148(%rbp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
leaq -0x128(%rbp), %rcx
movq %rcx, -0x138(%rbp)
movq -0x20(%rax), %rsi
movq -0x18(%rax), %rdx
addq %rsi, %rdx
leaq -0x138(%rbp), %rdi
callq 0x934c
leaq -0x190(%rbp), %rdi
callq 0x9a94
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x52bc
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
leaq -0xa0(%rbp), %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
jne 0x52fb
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1f8, %eax            # imm = 0x1F8
addq %rax, %rsi
addq $-0x38, %rsi
movq %r13, %rdi
callq 0xa5a6
leaq -0x100(%rbp), %rdi
callq 0x9b38
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa5a6
movq %r14, %rdi
leaq -0xa0(%rbp), %rsi
callq 0xa5a6
leaq -0x1c0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq -0x138(%rbp), %rsi
movq -0x130(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1d0(%rbp), %r12
movq %r12, %rdi
callq 0x934c
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq %r12, %rcx
callq 0x7307
leaq -0x100(%rbp), %rdi
movq %r15, %rsi
callq 0x9e42
movq %r15, %rdi
callq 0xa186
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x53a5
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r14, %rdi
callq 0xa186
movq %rbx, %rdi
callq 0xa186
movq %r13, %rdi
callq 0xa186
leaq -0xa0(%rbp), %rdi
callq 0xa186
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x53eb
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x160(%rbp), %rax
cmpq -0x180(%rbp), %rax
jne 0x524c
movq -0xd0(%rbp), %rsi
cmpq -0xc8(%rbp), %rsi
je 0x5418
movl -0x34(%rsi), %eax
imull -0x38(%rsi), %eax
jmp 0x5437
movq -0xb8(%rbp), %rax
movq -0x8(%rax), %rsi
movl 0x1c4(%rsi), %eax
imull 0x1c0(%rsi), %eax
addq $0x1f8, %rsi            # imm = 0x1F8
cmpl $0x1, %eax
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
movq -0xa8(%rbp), %r14
jne 0x545d
addq $-0x38, %rsi
leaq -0xa0(%rbp), %rdi
callq 0xb7de
jmp 0x546d
addq $-0x38, %rsi
leaq -0xa0(%rbp), %rdi
callq 0xb6c4
leaq -0x68(%rbp), %rdi
leaq -0xa0(%rbp), %rbx
movq %rbx, %rsi
callq 0x3360
movq (%rbx), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x549e
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x3300
leaq 0x10(%r14), %rax
movq %rax, (%r14)
movq -0x68(%rbp), %rcx
cmpq %r12, %rcx
je 0x54bb
movq %rcx, (%r14)
movq -0x58(%rbp), %rax
movq %rax, 0x10(%r14)
jmp 0x54c3
movups (%r12), %xmm0
movups %xmm0, (%rax)
movq -0x60(%rbp), %rax
movq %rax, 0x8(%r14)
movq %r12, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movb $0x0, -0x58(%rbp)
movq 0x10aee(%rip), %rsi     # 0x15fd0
leaq -0x580(%rbp), %rdi
callq 0x3400
leaq -0x508(%rbp), %rdi
callq 0x3120
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x550f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x5524
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x100(%rbp), %rdi
callq 0x9012
leaq -0x190(%rbp), %rdi
callq 0x9184
movq %r14, %rax
addq $0x6e8, %rsp            # imm = 0x6E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5553
movq %rax, %r14
jmp 0x5974
jmp 0x5868
jmp 0x5783
jmp 0x5783
movq %rax, %r14
jmp 0x59c9
jmp 0x58bf
jmp 0x55a9
movq %rax, %r14
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x58c2
movq -0x90(%rbp), %rsi
jmp 0x585c
jmp 0x58bf
jmp 0x58bf
movq %rax, %r14
leaq -0xa0(%rbp), %rdi
callq 0xa186
jmp 0x58c2
movq %rax, %r14
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x58c2
movq -0x240(%rbp), %rsi
jmp 0x585c
jmp 0x5783
jmp 0x58bf
movq %rax, %r14
jmp 0x5665
movq %rax, %r14
jmp 0x5659
movq %rax, %r14
jmp 0x564d
movq %rax, %r14
jmp 0x5641
movq %rax, %r14
jmp 0x5635
movq %rax, %r14
jmp 0x5613
movq %rax, %r14
leaq -0x400(%rbp), %rdi
callq 0xa186
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x5635
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x698(%rbp), %rdi
callq 0xa186
leaq -0x6d0(%rbp), %rdi
callq 0xa186
leaq -0x3a8(%rbp), %rdi
callq 0xa186
leaq -0xa0(%rbp), %rdi
callq 0xa186
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x58c2
movq -0x128(%rbp), %rsi
jmp 0x585c
movq %rax, %r14
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x260(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x280(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x2b0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x2a0(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x2c0(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x2f0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x2e0(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x310(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x300(%rbp), %rsi
jmp 0x5771
jmp 0x5868
movq %rax, %r14
movq -0x330(%rbp), %rdi
cmpq %rbx, %rdi
je 0x586b
movq -0x320(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x586b
jmp 0x5868
movq %rax, %r14
jmp 0x5993
movq %rax, %r14
jmp 0x57f7
movq %rax, %r14
jmp 0x5803
movq %rax, %r14
leaq -0x400(%rbp), %rdi
callq 0xa186
jmp 0x57a9
movq %rax, %r14
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x57df
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x57df
movq %rax, %r14
jmp 0x580f
jmp 0x58bf
movq %rax, %r14
jmp 0x57eb
movq %rax, %r14
leaq -0x5b8(%rbp), %rdi
callq 0xa186
leaq -0x5f0(%rbp), %rdi
callq 0xa186
leaq -0x3a8(%rbp), %rdi
callq 0xa186
leaq -0xa0(%rbp), %rdi
callq 0xa186
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x5974
movq -0x128(%rbp), %rsi
jmp 0x596c
jmp 0x58bf
movq %rax, %r14
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x58c2
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x58c2
jmp 0x58bf
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x5993
movq %rax, %r14
leaq -0x138(%rbp), %rdi
callq 0xa186
jmp 0x588c
movq %rax, %r14
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x58ae
movq -0x220(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
leaq -0x1a0(%rbp), %rbx
jmp 0x58da
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x5974
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
leaq -0x628(%rbp), %rdi
callq 0xa186
jmp 0x5929
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x594d
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x5959
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x5941
jmp 0x5911
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
jmp 0x5935
movq %rax, %r14
leaq -0x58(%rbp), %r12
leaq -0x38(%rbp), %r13
leaq -0x660(%rbp), %rdi
callq 0xa186
leaq -0x400(%rbp), %rdi
callq 0xa186
leaq -0x3a8(%rbp), %rdi
callq 0xa186
leaq -0xa0(%rbp), %rdi
callq 0xa186
movq -0x1b0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x5974
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x3300
movq 0x10655(%rip), %rsi     # 0x15fd0
leaq -0x580(%rbp), %rdi
callq 0x3400
leaq -0x508(%rbp), %rdi
callq 0x3120
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x59a8
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x59bd
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x100(%rbp), %rdi
callq 0x9012
leaq -0x190(%rbp), %rdi
callq 0x9184
movq %r14, %rdi
callq 0x3520