// File: srajangarg[P]raytracer/src/core/mathexpr.cpp
// Function: ROperation::Diff(RVar const&) const
ROperation ROperation::Diff(const RVar& var) const
{
  if(!ContainVar(var))return 0.0;
  if(op==Var)return 1.0;
  ROperation **ppop1,op2;int i,j;
  switch(op){
  case Juxt:return(mmb1->Diff(var),mmb2->Diff(var));
  case Add:return(mmb1->Diff(var)+mmb2->Diff(var));
  case Sub:return(mmb1->Diff(var)-mmb2->Diff(var));
  case Opp:return(-mmb2->Diff(var));
  case Mult:return((*mmb1)*(mmb2->Diff(var))+(*mmb2)*(mmb1->Diff(var)));
  case Div:if(mmb2->ContainVar(var))return(((*mmb2)*(mmb1->Diff(var))-(*mmb1)*(mmb2->Diff(var)))/((*mmb2)^2));
  else return(mmb1->Diff(var)/(*mmb2));
  case Pow:if(mmb2->ContainVar(var))return((*this)*(log(*mmb1)*mmb2->Diff(var)+
						    (*mmb2)*mmb1->Diff(var)/(*mmb1)));else
						      return (*mmb2)*mmb1->Diff(var)*((*mmb1)^(*mmb2-1));
  case Sqrt:return(mmb2->Diff(var)/(2*sqrt(*mmb2)));
  case NthRoot:{ROperation interm=(*mmb2)^(1/(*mmb1));return interm.Diff(var);};
  case E10:{ROperation interm=(*mmb1)*(10^(*mmb2));return interm.Diff(var);};;
  case Ln:return (mmb2->Diff(var)/(*mmb2));
  case Exp:return (mmb2->Diff(var)*(*this));
  case Sin:return (mmb2->Diff(var)*cos(*mmb2));
  case Cos:return (-mmb2->Diff(var)*sin(*mmb2));
  case Tg:return (mmb2->Diff(var)*(1+((*this)^2)));
  case Atan:
    if(mmb2->op!=Juxt)return(mmb2->Diff(var)/(1+((*mmb2)^2)));
    else return ((mmb2->NthMember(1).Diff(var))*(mmb2->NthMember(2))-(mmb2->NthMember(2).Diff(var))*(mmb2->NthMember(1)))/(((mmb2->NthMember(1))^2)+((mmb2->NthMember(2))^2));
  case Asin:return(mmb2->Diff(var)/sqrt(1-((*mmb2)^2)));
  case Acos:return(-mmb2->Diff(var)/sqrt(1-((*mmb2)^2)));
  case Abs:return(mmb2->Diff(var)*(*mmb2)/(*this));
  case Fun:if(pfunc->type==-1||pfunc->type==0)return ErrVal;
    if(pfunc->nvars==0)return 0.;
    else if(pfunc->op.NMembers()>1){
      j=pfunc->op.NMembers();
      ppop1=new ROperation*[j];
      for(i=0;i<j;i++)ppop1[i]=new ROperation(NthMember(i+1).Diff(var));
      op2=ApplyOperator(pfunc->nvars,ppop1,&operator,);
      for(i=0;i<pfunc->nvars;i++)delete ppop1[i];
      delete[]ppop1;
      return op2;
    }else{
      ppop1=new ROperation*[pfunc->nvars];
      for(i=0;i<pfunc->nvars;i++){
	ppop1[i]=new ROperation(pfunc->op.Diff(*pfunc->ppvar[i]));
	for(j=0;j<pfunc->nvars;j++)
	  *ppop1[i]=ppop1[i]->Substitute(*pfunc->ppvar[j],mmb2->NthMember(j+1));
	*ppop1[i]=(mmb2->NthMember(i+1).Diff(var))*(*ppop1[i]);
      }
      op2=ApplyOperator(pfunc->nvars,ppop1,&::operator+);
      for(i=0;i<pfunc->nvars;i++)delete ppop1[i];
      delete[]ppop1;
      return op2;
      // In the obtained expression, f' will have been replaced with its expression but f will remain pointing to itself ; this could cause some trouble if changing f afterwards
    }
  default:return ErrVal;
  };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x22f0, %rsp           # imm = 0x22F0
movq %rdi, -0x2210(%rbp)
movq %rdi, %rax
movq %rax, -0x2208(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x2200(%rbp)
movq -0x18(%rbp), %rsi
callq 0x21a00
cmpb $0x0, %al
jne 0x222e4
movq -0x2210(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x1d200
jmp 0x24879
movq -0x2200(%rbp), %rax
cmpl $0x3, 0x24(%rax)
jne 0x2230a
movq -0x2210(%rbp), %rdi
movsd 0x24e38(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x24879
leaq -0x78(%rbp), %rdi
callq 0x1c150
movq -0x2200(%rbp), %rax
movl 0x24(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x2218(%rbp)
subl $0x15, %eax
ja 0x24843
movq -0x2218(%rbp), %rax
leaq 0x2570d(%rip), %rcx     # 0x47a4c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0xd8(%rbp), %rdi
callq 0x22290
jmp 0x22365
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x140(%rbp), %rdi
callq 0x22290
jmp 0x22382
movq -0x2210(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x140(%rbp), %rdx
callq 0x1d960
jmp 0x2239e
leaq -0x140(%rbp), %rdi
callq 0x1ce40
leaq -0xd8(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2486e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2240e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x1ce40
leaq -0xd8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1a0(%rbp), %rdi
callq 0x22290
jmp 0x2243c
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1f8(%rbp), %rdi
callq 0x22290
jmp 0x22459
movq -0x2210(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
callq 0x1da60
jmp 0x22475
leaq -0x1f8(%rbp), %rdi
callq 0x1ce40
leaq -0x1a0(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x224ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x1ce40
leaq -0x1a0(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x250(%rbp), %rdi
callq 0x22290
jmp 0x224fc
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x22290
jmp 0x22519
movq -0x2210(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x2a8(%rbp), %rdx
callq 0x1dc30
jmp 0x22535
leaq -0x2a8(%rbp), %rdi
callq 0x1ce40
leaq -0x250(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2258e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x1ce40
leaq -0x250(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x300(%rbp), %rdi
callq 0x22290
jmp 0x225bc
movq -0x2210(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x1d840
jmp 0x225d1
leaq -0x300(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rcx
movq %rcx, -0x2220(%rbp)
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x3b0(%rbp), %rdi
callq 0x22290
jmp 0x22637
movq -0x2220(%rbp), %rsi
leaq -0x358(%rbp), %rdi
leaq -0x3b0(%rbp), %rdx
callq 0x1de80
jmp 0x22653
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rax
movq %rax, -0x2228(%rbp)
movq -0x18(%rbp), %rdx
leaq -0x460(%rbp), %rdi
callq 0x22290
jmp 0x2267b
movq -0x2228(%rbp), %rsi
leaq -0x408(%rbp), %rdi
leaq -0x460(%rbp), %rdx
callq 0x1de80
jmp 0x22697
movq -0x2210(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x408(%rbp), %rdx
callq 0x1da60
jmp 0x226b3
leaq -0x408(%rbp), %rdi
callq 0x1ce40
leaq -0x460(%rbp), %rdi
callq 0x1ce40
leaq -0x358(%rbp), %rdi
callq 0x1ce40
leaq -0x3b0(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22764
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2274c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x1ce40
leaq -0x460(%rbp), %rdi
callq 0x1ce40
leaq -0x358(%rbp), %rdi
callq 0x1ce40
leaq -0x3b0(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x21a00
movb %al, -0x2229(%rbp)
jmp 0x22791
movb -0x2229(%rbp), %al
cmpb $0x0, %al
je 0x229ef
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rax
movq %rax, -0x2238(%rbp)
movq -0x18(%rbp), %rdx
leaq -0x568(%rbp), %rdi
callq 0x22290
jmp 0x227c7
movq -0x2238(%rbp), %rsi
leaq -0x510(%rbp), %rdi
leaq -0x568(%rbp), %rdx
callq 0x1de80
jmp 0x227e3
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rcx
movq %rcx, -0x2240(%rbp)
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x618(%rbp), %rdi
callq 0x22290
jmp 0x2280b
movq -0x2240(%rbp), %rsi
leaq -0x5c0(%rbp), %rdi
leaq -0x618(%rbp), %rdx
callq 0x1de80
jmp 0x22827
leaq -0x4b8(%rbp), %rdi
leaq -0x510(%rbp), %rsi
leaq -0x5c0(%rbp), %rdx
callq 0x1dc30
jmp 0x22843
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x2248(%rbp)
leaq -0x6c8(%rbp), %rdi
movsd 0x250fc(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x2286b
movq -0x2248(%rbp), %rsi
leaq -0x670(%rbp), %rdi
leaq -0x6c8(%rbp), %rdx
callq 0x1e470
jmp 0x22887
movq -0x2210(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
leaq -0x670(%rbp), %rdx
callq 0x1e160
jmp 0x228a3
leaq -0x670(%rbp), %rdi
callq 0x1ce40
leaq -0x6c8(%rbp), %rdi
callq 0x1ce40
leaq -0x4b8(%rbp), %rdi
callq 0x1ce40
leaq -0x5c0(%rbp), %rdi
callq 0x1ce40
leaq -0x618(%rbp), %rdi
callq 0x1ce40
leaq -0x510(%rbp), %rdi
callq 0x1ce40
leaq -0x568(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x229a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x670(%rbp), %rdi
callq 0x1ce40
leaq -0x6c8(%rbp), %rdi
callq 0x1ce40
leaq -0x4b8(%rbp), %rdi
callq 0x1ce40
leaq -0x5c0(%rbp), %rdi
callq 0x1ce40
leaq -0x618(%rbp), %rdi
callq 0x1ce40
leaq -0x510(%rbp), %rdi
callq 0x1ce40
leaq -0x568(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x720(%rbp), %rdi
callq 0x22290
jmp 0x22a0c
movq -0x2210(%rbp), %rdi
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdx
leaq -0x720(%rbp), %rsi
callq 0x1e160
jmp 0x22a2c
leaq -0x720(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x720(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x21a00
movb %al, -0x2249(%rbp)
jmp 0x22a86
movb -0x2249(%rbp), %al
cmpb $0x0, %al
je 0x22cce
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
leaq -0x828(%rbp), %rdi
callq 0x1e9b0
jmp 0x22aad
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x880(%rbp), %rdi
callq 0x22290
jmp 0x22aca
leaq -0x7d0(%rbp), %rdi
leaq -0x828(%rbp), %rsi
leaq -0x880(%rbp), %rdx
callq 0x1de80
jmp 0x22ae6
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rax
movq %rax, -0x2258(%rbp)
movq -0x18(%rbp), %rdx
leaq -0x988(%rbp), %rdi
callq 0x22290
jmp 0x22b0e
movq -0x2258(%rbp), %rsi
leaq -0x930(%rbp), %rdi
leaq -0x988(%rbp), %rdx
callq 0x1de80
jmp 0x22b2a
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rdx
leaq -0x8d8(%rbp), %rdi
leaq -0x930(%rbp), %rsi
callq 0x1e160
jmp 0x22b4a
leaq -0x778(%rbp), %rdi
leaq -0x7d0(%rbp), %rsi
leaq -0x8d8(%rbp), %rdx
callq 0x1da60
jmp 0x22b66
movq -0x2200(%rbp), %rsi
movq -0x2210(%rbp), %rdi
leaq -0x778(%rbp), %rdx
callq 0x1de80
jmp 0x22b82
leaq -0x778(%rbp), %rdi
callq 0x1ce40
leaq -0x8d8(%rbp), %rdi
callq 0x1ce40
leaq -0x930(%rbp), %rdi
callq 0x1ce40
leaq -0x988(%rbp), %rdi
callq 0x1ce40
leaq -0x7d0(%rbp), %rdi
callq 0x1ce40
leaq -0x880(%rbp), %rdi
callq 0x1ce40
leaq -0x828(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22cbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22cb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22ca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22c99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22c8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22c81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x778(%rbp), %rdi
callq 0x1ce40
leaq -0x8d8(%rbp), %rdi
callq 0x1ce40
leaq -0x930(%rbp), %rdi
callq 0x1ce40
leaq -0x988(%rbp), %rdi
callq 0x1ce40
leaq -0x7d0(%rbp), %rdi
callq 0x1ce40
leaq -0x880(%rbp), %rdi
callq 0x1ce40
leaq -0x828(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rax
movq %rax, -0x2260(%rbp)
movq -0x18(%rbp), %rdx
leaq -0xa38(%rbp), %rdi
callq 0x22290
jmp 0x22cf6
movq -0x2260(%rbp), %rsi
leaq -0x9e0(%rbp), %rdi
leaq -0xa38(%rbp), %rdx
callq 0x1de80
jmp 0x22d12
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rcx
movq %rcx, -0x2270(%rbp)
movq 0x30(%rax), %rax
movq %rax, -0x2268(%rbp)
leaq -0xb40(%rbp), %rdi
movsd 0x243fa(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x22d45
movq -0x2268(%rbp), %rsi
leaq -0xae8(%rbp), %rdi
leaq -0xb40(%rbp), %rdx
callq 0x1dc30
jmp 0x22d61
movq -0x2270(%rbp), %rsi
leaq -0xa90(%rbp), %rdi
leaq -0xae8(%rbp), %rdx
callq 0x1e470
jmp 0x22d7d
movq -0x2210(%rbp), %rdi
leaq -0x9e0(%rbp), %rsi
leaq -0xa90(%rbp), %rdx
callq 0x1de80
jmp 0x22d99
leaq -0xa90(%rbp), %rdi
callq 0x1ce40
leaq -0xae8(%rbp), %rdi
callq 0x1ce40
leaq -0xb40(%rbp), %rdi
callq 0x1ce40
leaq -0x9e0(%rbp), %rdi
callq 0x1ce40
leaq -0xa38(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22e76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22e6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xa90(%rbp), %rdi
callq 0x1ce40
leaq -0xae8(%rbp), %rdi
callq 0x1ce40
leaq -0xb40(%rbp), %rdi
callq 0x1ce40
leaq -0x9e0(%rbp), %rdi
callq 0x1ce40
leaq -0xa38(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0xb98(%rbp), %rdi
callq 0x22290
jmp 0x22ea4
leaq -0xc48(%rbp), %rdi
movsd 0x24aad(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x22eba
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0xca0(%rbp), %rdi
callq 0x1e5f0
jmp 0x22ed3
leaq -0xbf0(%rbp), %rdi
leaq -0xc48(%rbp), %rsi
leaq -0xca0(%rbp), %rdx
callq 0x1de80
jmp 0x22eef
movq -0x2210(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
leaq -0xbf0(%rbp), %rdx
callq 0x1e160
jmp 0x22f0b
leaq -0xbf0(%rbp), %rdi
callq 0x1ce40
leaq -0xca0(%rbp), %rdi
callq 0x1ce40
leaq -0xc48(%rbp), %rdi
callq 0x1ce40
leaq -0xb98(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22fbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22fb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x22fa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xbf0(%rbp), %rdi
callq 0x1ce40
leaq -0xca0(%rbp), %rdi
callq 0x1ce40
leaq -0xc48(%rbp), %rdi
callq 0x1ce40
leaq -0xb98(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x2278(%rbp)
leaq -0xda8(%rbp), %rdi
movsd 0x2414a(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x22ff5
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rdx
leaq -0xd50(%rbp), %rdi
leaq -0xda8(%rbp), %rsi
callq 0x1e160
jmp 0x23015
movq -0x2278(%rbp), %rsi
leaq -0xcf8(%rbp), %rdi
leaq -0xd50(%rbp), %rdx
callq 0x1e470
jmp 0x23031
leaq -0xd50(%rbp), %rdi
callq 0x1ce40
leaq -0xda8(%rbp), %rdi
callq 0x1ce40
movq -0x2210(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0xcf8(%rbp), %rsi
callq 0x22290
jmp 0x23062
movl $0x1, -0x144(%rbp)
leaq -0xcf8(%rbp), %rdi
callq 0x1ce40
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x230af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xd50(%rbp), %rdi
callq 0x1ce40
leaq -0xda8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xcf8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x2280(%rbp)
leaq -0xeb0(%rbp), %rdi
movsd 0x24864(%rip), %xmm0    # 0x47968
callq 0x1d200
jmp 0x2310b
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdx
leaq -0xe58(%rbp), %rdi
leaq -0xeb0(%rbp), %rsi
callq 0x1e470
jmp 0x2312b
movq -0x2280(%rbp), %rsi
leaq -0xe00(%rbp), %rdi
leaq -0xe58(%rbp), %rdx
callq 0x1de80
jmp 0x23147
leaq -0xe58(%rbp), %rdi
callq 0x1ce40
leaq -0xeb0(%rbp), %rdi
callq 0x1ce40
movq -0x2210(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0xe00(%rbp), %rsi
callq 0x22290
jmp 0x23178
movl $0x1, -0x144(%rbp)
leaq -0xe00(%rbp), %rdi
callq 0x1ce40
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x231c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xe58(%rbp), %rdi
callq 0x1ce40
leaq -0xeb0(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xe00(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0xf08(%rbp), %rdi
callq 0x22290
jmp 0x23216
movq -0x2210(%rbp), %rdi
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdx
leaq -0xf08(%rbp), %rsi
callq 0x1e160
jmp 0x23236
leaq -0xf08(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xf08(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0xf60(%rbp), %rdi
callq 0x22290
jmp 0x23291
movq -0x2200(%rbp), %rdx
movq -0x2210(%rbp), %rdi
leaq -0xf60(%rbp), %rsi
callq 0x1de80
jmp 0x232ad
leaq -0xf60(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xf60(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0xfb8(%rbp), %rdi
callq 0x22290
jmp 0x23308
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x1010(%rbp), %rdi
callq 0x1e830
jmp 0x23321
movq -0x2210(%rbp), %rdi
leaq -0xfb8(%rbp), %rsi
leaq -0x1010(%rbp), %rdx
callq 0x1de80
jmp 0x2333d
leaq -0x1010(%rbp), %rdi
callq 0x1ce40
leaq -0xfb8(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23396
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1010(%rbp), %rdi
callq 0x1ce40
leaq -0xfb8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x10c0(%rbp), %rdi
callq 0x22290
jmp 0x233c4
leaq -0x1068(%rbp), %rdi
leaq -0x10c0(%rbp), %rsi
callq 0x1d840
jmp 0x233d9
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x1118(%rbp), %rdi
callq 0x1e770
jmp 0x233f2
movq -0x2210(%rbp), %rdi
leaq -0x1068(%rbp), %rsi
leaq -0x1118(%rbp), %rdx
callq 0x1de80
jmp 0x2340e
leaq -0x1118(%rbp), %rdi
callq 0x1ce40
leaq -0x1068(%rbp), %rdi
callq 0x1ce40
leaq -0x10c0(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23493
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23487
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1118(%rbp), %rdi
callq 0x1ce40
leaq -0x1068(%rbp), %rdi
callq 0x1ce40
leaq -0x10c0(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1170(%rbp), %rdi
callq 0x22290
jmp 0x234c1
leaq -0x1220(%rbp), %rdi
movsd 0x23c68(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x234d7
leaq -0x12d0(%rbp), %rdi
movsd 0x2447a(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x234ed
movq -0x2200(%rbp), %rsi
leaq -0x1278(%rbp), %rdi
leaq -0x12d0(%rbp), %rdx
callq 0x1e470
jmp 0x23509
leaq -0x11c8(%rbp), %rdi
leaq -0x1220(%rbp), %rsi
leaq -0x1278(%rbp), %rdx
callq 0x1da60
jmp 0x23525
movq -0x2210(%rbp), %rdi
leaq -0x1170(%rbp), %rsi
leaq -0x11c8(%rbp), %rdx
callq 0x1de80
jmp 0x23541
leaq -0x11c8(%rbp), %rdi
callq 0x1ce40
leaq -0x1278(%rbp), %rdi
callq 0x1ce40
leaq -0x12d0(%rbp), %rdi
callq 0x1ce40
leaq -0x1220(%rbp), %rdi
callq 0x1ce40
leaq -0x1170(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2361e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23612
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23606
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x235fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x11c8(%rbp), %rdi
callq 0x1ce40
leaq -0x1278(%rbp), %rdi
callq 0x1ce40
leaq -0x12d0(%rbp), %rdi
callq 0x1ce40
leaq -0x1220(%rbp), %rdi
callq 0x1ce40
leaq -0x1170(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
cmpl $0x1, 0x24(%rax)
je 0x237e1
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1328(%rbp), %rdi
callq 0x22290
jmp 0x23661
leaq -0x13d8(%rbp), %rdi
movsd 0x23ac8(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x23677
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x2288(%rbp)
leaq -0x1488(%rbp), %rdi
movsd 0x242c8(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x2369f
movq -0x2288(%rbp), %rsi
leaq -0x1430(%rbp), %rdi
leaq -0x1488(%rbp), %rdx
callq 0x1e470
jmp 0x236bb
leaq -0x1380(%rbp), %rdi
leaq -0x13d8(%rbp), %rsi
leaq -0x1430(%rbp), %rdx
callq 0x1da60
jmp 0x236d7
movq -0x2210(%rbp), %rdi
leaq -0x1328(%rbp), %rsi
leaq -0x1380(%rbp), %rdx
callq 0x1e160
jmp 0x236f3
leaq -0x1380(%rbp), %rdi
callq 0x1ce40
leaq -0x1430(%rbp), %rdi
callq 0x1ce40
leaq -0x1488(%rbp), %rdi
callq 0x1ce40
leaq -0x13d8(%rbp), %rdi
callq 0x1ce40
leaq -0x1328(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x237d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x237c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x237b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x237ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1380(%rbp), %rdi
callq 0x1ce40
leaq -0x1430(%rbp), %rdi
callq 0x1ce40
leaq -0x1488(%rbp), %rdi
callq 0x1ce40
leaq -0x13d8(%rbp), %rdi
callq 0x1ce40
leaq -0x1328(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x15e8(%rbp), %rdi
movl $0x1, %edx
callq 0x21e00
jmp 0x237ff
movq -0x18(%rbp), %rdx
leaq -0x1590(%rbp), %rdi
leaq -0x15e8(%rbp), %rsi
callq 0x22290
jmp 0x23818
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x1640(%rbp), %rdi
movl $0x2, %edx
callq 0x21e00
jmp 0x23836
leaq -0x1538(%rbp), %rdi
leaq -0x1590(%rbp), %rsi
leaq -0x1640(%rbp), %rdx
callq 0x1de80
jmp 0x23852
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x1748(%rbp), %rdi
movl $0x2, %edx
callq 0x21e00
jmp 0x23870
movq -0x18(%rbp), %rdx
leaq -0x16f0(%rbp), %rdi
leaq -0x1748(%rbp), %rsi
callq 0x22290
jmp 0x23889
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x17a0(%rbp), %rdi
movl $0x1, %edx
callq 0x21e00
jmp 0x238a7
leaq -0x1698(%rbp), %rdi
leaq -0x16f0(%rbp), %rsi
leaq -0x17a0(%rbp), %rdx
callq 0x1de80
jmp 0x238c3
leaq -0x14e0(%rbp), %rdi
leaq -0x1538(%rbp), %rsi
leaq -0x1698(%rbp), %rdx
callq 0x1dc30
jmp 0x238df
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x18a8(%rbp), %rdi
movl $0x1, %edx
callq 0x21e00
jmp 0x238fd
leaq -0x1900(%rbp), %rdi
movsd 0x24054(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x23913
leaq -0x1850(%rbp), %rdi
leaq -0x18a8(%rbp), %rsi
leaq -0x1900(%rbp), %rdx
callq 0x1e470
jmp 0x2392f
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
leaq -0x19b0(%rbp), %rdi
movl $0x2, %edx
callq 0x21e00
jmp 0x2394d
leaq -0x1a08(%rbp), %rdi
movsd 0x24004(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x23963
leaq -0x1958(%rbp), %rdi
leaq -0x19b0(%rbp), %rsi
leaq -0x1a08(%rbp), %rdx
callq 0x1e470
jmp 0x2397f
leaq -0x17f8(%rbp), %rdi
leaq -0x1850(%rbp), %rsi
leaq -0x1958(%rbp), %rdx
callq 0x1da60
jmp 0x2399b
movq -0x2210(%rbp), %rdi
leaq -0x14e0(%rbp), %rsi
leaq -0x17f8(%rbp), %rdx
callq 0x1e160
jmp 0x239b7
leaq -0x17f8(%rbp), %rdi
callq 0x1ce40
leaq -0x1958(%rbp), %rdi
callq 0x1ce40
leaq -0x1a08(%rbp), %rdi
callq 0x1ce40
leaq -0x19b0(%rbp), %rdi
callq 0x1ce40
leaq -0x1850(%rbp), %rdi
callq 0x1ce40
leaq -0x1900(%rbp), %rdi
callq 0x1ce40
leaq -0x18a8(%rbp), %rdi
callq 0x1ce40
leaq -0x14e0(%rbp), %rdi
callq 0x1ce40
leaq -0x1698(%rbp), %rdi
callq 0x1ce40
leaq -0x17a0(%rbp), %rdi
callq 0x1ce40
leaq -0x16f0(%rbp), %rdi
callq 0x1ce40
leaq -0x1748(%rbp), %rdi
callq 0x1ce40
leaq -0x1538(%rbp), %rdi
callq 0x1ce40
leaq -0x1640(%rbp), %rdi
callq 0x1ce40
leaq -0x1590(%rbp), %rdi
callq 0x1ce40
leaq -0x15e8(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23c09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23bfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23bf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x17f8(%rbp), %rdi
callq 0x1ce40
leaq -0x1958(%rbp), %rdi
callq 0x1ce40
leaq -0x1a08(%rbp), %rdi
callq 0x1ce40
leaq -0x19b0(%rbp), %rdi
callq 0x1ce40
leaq -0x1850(%rbp), %rdi
callq 0x1ce40
leaq -0x1900(%rbp), %rdi
callq 0x1ce40
leaq -0x18a8(%rbp), %rdi
callq 0x1ce40
leaq -0x14e0(%rbp), %rdi
callq 0x1ce40
leaq -0x1698(%rbp), %rdi
callq 0x1ce40
leaq -0x17a0(%rbp), %rdi
callq 0x1ce40
leaq -0x16f0(%rbp), %rdi
callq 0x1ce40
leaq -0x1748(%rbp), %rdi
callq 0x1ce40
leaq -0x1538(%rbp), %rdi
callq 0x1ce40
leaq -0x1640(%rbp), %rdi
callq 0x1ce40
leaq -0x1590(%rbp), %rdi
callq 0x1ce40
leaq -0x15e8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1a60(%rbp), %rdi
callq 0x22290
jmp 0x23cc7
leaq -0x1b68(%rbp), %rdi
movsd 0x23462(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x23cdd
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x2290(%rbp)
leaq -0x1c18(%rbp), %rdi
movsd 0x23c62(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x23d05
movq -0x2290(%rbp), %rsi
leaq -0x1bc0(%rbp), %rdi
leaq -0x1c18(%rbp), %rdx
callq 0x1e470
jmp 0x23d21
leaq -0x1b10(%rbp), %rdi
leaq -0x1b68(%rbp), %rsi
leaq -0x1bc0(%rbp), %rdx
callq 0x1dc30
jmp 0x23d3d
leaq -0x1ab8(%rbp), %rdi
leaq -0x1b10(%rbp), %rsi
callq 0x1e5f0
jmp 0x23d52
movq -0x2210(%rbp), %rdi
leaq -0x1a60(%rbp), %rsi
leaq -0x1ab8(%rbp), %rdx
callq 0x1e160
jmp 0x23d6e
leaq -0x1ab8(%rbp), %rdi
callq 0x1ce40
leaq -0x1b10(%rbp), %rdi
callq 0x1ce40
leaq -0x1bc0(%rbp), %rdi
callq 0x1ce40
leaq -0x1c18(%rbp), %rdi
callq 0x1ce40
leaq -0x1b68(%rbp), %rdi
callq 0x1ce40
leaq -0x1a60(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23e7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23e6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23e62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23e56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x23e4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1ab8(%rbp), %rdi
callq 0x1ce40
leaq -0x1b10(%rbp), %rdi
callq 0x1ce40
leaq -0x1bc0(%rbp), %rdi
callq 0x1ce40
leaq -0x1c18(%rbp), %rdi
callq 0x1ce40
leaq -0x1b68(%rbp), %rdi
callq 0x1ce40
leaq -0x1a60(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1cc8(%rbp), %rdi
callq 0x22290
jmp 0x23ea8
leaq -0x1c70(%rbp), %rdi
leaq -0x1cc8(%rbp), %rsi
callq 0x1d840
jmp 0x23ebd
leaq -0x1dd0(%rbp), %rdi
movsd 0x2326c(%rip), %xmm0    # 0x47138
callq 0x1d200
jmp 0x23ed3
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x2298(%rbp)
leaq -0x1e80(%rbp), %rdi
movsd 0x23a6c(%rip), %xmm0    # 0x47960
callq 0x1d200
jmp 0x23efb
movq -0x2298(%rbp), %rsi
leaq -0x1e28(%rbp), %rdi
leaq -0x1e80(%rbp), %rdx
callq 0x1e470
jmp 0x23f17
leaq -0x1d78(%rbp), %rdi
leaq -0x1dd0(%rbp), %rsi
leaq -0x1e28(%rbp), %rdx
callq 0x1dc30
jmp 0x23f33
leaq -0x1d20(%rbp), %rdi
leaq -0x1d78(%rbp), %rsi
callq 0x1e5f0
jmp 0x23f48
movq -0x2210(%rbp), %rdi
leaq -0x1c70(%rbp), %rsi
leaq -0x1d20(%rbp), %rdx
callq 0x1e160
jmp 0x23f64
leaq -0x1d20(%rbp), %rdi
callq 0x1ce40
leaq -0x1d78(%rbp), %rdi
callq 0x1ce40
leaq -0x1e28(%rbp), %rdi
callq 0x1ce40
leaq -0x1e80(%rbp), %rdi
callq 0x1ce40
leaq -0x1dd0(%rbp), %rdi
callq 0x1ce40
leaq -0x1c70(%rbp), %rdi
callq 0x1ce40
leaq -0x1cc8(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2409f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24093
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24087
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2407b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2406f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24063
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1d20(%rbp), %rdi
callq 0x1ce40
leaq -0x1d78(%rbp), %rdi
callq 0x1ce40
leaq -0x1e28(%rbp), %rdi
callq 0x1ce40
leaq -0x1e80(%rbp), %rdi
callq 0x1ce40
leaq -0x1dd0(%rbp), %rdi
callq 0x1ce40
leaq -0x1c70(%rbp), %rdi
callq 0x1ce40
leaq -0x1cc8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1f30(%rbp), %rdi
callq 0x22290
jmp 0x240cd
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rdx
leaq -0x1ed8(%rbp), %rdi
leaq -0x1f30(%rbp), %rsi
callq 0x1de80
jmp 0x240ed
movq -0x2200(%rbp), %rdx
movq -0x2210(%rbp), %rdi
leaq -0x1ed8(%rbp), %rsi
callq 0x1e160
jmp 0x24109
leaq -0x1ed8(%rbp), %rdi
callq 0x1ce40
leaq -0x1f30(%rbp), %rdi
callq 0x1ce40
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24162
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1ed8(%rbp), %rdi
callq 0x1ce40
leaq -0x1f30(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movsbl 0x8(%rax), %eax
cmpl $-0x1, %eax
je 0x2419b
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movsbl 0x8(%rax), %eax
cmpl $0x0, %eax
jne 0x241c0
movq -0x2210(%rbp), %rdi
movsd 0x237ae(%rip), %xmm0    # 0x47958
callq 0x1d200
jmp 0x241b1
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
cmpl $0x0, 0x70(%rax)
jne 0x241f1
movq -0x2210(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x1d200
jmp 0x241e2
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rdi
addq $0x18, %rdi
callq 0x217e0
movl %eax, -0x229c(%rbp)
jmp 0x2420d
movl -0x229c(%rbp), %eax
cmpl $0x1, %eax
jle 0x2445e
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rdi
addq $0x18, %rdi
callq 0x217e0
movl %eax, -0x22a0(%rbp)
jmp 0x24238
movl -0x22a0(%rbp), %eax
movl %eax, -0x80(%rbp)
movslq -0x80(%rbp), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x5050
movq %rax, -0x22a8(%rbp)
jmp 0x24269
movq -0x22a8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
cmpl -0x80(%rbp), %eax
jge 0x2435b
movl $0x58, %edi
callq 0x5400
movq %rax, -0x22b0(%rbp)
jmp 0x2429a
movq -0x2200(%rbp), %rsi
movb $0x1, -0x1f89(%rbp)
movl -0x7c(%rbp), %edx
incl %edx
leaq -0x1f88(%rbp), %rdi
callq 0x21e00
jmp 0x242bb
movq -0x22b0(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0x1f88(%rbp), %rsi
callq 0x22290
jmp 0x242d4
movq -0x22b0(%rbp), %rdx
movb $0x0, -0x1f89(%rbp)
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
leaq -0x1f88(%rbp), %rdi
callq 0x1ce40
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x2427b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2433a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1f88(%rbp), %rdi
callq 0x1ce40
testb $0x1, -0x1f89(%rbp)
jne 0x24345
jmp 0x24356
movq -0x22b0(%rbp), %rdi
movl $0x58, %esi
callq 0x5410
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x70(%rax), %esi
movq -0x20(%rbp), %rdx
leaq -0x6a14(%rip), %rcx     # 0x1d960
leaq -0x1fe8(%rbp), %rdi
callq 0x1ed70
jmp 0x24382
leaq -0x78(%rbp), %rdi
leaq -0x1fe8(%rbp), %rsi
callq 0x1b550
jmp 0x24394
leaq -0x1fe8(%rbp), %rdi
callq 0x1ce40
movl $0x0, -0x7c(%rbp)
movq -0x2200(%rbp), %rcx
movl -0x7c(%rbp), %eax
movq 0x50(%rcx), %rcx
cmpl 0x70(%rcx), %eax
jge 0x24420
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x22b8(%rbp)
cmpq $0x0, %rax
je 0x243f0
movq -0x22b8(%rbp), %rdi
callq 0x1ce40
movq -0x22b8(%rbp), %rdi
movl $0x58, %esi
callq 0x5410
jmp 0x243f2
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x243a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1fe8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x20(%rbp), %rax
movq %rax, -0x22c0(%rbp)
cmpq $0x0, %rax
je 0x2443d
movq -0x22c0(%rbp), %rdi
callq 0x5520
movq -0x2210(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x1d0a0
jmp 0x2444f
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movslq 0x70(%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x5050
movq %rax, -0x22c8(%rbp)
jmp 0x24491
movq -0x22c8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0x7c(%rbp)
movq -0x2200(%rbp), %rcx
movl -0x7c(%rbp), %eax
movq 0x50(%rcx), %rcx
cmpl 0x70(%rcx), %eax
jge 0x24746
movl $0x58, %edi
callq 0x5400
movq %rax, -0x22d0(%rbp)
jmp 0x244cd
movq -0x22d0(%rbp), %rdi
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movq %rax, %rsi
addq $0x18, %rsi
movq 0x78(%rax), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x22290
jmp 0x244f9
movq -0x22d0(%rbp), %rdx
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x0, -0x80(%rbp)
movq -0x2200(%rbp), %rcx
movl -0x80(%rbp), %eax
movq 0x50(%rcx), %rcx
cmpl 0x70(%rcx), %eax
jge 0x2463f
movq -0x2200(%rbp), %rax
movq -0x20(%rbp), %rcx
movslq -0x7c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq %rcx, -0x22e0(%rbp)
movq 0x30(%rax), %rsi
movq 0x50(%rax), %rax
movq 0x78(%rax), %rax
movslq -0x80(%rbp), %rcx
movl %ecx, %edx
movq (%rax,%rcx,8), %rax
movq %rax, -0x22d8(%rbp)
incl %edx
leaq -0x2098(%rbp), %rdi
callq 0x21e00
jmp 0x24571
movq -0x22d8(%rbp), %rdx
movq -0x22e0(%rbp), %rsi
leaq -0x2040(%rbp), %rdi
leaq -0x2098(%rbp), %rcx
callq 0x220d0
jmp 0x24594
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x2040(%rbp), %rsi
callq 0x1b550
jmp 0x245ae
leaq -0x2040(%rbp), %rdi
callq 0x1ce40
leaq -0x2098(%rbp), %rdi
callq 0x1ce40
movl -0x80(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x80(%rbp)
jmp 0x24513
movq -0x22d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
movl $0x58, %esi
callq 0x5410
jmp 0x2486e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x2462e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x2040(%rbp), %rdi
callq 0x1ce40
leaq -0x2098(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x30(%rax), %rsi
movl -0x7c(%rbp), %edx
incl %edx
leaq -0x21a0(%rbp), %rdi
callq 0x21e00
jmp 0x2465d
movq -0x18(%rbp), %rdx
leaq -0x2148(%rbp), %rdi
leaq -0x21a0(%rbp), %rsi
callq 0x22290
jmp 0x24676
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq -0x20f0(%rbp), %rdi
leaq -0x2148(%rbp), %rsi
callq 0x1de80
jmp 0x24697
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x20f0(%rbp), %rsi
callq 0x1b550
jmp 0x246b1
leaq -0x20f0(%rbp), %rdi
callq 0x1ce40
leaq -0x2148(%rbp), %rdi
callq 0x1ce40
leaq -0x21a0(%rbp), %rdi
callq 0x1ce40
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x244a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24735
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x24729
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x20f0(%rbp), %rdi
callq 0x1ce40
leaq -0x2148(%rbp), %rdi
callq 0x1ce40
leaq -0x21a0(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x2200(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x70(%rax), %esi
movq -0x20(%rbp), %rdx
leaq -0x6cff(%rip), %rcx     # 0x1da60
leaq -0x21f8(%rbp), %rdi
callq 0x1ed70
jmp 0x2476d
leaq -0x78(%rbp), %rdi
leaq -0x21f8(%rbp), %rsi
callq 0x1b550
jmp 0x2477f
leaq -0x21f8(%rbp), %rdi
callq 0x1ce40
movl $0x0, -0x7c(%rbp)
movq -0x2200(%rbp), %rcx
movl -0x7c(%rbp), %eax
movq 0x50(%rcx), %rcx
cmpl 0x70(%rcx), %eax
jge 0x24808
movq -0x20(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x22e8(%rbp)
cmpq $0x0, %rax
je 0x247db
movq -0x22e8(%rbp), %rdi
callq 0x1ce40
movq -0x22e8(%rbp), %rdi
movl $0x58, %esi
callq 0x5410
jmp 0x247dd
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x24792
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x21f8(%rbp), %rdi
callq 0x1ce40
jmp 0x2486e
movq -0x20(%rbp), %rax
movq %rax, -0x22f0(%rbp)
cmpq $0x0, %rax
je 0x24825
movq -0x22f0(%rbp), %rdi
callq 0x5520
movq -0x2210(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x1d0a0
jmp 0x24837
movl $0x1, -0x144(%rbp)
jmp 0x24863
movq -0x2210(%rbp), %rdi
movsd 0x23106(%rip), %xmm0    # 0x47958
callq 0x1d200
jmp 0x24859
movl $0x1, -0x144(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x1ce40
jmp 0x24879
leaq -0x78(%rbp), %rdi
callq 0x1ce40
jmp 0x24889
movq -0x2208(%rbp), %rax
addq $0x22f0, %rsp           # imm = 0x22F0
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0x5720
nopw %cs:(%rax,%rax)