// File: srajangarg[P]raytracer/src/core/mathexpr.cpp
// Function: ROperation::ROperation(char const*, int, RVar**, int, RFunction**)
ROperation::ROperation(const char*sp,int nvar,PRVar*ppvarp,int nfuncp,PRFunction*ppfuncp)
{
  ValC=ErrVal;mmb1=NULL;mmb2=NULL;pvar=NULL;op=ErrOp;pvarval=NULL;containfuncflag=0;pfunc=NULL;pinstr=NULL;pvals=NULL;ppile=NULL;pfuncpile=NULL;
  int i,j,k,l;signed char flag=1;
  char*s=CopyStr(sp),*s1=NULL,*s2=NULL;
  SimplifyStr(s);if(!s[0]||!strcmp(s,"Error")){goto fin;}
  while(s[0]==':'||s[0]==';'){
    s1=CopyStr(s+1);delete[]s;s=s1;s1=NULL;
    SimplifyStr(s);if(!s[0]||!strcmp(s,"Error")){goto fin;}
  }
  if(IsTNumeric(s)){op=Num;ValC=atof(s);mmb1=NULL;mmb2=NULL;goto fin;};
  if(EqStr(s,"pi")||EqStr(s,"PI")||EqStr(s,"Pi"))
    {op=Num;ValC=3.141592653589793238462643383279L;mmb1=NULL;mmb2=NULL;goto fin;};
	if(IsFunction(s,0,nfuncp,ppfuncp)<IsVar(s,0,nvar,ppvarp))
		for(i=0;i<nvar;i++)if(EqStr(s,(*(ppvarp+i))->name))
		{pvar=ppvarp[i];pvarval=pvar->pval;op=Var;mmb1=NULL;mmb2=NULL;goto fin;};
	for(k=0;s[k];k++){
    if(s[k]=='('){k=SearchCorOpenbracket(s,k);if(k==-1)break;continue;};
    if((l=IsFunction(s,k,nfuncp,ppfuncp))&&l>=IsVar(s,k,nvar,ppvarp)){
      i=k+l;while(s[i]==' ')i++;
      if(s[i]=='('){
				j=SearchCorOpenbracket(s,i);
				if(j!=-1){InsStr(s,i,';');k=j+1;}else break;
      }else if(s[i]!=':'&&s[i]!=';'){InsStr(s,i,':');k=i;}
    }
  }
	IsolateNumbers(s,nvar,ppvarp,nfuncp,ppfuncp);
	if(nvar)IsolateVars(s,nvar,ppvarp,nfuncp,ppfuncp);
  SupprSpaces(s);
  i=SearchOperator(s,Juxt);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=Juxt;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,Add);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=Add;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,Sub);
  if(i!=-1){
    s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
    op=Sub;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
    mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  if(s[0]=='-'){s2=MidStr(s,1,strlen(s)-1);
  op=Opp;mmb1=NULL;
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  for(i=0;s[i];i++){
		if(s[i]=='('){i=SearchCorOpenbracket(s,i);if(i==-1)break;continue;};
		if(IsFunction(s,i,nfuncp,ppfuncp)){
			k=i+IsFunction(s,i,nfuncp,ppfuncp);while(s[k]==' ')k++;
			if(s[k]==';'){
				//	s=DelStr(s,k);
				j=k;while(s[j]!='(')j++;
				j=SearchCorOpenbracket(s,j);
				if(j!=-1){InsStr(s,j,')');InsStr(s,i,'(');i=j+2;}
			}else if(s[k]==':'){
				//	s=DelStr(s,k);
				for(j=k;s[j];j++)
					if(s[j]=='('){j=SearchCorOpenbracket(s,j);break;}
				if(j==-1)break;
				for(j++;s[j];j++){
					if(s[j]=='('){j=SearchCorOpenbracket(s,j);if(j==-1){flag=0;break;};continue;};
					if(IsFunction(s,j,nfuncp,ppfuncp))break;
				}
				if(flag==0){flag=1;break;}
				while(j>i&&s[j-1]!=')')j--;if(j<=i+1)break;
				InsStr(s,i,'(');InsStr(s,j+1,')');
				i=j+1;
			}
		}
  }
  for(i=0;s[i]&&s[i+1];i++)if(s[i]==')'&&s[i+1]=='(')
    InsStr(s,++i,'*');
  if(s[0]=='('&&SearchCorOpenbracket(s,0)==(int)strlen(s)-1){
    if(CompStr(s,1,"exp")){op=Exp;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"abs")){op=Abs;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"sin")){op=Sin;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"cos")){op=Cos;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"tan")){op=Tg;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"log")){op=Ln;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"atg")){op=Atan;s2=MidStr(s,4,strlen(s)-2);}
    else if(CompStr(s,1,"tg")){op=Tg;s2=MidStr(s,3,strlen(s)-2);}
    else if(CompStr(s,1,"ln")){op=Ln;s2=MidStr(s,3,strlen(s)-2);}
    else if(CompStr(s,1,"asin")){op=Asin;s2=MidStr(s,5,strlen(s)-2);}
    else if(CompStr(s,1,"acos")){op=Acos;s2=MidStr(s,5,strlen(s)-2);}
    else if(CompStr(s,1,"atan")){op=Atan;s2=MidStr(s,5,strlen(s)-2);}
    else if(CompStr(s,1,"sqrt")){op=Sqrt;s2=MidStr(s,5,strlen(s)-2);}
    else if(CompStr(s,1,"arcsin")){op=Asin;s2=MidStr(s,7,strlen(s)-2);}
    else if(CompStr(s,1,"arccos")){op=Acos;s2=MidStr(s,7,strlen(s)-2);}
    else if(CompStr(s,1,"arctan")){op=Atan;s2=MidStr(s,7,strlen(s)-2);}
    else if(CompStr(s,1,"arctg")){op=Atan;s2=MidStr(s,6,strlen(s)-2);}
    else {
			for(i=-1,k=0,j=0;j<nfuncp;j++)if(CompStr(s,1,ppfuncp[j]->name)&&k<(int)strlen(ppfuncp[j]->name)){k=strlen(ppfuncp[j]->name);i=j;}
			if(i>-1){
				op=Fun;s2=MidStr(s,strlen(ppfuncp[i]->name)+1,strlen(s)-2);
				pfunc=ppfuncp[i];
			}
		}
		mmb1=NULL;mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);
		if(op==Fun)if(mmb2->NMembers()!=pfunc->nvars){op=ErrOp;mmb1=NULL;mmb2=NULL;goto fin;}
    goto fin;
  };
  i=SearchOperator(s,Mult);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=Mult;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,Div);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=Div;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,Pow);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=Pow;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,NthRoot);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  if(i==0||s[i-1]!=')')
    {op=Sqrt;mmb1=NULL;}else
      {op=NthRoot;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);};
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  i=SearchOperator(s,E10);
  if(i!=-1){s1=MidStr(s,0,i-1);s2=MidStr(s,i+1,strlen(s)-1);
  op=E10;mmb1=new ROperation(s1,nvar,ppvarp,nfuncp,ppfuncp);
  mmb2=new ROperation(s2,nvar,ppvarp,nfuncp,ppfuncp);goto fin;
  };
  op=ErrOp;mmb1=NULL;mmb2=NULL;
