// File: /workspace/github_cpp_makefile_star2_O3/bothaynahazem[P]AsuMathLabG13/main.cpp
// Function: main
int main(int argc,char* argv[])
{
string matrix_char;
ifstream infile(argv[1]);
string contents[100];
int numberoflines=0;
int i=0;
while(getline(infile,contents[i]))// getting file contents
    {

        int pos =contents[i].find("[");
        int nbracketso =0;
        int nbracketsc =0;
        for(int j=0;j<contents[i].length();j++)
        {
            if(contents[i][j]=='[')
                nbracketso++;
            else if(contents[i][j]==']')
                nbracketsc++;
        }
        if(pos!=string::npos && nbracketso != nbracketsc)
        {
             getline(infile,contents[i+1]);
             contents[i] = contents[i] + ";" + contents[i+1];
        }


        if(contents[i]=="\n"||contents[i] == "\r" || contents[i] == "\t"||contents[i].find_first_not_of(' ') == std::string::npos)
        {
            i--;
            numberoflines--;
        }

        numberoflines++;

        i++;
    }


	int pos1;
for (i=0; i<numberoflines;i++)
{
    try
    {
int openbrackets =0, closedbrackets=0;
for (int h=0; h<contents[i].length();h++)
        {
        if(contents[i][h]=='(')
            openbrackets++;
        else if(contents[i][h]==')')
            closedbrackets++;
        }
    if (openbrackets!=closedbrackets)
        {
           throw("Syntax Error");
        }
	if (contents[i].find('[', 0) == string::npos && contents[i].find("ones", 0) == string::npos && contents[i].find("zeros", 0) == string::npos && contents[i].find("eye", 0) == string::npos && contents[i].find("rand", 0) == string::npos) //Only math expression
	{
	    string m;
	    string e;
		matrix_char = contents[i].substr(0, 1);
		if (contents[i].find('=',0)!=string::npos)
		{if (contents[i][contents[i].length()-1]!=';')
			m = contents[i].substr(contents[i].find('=', 0)+1, contents[i].length() - contents[i].find('=', 0)-1);
		else
			m = contents[i].substr(contents[i].find('=', 0) + 1, contents[i].length() - contents[i].find('=', 0)-2);}
        else{
            m = contents[i].substr(0,1);
        }
        e = evaluate(m);
        Matrix X(e);
        variables_names[in_cntr] = matrix_char;
        input_matrices[in_cntr] = X;
        in_cntr++;
	}
	else if (contents[i].find('[', 0) != string::npos)
	{
	while (contents[i].find_first_of("+-*/^", contents[i].find('[', 0) + 1)!= string::npos) //find and replace all math expressions if square bracket is found
	{
		string d;
		int begin, end;
		pos1 = contents[i].find_first_of("+-*/^", contents[i].find('[', 0) + 1);
		begin = contents[i].find_last_of(" [];", pos1);
		end = contents[i].find_first_of(" [];", pos1);
		d = contents[i].substr(begin+1, end-begin-1);
		string f = evaluate(d);
		if(f.find("-",0)!=string::npos)
            f.replace(f.find("-",0),1,"$");
		contents[i].replace(begin+1, end - begin-1, f);
	}
	while(contents[i].find('$',0)!=string::npos)
        contents[i].replace(contents[i].find('$',0),1,"-");
	matrix_char = contents[i].substr(0,1);
	for (int k=1;k<contents[i].length();k++)
    {
        if(isLetter(contents[i].substr(k,1)))
        {
            for (int j=0;j<100;j++)
            {
                if (contents[i].substr(k,1)==variables_names[j])
                {
                    int opened_bracket = contents[i].find('[',k);
                    int closed_bracket = contents[i].rfind(']',k);
                    string space = contents[i].substr(k+1,opened_bracket-k-1);
                    string space2 = contents[i].substr(closed_bracket+1,k-closed_bracket-1);
                    if(space.find_first_not_of(' ') == std::string::npos || space2.find_first_not_of(' ') == std::string::npos)
                    contents[i].replace(k,1,input_matrices[j].getAltString());
                    else
                     contents[i].replace(k,1,input_matrices[j].getAltStringNoB());
                    break;
                }

            }
        }
    }
	string x;
    x = contents[i].substr(contents[i].find('[',0),contents[i].rfind(']')-contents[i].find('[',0)+1);
    x = concatenate(x);
    Matrix X(x);
    input_matrices[in_cntr] = X;
    variables_names[in_cntr] = matrix_char;
    in_cntr++;
	}

	else if (contents[i].find("rand", 0) != string::npos)
	{
	    matrix_char = contents[i].substr(0,1);
		int nR = atof((contents[i].substr(contents[i].find('(', 0) + 1, 1).c_str()));
		int nC = atof((contents[i].substr(contents[i].find(',', 0) + 1, contents[i].find(')',0)-contents[i].find(',', 0) + 1)).c_str());
		Matrix X(nR, nC, MI_RAND,0.0);
		variables_names[in_cntr] = matrix_char;
        input_matrices[in_cntr] = X;
        in_cntr++;
	}
	else if (contents[i].find("eye", 0) != string::npos)
	{
	    matrix_char = contents[i].substr(0,1);
		int nR = atof((contents[i].substr(contents[i].find('(', 0) + 1, 1).c_str()));
		int nC = atof((contents[i].substr(contents[i].find(',', 0) + 1, contents[i].find(')',0)-contents[i].find(',', 0) + 1)).c_str());
		Matrix X(nR, nC, MI_EYE,0.0);
		variables_names[in_cntr] = matrix_char;
        input_matrices[in_cntr] = X;
        in_cntr++;
	}
	else if (contents[i].find("zeros", 0) != string::npos)
	{
	    matrix_char = contents[i].substr(0,1);
		int nR = atof((contents[i].substr(contents[i].find('(', 0) + 1, 1).c_str()));
		int nC = atof((contents[i].substr(contents[i].find(',', 0) + 1, contents[i].find(')',0)-contents[i].find(',', 0) + 1)).c_str());
		Matrix X(nR, nC, MI_ZEROS,0.0);
		variables_names[in_cntr] = matrix_char;
        input_matrices[in_cntr] = X;
        in_cntr++;
	}
	else if (contents[i].find("ones", 0) != string::npos)
	{
	    matrix_char = contents[i].substr(0,1);
		int nR = atof((contents[i].substr(contents[i].find('(', 0) + 1, 1).c_str()));
		int nC = atof((contents[i].substr(contents[i].find(',', 0) + 1, contents[i].find(')',0)-contents[i].find(',', 0) + 1)).c_str());
		Matrix X(nR, nC, MI_ONES,0.0);

        variables_names[in_cntr] = matrix_char;
        input_matrices[in_cntr] = X;
        in_cntr++;
	}

	//Output all the results
if(contents[i][contents[i].length()-2]!=';') //might be length()-1 due to difference in compilers ('\n') is counted in some compilers
cout << variables_names[in_cntr-1] << " = " << endl << input_matrices[in_cntr-1] << endl;
    }
    catch(char const* s)
    {
        cout<< "Error: " << s << endl;
    }
	}


return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1158, %rsp           # imm = 0x1158
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x8(%rsi), %rsi
leaq -0x4f8(%rbp), %rbx
movq %rbx, %rdi
movl $0x8, %edx
callq 0x3550
movl $0x10, %eax
leaq (%rax,%rbp), %rcx
addq $-0x1180, %rcx          # imm = 0xEE80
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rax
cmpq $0xc90, %rax            # imm = 0xC90
jne 0x77a8
xorl %r14d, %r14d
xorl %r15d, %r15d
movq -0x4f8(%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
movslq %r14d, %r13
shlq $0x5, %r13
leaq -0x1180(,%r13), %r12
addq %rbp, %r12
movsbl %al, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3560
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x79f1
movl $0x1, %ecx
movq %r12, %rdi
leaq 0x9889(%rip), %rsi      # 0x110b6
xorl %edx, %edx
callq 0x34e0
movq 0x8(%r12), %rcx
testq %rcx, %rcx
je 0x7992
movq (%r12), %rdi
xorl %r8d, %r8d
xorl %edx, %edx
xorl %esi, %esi
movb (%rdi,%r8), %r9b
xorl %r10d, %r10d
cmpb $0x5b, %r9b
sete %r10b
xorl %r11d, %r11d
cmpb $0x5d, %r9b
sete %r11b
addl %r11d, %esi
addl %r10d, %edx
incq %r8
cmpq %r8, %rcx
jne 0x784d
cmpl $-0x1, %eax
je 0x7992
cmpl %esi, %edx
je 0x7992
movl %r15d, -0x50(%rbp)
movq -0x4f8(%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
leaq -0x1180(%rbp), %rcx
addq %rcx, %r13
addq $0x20, %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3560
movq %rbx, %r15
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
movq %rbx, %rdi
leaq 0x97f9(%rip), %rsi      # 0x110e4
callq 0x3590
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x3100
leaq -0x78(%rbp), %r13
movq %r13, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r15, %rbx
je 0x792d
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x7937
movupd (%rcx), %xmm0
movupd %xmm0, (%r13)
movl -0x50(%rbp), %r15d
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, %rdi
leaq -0x88(%rbp), %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
cmpq %r13, %rdi
je 0x7979
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7992
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r12, %rdi
leaq 0x9863(%rip), %rsi      # 0x111ff
callq 0x30e0
testl %eax, %eax
je 0x79e0
movq %r12, %rdi
leaq 0x9709(%rip), %rsi      # 0x110b8
callq 0x30e0
testl %eax, %eax
je 0x79e0
movq %r12, %rdi
leaq 0x985f(%rip), %rsi      # 0x11221
callq 0x30e0
testl %eax, %eax
je 0x79e0
movq %r12, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x32a0
cmpq $-0x1, %rax
jne 0x79e6
decl %r14d
decl %r15d
incl %r15d
incl %r14d
jmp 0x77d4
testl %r15d, %r15d
jle 0x8f06
movl %r15d, %eax
movq %rax, -0x178(%rbp)
leaq -0x88(%rbp), %r14
leaq -0x48(%rbp), %r12
xorl %eax, %eax
movq %rax, -0x180(%rbp)
shlq $0x5, %rax
leaq (%rax,%rbp), %r13
addq $-0x1180, %r13          # imm = 0xEE80
movq 0x8(%r13), %rax
testq %rax, %rax
je 0x7a6a
movq (%r13), %rcx
xorl %edx, %edx
xorl %esi, %esi
xorl %edi, %edi
movb (%rcx,%rdx), %r8b
xorl %r9d, %r9d
cmpb $0x28, %r8b
sete %r9b
xorl %r10d, %r10d
cmpb $0x29, %r8b
sete %r10b
addl %r10d, %edi
addl %r9d, %esi
incq %rdx
cmpq %rdx, %rax
jne 0x7a3a
cmpl %edi, %esi
jne 0x8c0a
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
jne 0x7af3
movl $0x4, %ecx
movq %r13, %rdi
leaq 0x9639(%rip), %rsi      # 0x110c7
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
jne 0x7af3
movl $0x5, %ecx
movq %r13, %rdi
leaq 0x9622(%rip), %rsi      # 0x110cc
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
jne 0x7af3
movl $0x3, %ecx
movq %r13, %rdi
leaq 0x960c(%rip), %rsi      # 0x110d2
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
jne 0x7af3
movl $0x4, %ecx
movq %r13, %rdi
leaq 0x95f4(%rip), %rsi      # 0x110d6
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x8963
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
je 0x820c
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x5, %ecx
movq %r13, %rdi
leaq 0x95ad(%rip), %rsi      # 0x110db
callq 0x3420
cmpq $-0x1, %rax
movq %r13, -0x50(%rbp)
je 0x7d67
leaq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq $0x0, -0x80(%rbp)
movb $0x0, -0x78(%rbp)
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x5, %ecx
movq %r13, %rdi
leaq 0x9561(%rip), %rsi      # 0x110db
callq 0x3420
movslq %eax, %rbx
movl $0x4, %ecx
movq %r13, %rdi
leaq 0x9550(%rip), %r15      # 0x110e1
movq %r15, %rsi
movq %rbx, %rdx
callq 0x35c0
movq %rax, %r12
movl $0x4, %ecx
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x3420
movq %r12, %rbx
shlq $0x20, %rbx
movabsq $0x100000000, %rcx      # imm = 0x100000000
addq %rcx, %rbx
sarq $0x20, %rbx
notl %r12d
addl %r12d, %eax
movslq %eax, %r12
movq %r13, %rsi
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x3320
movq %r14, %rdi
movq %r13, %rsi
callq 0x3360
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7c0c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x120(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x130(%rbp), %r15
movq %r15, %rdi
callq 0x934c
movq -0x50(%rbp), %r13
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x423b
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x7c69
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x3300
movl $0x1, %ecx
leaq -0x48(%rbp), %rdi
leaq 0x946d(%rip), %rsi      # 0x110e6
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x7cbd
movl $0x1, %ecx
leaq -0x48(%rbp), %r15
movq %r15, %rdi
leaq 0x944d(%rip), %rsi      # 0x110e6
xorl %edx, %edx
callq 0x34e0
movl $0x1, %edx
movl $0x1, %r8d
movq %r15, %rdi
movq %rax, %rsi
leaq 0x9430(%rip), %rcx      # 0x110e8
callq 0x3330
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %r8
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x3330
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7cec
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x7d08
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x5, %ecx
movq %r13, %rdi
leaq 0x93b1(%rip), %rsi      # 0x110db
callq 0x3420
cmpq $-0x1, %rax
jne 0x7b41
jmp 0x7d67
movq %r13, %rdi
movl $0x24, %esi
xorl %edx, %edx
callq 0x33b0
movl $0x1, %edx
movl $0x1, %r8d
movq %r13, %rdi
movq %rax, %rsi
leaq 0x9384(%rip), %rcx      # 0x110e6
callq 0x3330
movq %r13, %rdi
movl $0x24, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
jne 0x7d3b
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
leaq -0x48(%rbp), %r12
je 0x7dbd
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
cmpq $0x2, 0x8(%r13)
jb 0x8033
movl $0x1, %ebx
movl $0x1, %ecx
leaq -0x1a0(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x3320
movq -0x1a0(%rbp), %rdi
movb (%rdi), %r14b
leaq -0x190(%rbp), %rax
cmpq %rax, %rdi
je 0x7e09
movq -0x190(%rbp), %rsi
incq %rsi
callq 0x3300
addb $-0x41, %r14b
cmpb $0x19, %r14b
ja 0x801b
movl $0x8, %r14d
xorl %r13d, %r13d
movl $0x1, %ecx
leaq -0x88(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x3320
movq 0xe4e1(%rip), %rax      # 0x16320
movq -0x80(%rbp), %rdx
cmpq (%rax,%r14), %rdx
jne 0x7e6a
movq -0x88(%rbp), %r12
testq %rdx, %rdx
je 0x7e76
movq -0x8(%rax,%r14), %rsi
movq %r12, %rdi
callq 0x3310
testl %eax, %eax
sete %r15b
jmp 0x7e79
movq -0x88(%rbp), %r12
xorl %r15d, %r15d
jmp 0x7e79
movb $0x1, %r15b
leaq -0x78(%rbp), %rax
cmpq %rax, %r12
je 0x7e91
movq -0x78(%rbp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x3300
testb %r15b, %r15b
jne 0x7eb4
addq $-0x38, %r13
addq $0x20, %r14
cmpq $0xc88, %r14            # imm = 0xC88
leaq -0x48(%rbp), %r12
jne 0x7e20
jmp 0x801b
movq -0x50(%rbp), %r15
movq %r15, %rdi
movl $0x5b, %esi
movq %rbx, %rdx
callq 0x33b0
movq %rax, %r14
movq %r15, %rdi
movl $0x5d, %esi
movq %rbx, %rdx
callq 0x35b0
movq %rax, %r12
leaq 0x1(%rbx), %rdx
movl %ebx, %eax
notl %eax
addl %eax, %r14d
movslq %r14d, %rcx
leaq -0x88(%rbp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x3320
movq %r12, %rdx
shlq $0x20, %rdx
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rdx
sarq $0x20, %rdx
notl %r12d
addl %ebx, %r12d
movslq %r12d, %rcx
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x3320
movq %r14, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x32a0
cmpq $-0x1, %rax
je 0x7f8f
movq %r12, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x32a0
cmpq $-0x1, %rax
je 0x7f8f
movq 0xe3b9(%rip), %rsi      # 0x16318
subq %r13, %rsi
leaq -0xb0(%rbp), %rdi
callq 0xb7de
movq -0xb0(%rbp), %rcx
movq -0xa8(%rbp), %r8
movl $0x1, %edx
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3330
jmp 0x7fc4
movq 0xe382(%rip), %rsi      # 0x16318
subq %r13, %rsi
leaq -0xb0(%rbp), %rdi
callq 0xb6c4
movq -0xb0(%rbp), %rcx
movq -0xa8(%rbp), %r8
movl $0x1, %edx
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3330
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x7fe6
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7fff
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x801b
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
incq %rbx
movq -0x50(%rbp), %r13
cmpq %rbx, 0x8(%r13)
leaq -0x88(%rbp), %r14
ja 0x7dcd
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movb $0x0, -0x38(%rbp)
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
movq %rax, %rbx
movq %r13, %rdi
movl $0x5d, %esi
movq $-0x1, %rdx
callq 0x35b0
movq %rax, %r12
movq %r13, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r12
incq %r12
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x3320
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x80c1
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x100(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
movq %r14, %rdi
movq %rbx, %rsi
callq 0x397e
movq %r12, %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x811b
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x813d
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0xf0(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa83c
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x8192
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x3300
movslq 0xe18f(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xe174(%rip), %rsi      # 0x16318
leaq -0x2b8(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
movq %rbx, %rdi
callq 0xa186
movslq 0xe163(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xe150(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
callq 0x31c0
incl 0xe146(%rip)            # 0x16328
movq %r14, %rdi
callq 0xa186
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x8882
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8882
movl $0x4, %ecx
movq %r13, %rdi
leaq 0x8ebb(%rip), %rsi      # 0x110d6
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x83a6
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8269
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x28, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
movsd %xmm0, -0x50(%rbp)
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x82b8
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x3300
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq %r13, %rdi
movl $0x29, %esi
xorl %edx, %edx
callq 0x33b0
movq %rax, %r14
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r14
incq %r14
leaq -0x88(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x833e
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
movsd %xmm0, -0x90(%rbp)
callq 0x3300
movsd -0x90(%rbp), %xmm0
cvttsd2si -0x50(%rbp), %esi
cvttsd2si %xmm0, %edx
xorpd %xmm0, %xmm0
leaq -0x88(%rbp), %r14
movq %r14, %rdi
movl $0x3, %ecx
callq 0xa262
movslq 0xdfc2(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xdfaf(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
leaq -0x280(%rbp), %rbx
callq 0x31c0
movslq 0xdf9d(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xdf82(%rip), %rsi      # 0x16318
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
jmp 0x886c
movl $0x3, %ecx
movq %r13, %rdi
leaq 0x8d1d(%rip), %rsi      # 0x110d2
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x8540
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8403
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x28, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
movsd %xmm0, -0x50(%rbp)
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x8452
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x3300
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq %r13, %rdi
movl $0x29, %esi
xorl %edx, %edx
callq 0x33b0
movq %rax, %r14
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r14
incq %r14
leaq -0x88(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x84d8
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
movsd %xmm0, -0x90(%rbp)
callq 0x3300
movsd -0x90(%rbp), %xmm0
cvttsd2si -0x50(%rbp), %esi
cvttsd2si %xmm0, %edx
xorpd %xmm0, %xmm0
leaq -0x88(%rbp), %r14
movq %r14, %rdi
movl $0x2, %ecx
callq 0xa262
movslq 0xde28(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xde15(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
leaq -0x248(%rbp), %rbx
callq 0x31c0
movslq 0xde03(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xdde8(%rip), %rsi      # 0x16318
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
jmp 0x886c
movl $0x5, %ecx
movq %r13, %rdi
leaq 0x8b7d(%rip), %rsi      # 0x110cc
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x86d7
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x859d
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x28, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
movsd %xmm0, -0x50(%rbp)
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x85ec
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x3300
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq %r13, %rdi
movl $0x29, %esi
xorl %edx, %edx
callq 0x33b0
movq %rax, %r14
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r14
incq %r14
leaq -0x88(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x8672
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
movsd %xmm0, -0x90(%rbp)
callq 0x3300
movsd -0x90(%rbp), %xmm0
cvttsd2si -0x50(%rbp), %esi
cvttsd2si %xmm0, %edx
xorpd %xmm0, %xmm0
leaq -0x88(%rbp), %r14
movq %r14, %rdi
xorl %ecx, %ecx
callq 0xa262
movslq 0xdc91(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xdc7e(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
leaq -0x210(%rbp), %rbx
callq 0x31c0
movslq 0xdc6c(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xdc51(%rip), %rsi      # 0x16318
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
jmp 0x886c
movl $0x4, %ecx
movq %r13, %rdi
leaq 0x89e1(%rip), %rsi      # 0x110c7
xorl %edx, %edx
callq 0x34e0
cmpq $-0x1, %rax
je 0x8882
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8734
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x28, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rdx
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
movsd %xmm0, -0x50(%rbp)
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x8783
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0x3300
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq %r13, %rdi
movl $0x29, %esi
xorl %edx, %edx
callq 0x33b0
movq %rax, %r14
movq %r13, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r14
incq %r14
leaq -0x88(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x3320
movq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0x3370
leaq -0x78(%rbp), %rax
cmpq %rax, %rbx
je 0x8809
movq -0x78(%rbp), %rsi
incq %rsi
movq %rbx, %rdi
movsd %xmm0, -0x90(%rbp)
callq 0x3300
movsd -0x90(%rbp), %xmm0
cvttsd2si -0x50(%rbp), %esi
cvttsd2si %xmm0, %edx
xorpd %xmm0, %xmm0
leaq -0x88(%rbp), %r14
movq %r14, %rdi
movl $0x1, %ecx
callq 0xa262
movslq 0xdaf7(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xdae4(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
leaq -0x1d8(%rbp), %rbx
callq 0x31c0
movslq 0xdad2(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xdab7(%rip), %rsi      # 0x16318
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
movq %rbx, %rdi
callq 0xa186
incl 0xdaae(%rip)            # 0x16328
movq %r14, %rdi
callq 0xa186
movq (%r13), %rax
movq 0x8(%r13), %rcx
cmpb $0x3b, -0x2(%rax,%rcx)
je 0x8947
movq 0xda84(%rip), %rax      # 0x16320
movslq 0xda85(%rip), %rcx      # 0x16328
shlq $0x5, %rcx
movq -0x20(%rax,%rcx), %rsi
movq -0x18(%rax,%rcx), %rdx
movq 0xd720(%rip), %rdi      # 0x15fd8
callq 0x3340
movq %rax, %rbx
movl $0x3, %edx
movq %rax, %rdi
leaq 0x881b(%rip), %rsi      # 0x110ea
callq 0x3340
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3210
movq 0xda16(%rip), %rcx      # 0x16318
movslq 0xda1f(%rip), %rdx      # 0x16328
imulq $0x38, %rdx, %rdx
leaq (%rcx,%rdx), %rsi
addq $-0x38, %rsi
movq %rax, %rdi
callq 0xe807
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3210
movq -0x180(%rbp), %rax
incq %rax
cmpq -0x178(%rbp), %rax
jne 0x7a11
jmp 0x8f06
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
xorl %ecx, %ecx
movq %rcx, -0x40(%rbp)
movb %cl, -0x38(%rbp)
leaq -0xa0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq %rcx, -0xa8(%rbp)
movb %cl, -0xa0(%rbp)
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0xd0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x89cc
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r13, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
je 0x8a30
movq (%r13), %rax
movq 0x8(%r13), %rcx
cmpb $0x3b, -0x1(%rax,%rcx)
jne 0x8a44
movq %r13, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq 0x8(%r13), %r12
movq %r13, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0x33b0
subq %rax, %r12
addq $-0x2, %r12
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x3320
jmp 0x8a81
movl $0x1, %ecx
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3320
jmp 0x8a85
movq %r13, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rbx
movq 0x8(%r13), %r12
movq %r13, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0x33b0
notq %rax
addq %rax, %r12
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0x3320
leaq -0x48(%rbp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8aac
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x160(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x170(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
movq %r14, %rdi
movq %rbx, %rsi
callq 0x423b
leaq -0xb0(%rbp), %rdi
movq %r14, %rsi
callq 0x3360
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8b0a
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x8b2c
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x140(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x150(%rbp), %rbx
movq %rbx, %rdi
callq 0x934c
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa83c
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x8b87
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x3300
movslq 0xd79a(%rip), %rdi      # 0x16328
shlq $0x5, %rdi
addq 0xd787(%rip), %rdi      # 0x16320
leaq -0xd0(%rbp), %rsi
leaq -0x2f0(%rbp), %rbx
callq 0x31c0
movslq 0xd775(%rip), %rax      # 0x16328
imulq $0x38, %rax, %rsi
addq 0xd75a(%rip), %rsi      # 0x16318
movq %rbx, %rdi
movq %r14, %rdx
callq 0xb8f2
movq %rbx, %rdi
callq 0xa186
incl 0xd751(%rip)            # 0x16328
movq %r14, %rdi
callq 0xa186
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x81ea
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x81ea
movl $0x8, %edi
callq 0x3170
leaq 0x849f(%rip), %rcx      # 0x110ba
movq %rcx, (%rax)
movq %rax, %rdi
movq 0xd398(%rip), %rsi      # 0x15fc0
xorl %edx, %edx
callq 0x34d0
jmp 0x8f79
jmp 0x8c8a
jmp 0x8c8a
jmp 0x8c8a
movq %rdx, %r15
movq %rax, %rbx
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x8cb4
movq -0x140(%rbp), %rsi
jmp 0x8c7e
jmp 0x8c8a
movq %rdx, %r15
movq %rax, %rbx
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x8cb4
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8cb4
jmp 0x8c8a
movq %rdx, %r15
movq %rax, %rbx
jmp 0x8cb4
jmp 0x8e1e
jmp 0x8eab
jmp 0x8e1e
jmp 0x8e1e
movq %rdx, %r15
movq %rax, %rbx
movq %r14, %rdi
callq 0xa186
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x8d9b
movq -0xa0(%rbp), %rsi
jmp 0x8d70
jmp 0x8d19
jmp 0x8e1e
jmp 0x8eab
jmp 0x8e1e
jmp 0x8e1e
jmp 0x8d19
jmp 0x8e1e
jmp 0x8eab
jmp 0x8e1e
jmp 0x8e1e
jmp 0x8d19
jmp 0x8e1e
jmp 0x8eab
jmp 0x8e1e
jmp 0x8e1e
movq %rdx, %r15
movq %rax, %rbx
movq %r14, %rdi
callq 0xa186
jmp 0x8eb8
movq %rdx, %r15
movq %rax, %rbx
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x8d9b
movq -0xe0(%rbp), %rsi
jmp 0x8d70
jmp 0x8d7c
movq %rdx, %r15
movq %rax, %rbx
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x8d9b
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8d9b
jmp 0x8d7c
movq %rdx, %r15
movq %rax, %rbx
jmp 0x8d9b
jmp 0x8e5e
jmp 0x8dc0
jmp 0x8dea
movq %rdx, %r15
movq %rax, %rbx
movq %r14, %rdi
callq 0xa186
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x8db4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x88(%rbp), %r14
jmp 0x8e64
movq %rdx, %r15
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x8df0
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8df0
movq %rdx, %r15
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x8e09
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x88(%rbp), %r14
jmp 0x8e89
movq %rdx, %r15
movq %rax, %rbx
jmp 0x8e8d
jmp 0x8e5e
jmp 0x8e1e
movq %rdx, %r15
movq %rax, %rbx
jmp 0x8eb8
movq %rdx, %r15
movq %rax, %rbx
movq %r13, %r12
jmp 0x8e8d
movq %rdx, %r15
movq %rax, %rbx
jmp 0x8e89
movq %rdx, %r15
movq %rax, %rbx
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x8e89
movq -0x120(%rbp), %rsi
jmp 0x8e81
movq %rdx, %r15
movq %rax, %rbx
leaq -0x48(%rbp), %r12
jmp 0x8eb8
movq %rdx, %r15
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x8e89
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
leaq -0x48(%rbp), %r12
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x8eb8
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8eb8
movq %rdx, %r15
movq %rax, %rbx
leaq -0x88(%rbp), %r14
cmpl $0x1, %r15d
jne 0x8f74
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
movl $0x7, %edx
movq 0xd0ff(%rip), %rdi      # 0x15fd8
leaq 0x820e(%rip), %rsi      # 0x110ee
callq 0x3340
movq 0xd0ec(%rip), %rdi      # 0x15fd8
movq %rbx, %rsi
callq 0x32e0
movq %rax, %rdi
callq 0x3160
callq 0x3490
jmp 0x8947
movq $-0xc80, %rbx           # imm = 0xF380
leaq -0x510(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x8f28
movq (%r14), %rsi
incq %rsi
callq 0x3300
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x8f14
leaq -0x4f8(%rbp), %rdi
callq 0x30b0
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x8f60
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x3300
xorl %eax, %eax
addq $0x1158, %rsp           # imm = 0x1158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %r15
jmp 0x8faf
movq %rax, %r15
callq 0x3490
jmp 0x8faf
movq %rax, %r15
jmp 0x8fe7
jmp 0x8f8a
movq %rax, %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x8faf
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0x8faf
jmp 0x8fac
jmp 0x8fac
movq %rax, %r15
movq $-0xc80, %rbx           # imm = 0xF380
leaq -0x510(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x8fd1
movq (%r14), %rsi
incq %rsi
callq 0x3300
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x8fbd
leaq -0x4f8(%rbp), %rdi
callq 0x30b0
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x9009
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x3300
movq %r15, %rdi
callq 0x3520
nop