fin:
	BuildCode();
	delete[]s;if(s1!=NULL)delete[] s1;if(s2!=NULL)delete[]s2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movsd 0x27c36(%rip), %xmm0    # 0x47958
movsd %xmm0, 0x38(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
movq $0x0, 0x40(%rax)
movl $0x0, 0x24(%rax)
movq $0x0, 0x48(%rax)
movb $0x0, 0x20(%rax)
movq $0x0, 0x50(%rax)
movq $0x0, (%rax)
movq $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
movb $0x1, -0x41(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1afd0
movq %rax, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1f350
movq -0x50(%rbp), %rax
cmpb $0x0, (%rax)
je 0x1fdc1
movq -0x50(%rbp), %rdi
leaq 0x27db4(%rip), %rsi     # 0x47b6b
callq 0x55b0
cmpl $0x0, %eax
jne 0x1fdc6
jmp 0x21753
jmp 0x1fdc8
movq -0x50(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x3a, %ecx
movb %al, -0x79(%rbp)
je 0x1fde9
movq -0x50(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
sete %al
movb %al, -0x79(%rbp)
movb -0x79(%rbp), %al
testb $0x1, %al
jne 0x1fdf2
jmp 0x1fe61
movq -0x50(%rbp), %rdi
addq $0x1, %rdi
callq 0x1afd0
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, %rax
je 0x1fe20
movq -0x88(%rbp), %rdi
callq 0x5520
movq -0x58(%rbp), %rax
movq %rax, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1f350
movq -0x50(%rbp), %rax
cmpb $0x0, (%rax)
je 0x1fe57
movq -0x50(%rbp), %rdi
leaq 0x27d1e(%rip), %rsi     # 0x47b6b
callq 0x55b0
cmpl $0x0, %eax
jne 0x1fe5c
jmp 0x21753
jmp 0x1fdc8
movq -0x50(%rbp), %rdi
callq 0x1f070
cmpb $0x0, %al
je 0x1fea0
movq -0x78(%rbp), %rax
movl $0x2, 0x24(%rax)
movq -0x50(%rbp), %rdi
callq 0x54f0
movq -0x78(%rbp), %rax
movsd %xmm0, 0x38(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
jmp 0x21753
movq -0x50(%rbp), %rdi
leaq 0x27cb7(%rip), %rsi     # 0x47b62
callq 0x1b160
cmpb $0x0, %al
jne 0x1fedc
movq -0x50(%rbp), %rdi
leaq 0x27ca6(%rip), %rsi     # 0x47b65
callq 0x1b160
cmpb $0x0, %al
jne 0x1fedc
movq -0x50(%rbp), %rdi
leaq 0x27c95(%rip), %rsi     # 0x47b68
callq 0x1b160
cmpb $0x0, %al
je 0x1ff09
movq -0x78(%rbp), %rax
movl $0x2, 0x24(%rax)
movsd 0x272d9(%rip), %xmm0    # 0x471c8
movsd %xmm0, 0x38(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
jmp 0x21753
movq -0x50(%rbp), %rdi
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rcx
xorl %esi, %esi
callq 0x1f830
movl %eax, -0x8c(%rbp)
movq -0x50(%rbp), %rdi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
xorl %esi, %esi
callq 0x1f590
movl %eax, %ecx
movl -0x8c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1ffb5
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1ffb3
movq -0x50(%rbp), %rdi
movq -0x20(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rsi
callq 0x1b160
cmpb $0x0, %al
je 0x1ffa6
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movslq -0x34(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq %rcx, 0x40(%rax)
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rcx
movq %rcx, 0x48(%rax)
movl $0x3, 0x24(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
jmp 0x21753
jmp 0x1ffa8
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1ff46
jmp 0x1ffb5
movl $0x0, -0x3c(%rbp)
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x20101
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x1fffe
movq -0x50(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x3c(%rbp)
cmpl $-0x1, -0x3c(%rbp)
jne 0x1fff9
jmp 0x20101
jmp 0x200f3
movq -0x50(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rcx
callq 0x1f830
movl %eax, -0x40(%rbp)
cmpl $0x0, %eax
je 0x200f1
movl -0x40(%rbp), %eax
movl %eax, -0x90(%rbp)
movq -0x50(%rbp), %rdi
movl -0x3c(%rbp), %esi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
callq 0x1f590
movl %eax, %ecx
movl -0x90(%rbp), %eax
cmpl %ecx, %eax
jl 0x200f1
movl -0x3c(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jne 0x2006e
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x20052
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x200b4
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x38(%rbp)
cmpl $-0x1, -0x38(%rbp)
je 0x200b0
movl -0x34(%rbp), %esi
leaq -0x50(%rbp), %rdi
movl $0x3b, %edx
callq 0x1b040
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x200b2
jmp 0x20101
jmp 0x200ef
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
je 0x200ed
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3b, %eax
je 0x200ed
movl -0x34(%rbp), %esi
leaq -0x50(%rbp), %rdi
movl $0x3a, %edx
callq 0x1b040
movl -0x34(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x200ef
jmp 0x200f1
jmp 0x200f3
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1ffbc
movl -0x14(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
movq -0x30(%rbp), %r8
leaq -0x50(%rbp), %rdi
callq 0x1fb40
cmpl $0x0, -0x14(%rbp)
je 0x20135
movl -0x14(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
movq -0x30(%rbp), %r8
leaq -0x50(%rbp), %rdi
callq 0x1f990
leaq -0x50(%rbp), %rdi
callq 0x1ef60
movq -0x50(%rbp), %rdi
movl $0x1, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x20279
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0x9c(%rbp)
callq 0x51c0
movq -0xa8(%rbp), %rdi
movl -0x9c(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x1, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x98(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x201e1
movq -0x78(%rbp), %rax
movq -0x98(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x20221
movq -0x78(%rbp), %rax
movq -0xb0(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0x4, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x203b4
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0xbc(%rbp)
callq 0x51c0
movq -0xc8(%rbp), %rdi
movl -0xbc(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x4, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x2031c
movq -0x78(%rbp), %rax
movq -0xb8(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x2035c
movq -0x78(%rbp), %rax
movq -0xd0(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0xd0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0x5, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x204ef
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0xdc(%rbp)
callq 0x51c0
movq -0xe8(%rbp), %rdi
movl -0xdc(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x5, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x20457
movq -0x78(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x20497
movq -0x78(%rbp), %rax
movq -0xf0(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x205a5
movq -0x50(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x51c0
movq -0x100(%rbp), %rdi
movl %eax, %edx
decl %edx
movl $0x1, %esi
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x6, 0x24(%rax)
movq $0x0, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x2056f
movq -0x78(%rbp), %rax
movq -0xf8(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0xf8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movl $0x0, -0x34(%rbp)
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x2083f
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x205ee
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
jne 0x205e9
jmp 0x2083f
jmp 0x20831
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %esi
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rcx
callq 0x1f830
cmpl $0x0, %eax
je 0x2082f
movl -0x34(%rbp), %eax
movl %eax, -0x104(%rbp)
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %esi
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rcx
callq 0x1f830
movl %eax, %ecx
movl -0x104(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jne 0x2064f
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x20633
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3b, %eax
jne 0x206c7
movl -0x3c(%rbp), %eax
movl %eax, -0x38(%rbp)
movq -0x50(%rbp), %rax
movslq -0x38(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
je 0x20682
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x20666
movq -0x50(%rbp), %rdi
movl -0x38(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x38(%rbp)
cmpl $-0x1, -0x38(%rbp)
je 0x206c2
movl -0x38(%rbp), %esi
leaq -0x50(%rbp), %rdi
movl $0x29, %edx
callq 0x1b040
movl -0x34(%rbp), %esi
leaq -0x50(%rbp), %rdi
movl $0x28, %edx
callq 0x1b040
movl -0x38(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x34(%rbp)
jmp 0x2082d
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3a, %eax
jne 0x2082b
movl -0x3c(%rbp), %eax
movl %eax, -0x38(%rbp)
movq -0x50(%rbp), %rax
movslq -0x38(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x2071f
movq -0x50(%rbp), %rax
movslq -0x38(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x20712
movq -0x50(%rbp), %rdi
movl -0x38(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x38(%rbp)
jmp 0x2071f
jmp 0x20714
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x206e2
cmpl $-0x1, -0x38(%rbp)
jne 0x2072a
jmp 0x2083f
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
movq -0x50(%rbp), %rax
movslq -0x38(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x20796
movq -0x50(%rbp), %rax
movslq -0x38(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x2076f
movq -0x50(%rbp), %rdi
movl -0x38(%rbp), %esi
callq 0x1f0e0
movl %eax, -0x38(%rbp)
cmpl $-0x1, -0x38(%rbp)
jne 0x2076d
movb $0x0, -0x41(%rbp)
jmp 0x20796
jmp 0x2078b
movq -0x50(%rbp), %rdi
movl -0x38(%rbp), %esi
movl -0x24(%rbp), %edx
movq -0x30(%rbp), %rcx
callq 0x1f830
cmpl $0x0, %eax
je 0x20789
jmp 0x20796
jmp 0x2078b
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x20733
movsbl -0x41(%rbp), %eax
cmpl $0x0, %eax
jne 0x207a8
movb $0x1, -0x41(%rbp)
jmp 0x2083f
jmp 0x207aa
movl -0x38(%rbp), %ecx
xorl %eax, %eax
cmpl -0x34(%rbp), %ecx
movb %al, -0x105(%rbp)
jle 0x207d7
movq -0x50(%rbp), %rax
movl -0x38(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x29, %eax
setne %al
movb %al, -0x105(%rbp)
movb -0x105(%rbp), %al
testb $0x1, %al
jne 0x207e3
jmp 0x207ee
movl -0x38(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x207aa
movl -0x38(%rbp), %eax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jg 0x207fd
jmp 0x2083f
movl -0x34(%rbp), %esi
leaq -0x50(%rbp), %rdi
movl $0x28, %edx
callq 0x1b040
movl -0x38(%rbp), %esi
addl $0x1, %esi
leaq -0x50(%rbp), %rdi
movl $0x29, %edx
callq 0x1b040
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x2082d
jmp 0x2082f
jmp 0x20831
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x205ac
movl $0x0, -0x34(%rbp)
movq -0x50(%rbp), %rcx
movslq -0x34(%rbp), %rdx
xorl %eax, %eax
cmpb $0x0, (%rcx,%rdx)
movb %al, -0x106(%rbp)
je 0x20876
movq -0x50(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
cmpb $0x0, (%rax,%rcx)
setne %al
movb %al, -0x106(%rbp)
movb -0x106(%rbp), %al
testb $0x1, %al
jne 0x20882
jmp 0x208d0
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x29, %eax
jne 0x208c0
movq -0x50(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x208c0
movl -0x34(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x34(%rbp)
leaq -0x50(%rbp), %rdi
movl $0x2a, %edx
callq 0x1b040
jmp 0x208c2
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x20846
movq -0x50(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0x210dc
movq -0x50(%rbp), %rdi
xorl %esi, %esi
callq 0x1f0e0
movl %eax, -0x10c(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq %rax, %rcx
movl -0x10c(%rbp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x210dc
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x27202(%rip), %rdx     # 0x47b20
callq 0x1b1f0
cmpb $0x0, %al
je 0x20966
movq -0x78(%rbp), %rax
movl $0x11, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x118(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21027
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x271b6(%rip), %rdx     # 0x47b2c
callq 0x1b1f0
cmpb $0x0, %al
je 0x209be
movq -0x78(%rbp), %rax
movl $0xc, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x120(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21025
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x2716b(%rip), %rdx     # 0x47b39
callq 0x1b1f0
cmpb $0x0, %al
je 0x20a16
movq -0x78(%rbp), %rax
movl $0xd, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x128(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21023
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x2711d(%rip), %rdx     # 0x47b43
callq 0x1b1f0
cmpb $0x0, %al
je 0x20a6e
movq -0x78(%rbp), %rax
movl $0xe, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x130(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21021
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x270c0(%rip), %rdx     # 0x47b3e
callq 0x1b1f0
cmpb $0x0, %al
je 0x20ac6
movq -0x78(%rbp), %rax
movl $0xf, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x138(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2101f
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x2704e(%rip), %rdx     # 0x47b24
callq 0x1b1f0
cmpb $0x0, %al
je 0x20b1e
movq -0x78(%rbp), %rax
movl $0x10, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x140(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2101d
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26ffa(%rip), %rdx     # 0x47b28
callq 0x1b1f0
cmpb $0x0, %al
je 0x20b76
movq -0x78(%rbp), %rax
movl $0x14, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x148(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x4, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2101b
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26fa3(%rip), %rdx     # 0x47b29
callq 0x1b1f0
cmpb $0x0, %al
je 0x20bce
movq -0x78(%rbp), %rax
movl $0xf, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x150(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x3, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21019
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26f52(%rip), %rdx     # 0x47b30
callq 0x1b1f0
cmpb $0x0, %al
je 0x20c26
movq -0x78(%rbp), %rax
movl $0x10, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x158(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x3, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21017
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26f02(%rip), %rdx     # 0x47b38
callq 0x1b1f0
cmpb $0x0, %al
je 0x20c7e
movq -0x78(%rbp), %rax
movl $0x13, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x160(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x5, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21015
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26eb4(%rip), %rdx     # 0x47b42
callq 0x1b1f0
cmpb $0x0, %al
je 0x20cd6
movq -0x78(%rbp), %rax
movl $0x12, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x168(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x5, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21013
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26e57(%rip), %rdx     # 0x47b3d
callq 0x1b1f0
cmpb $0x0, %al
je 0x20d2e
movq -0x78(%rbp), %rax
movl $0x14, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x170(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x5, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21011
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26df5(%rip), %rdx     # 0x47b33
callq 0x1b1f0
cmpb $0x0, %al
je 0x20d86
movq -0x78(%rbp), %rax
movl $0xa, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x178(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x5, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2100f
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26db1(%rip), %rdx     # 0x47b47
callq 0x1b1f0
cmpb $0x0, %al
je 0x20dde
movq -0x78(%rbp), %rax
movl $0x13, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x180(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x7, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2100d
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26d60(%rip), %rdx     # 0x47b4e
callq 0x1b1f0
cmpb $0x0, %al
je 0x20e36
movq -0x78(%rbp), %rax
movl $0x12, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x188(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x7, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x2100b
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26d0f(%rip), %rdx     # 0x47b55
callq 0x1b1f0
cmpb $0x0, %al
je 0x20e8e
movq -0x78(%rbp), %rax
movl $0x14, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x190(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x7, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21009
movq -0x50(%rbp), %rdi
movl $0x1, %esi
leaq 0x26cbe(%rip), %rdx     # 0x47b5c
callq 0x1b1f0
cmpb $0x0, %al
je 0x20ee6
movq -0x78(%rbp), %rax
movl $0x14, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x198(%rbp), %rdi
subq $0x2, %rax
movl %eax, %edx
movl $0x6, %esi
callq 0x1af00
movq %rax, -0x60(%rbp)
jmp 0x21007
movl $0xffffffff, -0x34(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x20f8b
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x80(%rax), %rdx
movl $0x1, %esi
callq 0x1b1f0
cmpb $0x0, %al
je 0x20f7b
movl -0x3c(%rbp), %eax
movl %eax, -0x19c(%rbp)
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x80(%rax), %rdi
callq 0x51c0
movq %rax, %rcx
movl -0x19c(%rbp), %eax
cmpl %ecx, %eax
jge 0x20f7b
movq -0x30(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x80(%rax), %rdi
callq 0x51c0
movl %eax, -0x3c(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x34(%rbp)
jmp 0x20f7d
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x20efb
cmpl $-0x1, -0x34(%rbp)
jle 0x21005
movq -0x78(%rbp), %rax
movl $0x16, 0x24(%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq -0x30(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x80(%rax), %rdi
callq 0x51c0
addq $0x1, %rax
movl %eax, -0x1a0(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x1a8(%rbp), %rdi
movl -0x1a0(%rbp), %esi
subq $0x2, %rax
movl %eax, %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movq -0x30(%rbp), %rcx
movslq -0x34(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq %rcx, 0x50(%rax)
jmp 0x21007
jmp 0x21009
jmp 0x2100b
jmp 0x2100d
jmp 0x2100f
jmp 0x21011
jmp 0x21013
jmp 0x21015
jmp 0x21017
jmp 0x21019
jmp 0x2101b
jmp 0x2101d
jmp 0x2101f
jmp 0x21021
jmp 0x21023
jmp 0x21025
jmp 0x21027
movq -0x78(%rbp), %rax
movq $0x0, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x21064
movq -0x78(%rbp), %rax
movq -0x1b0(%rbp), %rcx
movq %rcx, 0x30(%rax)
cmpl $0x16, 0x24(%rax)
jne 0x210d7
movq -0x78(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x217e0
movq -0x78(%rbp), %rcx
movq 0x50(%rcx), %rcx
cmpl 0x70(%rcx), %eax
je 0x210d5
movq -0x78(%rbp), %rax
movl $0x0, 0x24(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
jmp 0x21753
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
jmp 0x210d7
jmp 0x21753
movq -0x50(%rbp), %rdi
movl $0x7, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x21217
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0x1bc(%rbp)
callq 0x51c0
movq -0x1c8(%rbp), %rdi
movl -0x1bc(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x7, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b8(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x2117f
movq -0x78(%rbp), %rax
movq -0x1b8(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x211bf
movq -0x78(%rbp), %rax
movq -0x1d0(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x1b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0x8, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x21352
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0x1dc(%rbp)
callq 0x51c0
movq -0x1e8(%rbp), %rdi
movl -0x1dc(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x8, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d8(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x212ba
movq -0x78(%rbp), %rax
movq -0x1d8(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1f0(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x212fa
movq -0x78(%rbp), %rax
movq -0x1f0(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x1d8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x1f0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0x9, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x2148d
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x208(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0x1fc(%rbp)
callq 0x51c0
movq -0x208(%rbp), %rdi
movl -0x1fc(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x9, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1f8(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x213f5
movq -0x78(%rbp), %rax
movq -0x1f8(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x210(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x21435
movq -0x78(%rbp), %rax
movq -0x210(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x1f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x210(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0xb, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x21600
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
subl $0x1, %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x220(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x214(%rbp)
movq -0x50(%rbp), %rdi
callq 0x51c0
movq -0x220(%rbp), %rdi
movl -0x214(%rbp), %esi
subq $0x1, %rax
movl %eax, %edx
callq 0x1af00
movq %rax, -0x60(%rbp)
cmpl $0x0, -0x34(%rbp)
je 0x21515
movq -0x50(%rbp), %rax
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x29, %eax
je 0x2152a
movq -0x78(%rbp), %rax
movl $0xa, 0x24(%rax)
movq $0x0, 0x28(%rax)
jmp 0x21599
movq -0x78(%rbp), %rax
movl $0xb, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x228(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x21566
movq -0x78(%rbp), %rax
movq -0x228(%rbp), %rcx
movq %rcx, 0x28(%rax)
jmp 0x21599
movq -0x228(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x230(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x215ca
movq -0x78(%rbp), %rax
movq -0x230(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x230(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x50(%rbp), %rdi
movl $0x15, %esi
callq 0x1f230
movl %eax, -0x34(%rbp)
cmpl $-0x1, -0x34(%rbp)
je 0x21738
movq -0x50(%rbp), %rdi
movl -0x34(%rbp), %edx
decl %edx
xorl %esi, %esi
callq 0x1af00
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq %rdi, -0x248(%rbp)
movl -0x34(%rbp), %eax
incl %eax
movl %eax, -0x23c(%rbp)
callq 0x51c0
movq -0x248(%rbp), %rdi
movl -0x23c(%rbp), %esi
movl %eax, %edx
decl %edx
callq 0x1af00
movq %rax, %rcx
movq -0x78(%rbp), %rax
movq %rcx, -0x60(%rbp)
movl $0x15, 0x24(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x238(%rbp)
movq -0x58(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x216a3
movq -0x78(%rbp), %rax
movq -0x238(%rbp), %rcx
movq %rcx, 0x28(%rax)
movl $0x58, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x250(%rbp)
movq -0x60(%rbp), %rsi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl -0x24(%rbp), %r8d
movq -0x30(%rbp), %r9
callq 0x1fcf0
jmp 0x216e3
movq -0x78(%rbp), %rax
movq -0x250(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x21753
movq -0x238(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x250(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x217ce
movq -0x78(%rbp), %rax
movl $0x0, 0x24(%rax)
movq $0x0, 0x28(%rax)
movq $0x0, 0x30(%rax)
movq -0x78(%rbp), %rdi
callq 0x1c1d0
movq -0x50(%rbp), %rax
movq %rax, -0x258(%rbp)
cmpq $0x0, %rax
je 0x21779
movq -0x258(%rbp), %rdi
callq 0x5520
cmpq $0x0, -0x58(%rbp)
je 0x2179f
movq -0x58(%rbp), %rax
movq %rax, -0x260(%rbp)
cmpq $0x0, %rax
je 0x2179d
movq -0x260(%rbp), %rdi
callq 0x5520
jmp 0x2179f
cmpq $0x0, -0x60(%rbp)
je 0x217c5
movq -0x60(%rbp), %rax
movq %rax, -0x268(%rbp)
cmpq $0x0, %rax
je 0x217c3
movq -0x268(%rbp), %rdi
callq 0x5520
jmp 0x217c5
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x5720
nopw (%rax,%rax)