// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x628, %rsp            # imm = 0x628
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r12
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x10e14
testb %al, %al
je 0x1137f
cmpl $0x3, 0x24(%r14)
jne 0x113bb
movl $0x2, 0x24(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%r12)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%r12)
movups %xmm0, (%r12)
movups %xmm0, 0x10(%r12)
movb $0x0, 0x20(%r12)
movups %xmm0, 0x40(%r12)
movq $0x0, 0x50(%r12)
jmp 0x113ae
movl $0x2, 0x24(%r12)
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
movups %xmm0, 0x10(%r12)
movb $0x0, 0x20(%r12)
movups %xmm0, 0x28(%r12)
movups %xmm0, 0x38(%r12)
movups %xmm0, 0x48(%r12)
movq %r12, %rdi
callq 0xd888
jmp 0x122cf
xorps %xmm0, %xmm0
leaq 0x2a0(%rsp), %rdi
movups %xmm0, 0x24(%rdi)
movl $0x0, 0x34(%rdi)
movabsq $0x7fefffffffffffff, %rbx # imm = 0x7FEFFFFFFFFFFFFF
movq %rbx, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movl 0x24(%r14), %eax
decl %eax
cmpl $0x15, %eax
ja 0x11628
leaq 0x1a537(%rip), %rcx     # 0x2b948
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe368
jmp 0x1185a
movq 0x28(%r14), %r15
leaq 0xc0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4024000000000000, %rax # imm = 0x4024000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x30(%r14), %rdx
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xeb54
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
movq %r15, %rsi
callq 0xe72b
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
movq %rsp, %rsi
movq %r12, %rdi
movq %r13, %rdx
callq 0x1130c
jmp 0x121b5
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rdx
movq %rsp, %rsi
movq %r12, %rdi
callq 0xe91a
jmp 0x121b5
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
callq 0xeea0
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe72b
jmp 0x1185a
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0xc0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x180(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %r14, %rsi
callq 0xeb54
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0xe431
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe72b
jmp 0x12184
movq 0x50(%r14), %rax
movq %rax, %rcx
movzbl 0x8(%rax), %eax
cmpl $0xff, %eax
je 0x11628
testl %eax, %eax
jne 0x122e4
xorps %xmm0, %xmm0
movups %xmm0, 0x24(%r12)
movl $0x0, 0x34(%r12)
movq %rbx, 0x38(%r12)
movups %xmm0, (%r12)
movups %xmm0, 0x10(%r12)
movb $0x0, 0x20(%r12)
movups %xmm0, 0x40(%r12)
movq $0x0, 0x50(%r12)
movq %r12, %rdi
callq 0xd888
jmp 0x122c2
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe594
jmp 0x1185a
movq 0x30(%r14), %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x10e14
testb %al, %al
je 0x121bd
movq 0x28(%r14), %rsi
leaq 0xc0(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
movq %r15, %rsi
callq 0xe72b
movq 0x28(%r14), %rbx
movq 0x30(%r14), %rsi
leaq 0x180(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %rbx, %rsi
callq 0xe72b
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0xe594
movq 0x30(%r14), %r14
leaq 0x240(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x1e0(%rsp), %rdi
leaq 0x240(%rsp), %rdx
movq %r14, %rsi
callq 0xeb54
movq %rsp, %rsi
leaq 0x1e0(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x240(%rsp), %rdi
callq 0xdd92
movq %rsp, %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
jmp 0x11967
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe29c
movq 0x30(%r14), %rsi
leaq 0xc0(%rsp), %rdi
callq 0xee0c
movq %rsp, %rsi
leaq 0xc0(%rsp), %rdx
movq %r12, %rdi
callq 0xe72b
leaq 0xc0(%rsp), %rdi
jmp 0x122ab
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe431
leaq 0x68(%rsp), %rdi
jmp 0x121b0
movq 0x30(%r14), %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x10e14
testb %al, %al
je 0x121dd
movq 0x28(%r14), %rsi
leaq 0xc0(%rsp), %rdi
callq 0xefc8
movq 0x30(%r14), %rsi
leaq 0x120(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0xe72b
movq 0x30(%r14), %rbx
movq 0x28(%r14), %rsi
leaq 0x240(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0x1e0(%rsp), %rdi
leaq 0x240(%rsp), %rdx
movq %rbx, %rsi
callq 0xe72b
movq 0x28(%r14), %rdx
leaq 0x180(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0xe91a
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0xe431
movq %rsp, %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0xe72b
movq %rsp, %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x240(%rsp), %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
jmp 0x122bd
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0xc0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x30(%r14), %rsi
leaq 0x120(%rsp), %rdi
callq 0xece4
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0xe72b
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x121a3
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rsi
movq %r12, %rdi
movq %r14, %rdx
callq 0xe72b
jmp 0x121b5
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe29c
leaq 0x180(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x30(%r14), %r14
leaq 0x240(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x1e0(%rsp), %rdi
leaq 0x240(%rsp), %rdx
movq %r14, %rsi
callq 0xeb54
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rsi
leaq 0x1e0(%rsp), %rdx
callq 0xe594
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xece4
movq %rsp, %rsi
leaq 0xc0(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
callq 0xdd92
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x240(%rsp), %rdi
jmp 0x1229e
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rsi
movq %r12, %rdi
callq 0xe29c
jmp 0x121b5
movq 0x28(%r14), %rbx
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
movq %rbx, %rsi
callq 0xe72b
movq 0x30(%r14), %rbx
movq 0x28(%r14), %rsi
leaq 0x120(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
movq %rbx, %rsi
callq 0xe72b
movq %rsp, %rsi
leaq 0xc0(%rsp), %rdx
movq %r12, %rdi
callq 0xe431
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x122ab
movq 0x30(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rdx
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
callq 0xe72b
movq %rsp, %rsi
movq %r12, %rdi
movq %r14, %rdx
callq 0xe91a
jmp 0x122b0
movq 0x30(%r14), %r15
leaq 0xc0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x28(%r14), %rdx
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xe91a
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
movq %r15, %rsi
callq 0xeb54
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
movq %rsp, %rsi
movq %r12, %rdi
movq %r13, %rdx
callq 0x1130c
jmp 0x121b5
movq 0x30(%r14), %rsi
cmpl $0x1, 0x24(%rsi)
jne 0x120b3
leaq 0x120(%rsp), %rdi
movl $0x1, %edx
callq 0x11030
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x180(%rsp), %rdi
movl $0x2, %edx
callq 0x11030
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0xe72b
movq 0x30(%r14), %rsi
leaq 0x5d0(%rsp), %rdi
movl $0x2, %edx
callq 0x11030
leaq 0x240(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rsi
leaq 0x578(%rsp), %rdi
movl $0x1, %edx
callq 0x11030
leaq 0x1e0(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x578(%rsp), %rdx
callq 0xe72b
movq %rsp, %rdi
leaq 0x68(%rsp), %rsi
leaq 0x1e0(%rsp), %rdx
callq 0xe594
movq 0x30(%r14), %rsi
leaq 0x470(%rsp), %rdi
movl $0x1, %edx
callq 0x11030
leaq 0x360(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rbx # imm = 0x4000000000000000
movq %rbx, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x4c8(%rsp), %rdi
leaq 0x470(%rsp), %rsi
leaq 0x360(%rsp), %rdx
callq 0xeb54
movq 0x30(%r14), %rsi
leaq 0x3c0(%rsp), %rdi
movl $0x2, %edx
callq 0x11030
leaq 0x300(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movq %rbx, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x418(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
leaq 0x300(%rsp), %rdx
callq 0xeb54
leaq 0x520(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
leaq 0x418(%rsp), %rdx
callq 0xe431
movq %rsp, %rsi
leaq 0x520(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0x520(%rsp), %rdi
callq 0xdd92
leaq 0x418(%rsp), %rdi
callq 0xdd92
leaq 0x300(%rsp), %rdi
callq 0xdd92
leaq 0x3c0(%rsp), %rdi
callq 0xdd92
leaq 0x4c8(%rsp), %rdi
callq 0xdd92
leaq 0x360(%rsp), %rdi
callq 0xdd92
leaq 0x470(%rsp), %rdi
callq 0xdd92
movq %rsp, %rdi
callq 0xdd92
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x578(%rsp), %rdi
callq 0xdd92
leaq 0x240(%rsp), %rdi
callq 0xdd92
leaq 0x5d0(%rsp), %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x122bd
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0x120(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x30(%r14), %r14
leaq 0x1e0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x180(%rsp), %rdi
leaq 0x1e0(%rsp), %rdx
movq %r14, %rsi
callq 0xeb54
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0xe594
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0xece4
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x121b0
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
leaq 0xc0(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
movq 0x30(%r14), %r14
leaq 0x180(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %r14, %rsi
callq 0xeb54
leaq 0x68(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x120(%rsp), %rdx
callq 0xe431
movq %rsp, %rsi
leaq 0x68(%rsp), %rdx
movq %r12, %rdi
callq 0xe91a
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
movq %rsp, %rdi
jmp 0x122bd
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r13, %rdx
callq 0x1130c
movq 0x30(%r14), %rdx
movq %rsp, %rsi
movq %r12, %rdi
callq 0xe91a
jmp 0x121b5
movq 0x28(%r14), %rsi
leaq 0x68(%rsp), %rdi
movq %r13, %rdx
callq 0x1130c
movq %rsp, %rdi
leaq 0x68(%rsp), %rdx
movq %r15, %rsi
callq 0xe72b
movq 0x28(%r14), %r15
movq 0x30(%r14), %r14
leaq 0x180(%rsp), %rdi
movl $0x2, 0x24(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x38(%rdi)
movaps %xmm0, (%rdi)
movaps %xmm0, 0x10(%rdi)
movb $0x0, 0x20(%rdi)
movaps %xmm0, 0x40(%rdi)
movq $0x0, 0x50(%rdi)
callq 0xd888
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %r14, %rsi
callq 0xe594
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
movq %r15, %rsi
callq 0xeb54
movq %rsp, %rsi
leaq 0xc0(%rsp), %rdx
movq %r12, %rdi
callq 0xe72b
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
movq %rsp, %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x2a0(%rsp), %rdi
callq 0xdd92
movq %r12, %rax
addq $0x628, %rsp            # imm = 0x628
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movslq 0x70(%rcx), %r15
testq %r15, %r15
je 0x123fb
movq %rcx, %rbx
leaq 0x18(%rcx), %rdi
callq 0x10d00
cmpl $0x2, %eax
jl 0x1242f
movl %eax, %eax
movq %rax, 0x60(%rsp)
leaq (,%rax,8), %rdi
callq 0x4040
movq %rax, 0x58(%rsp)
movq %r13, %rbx
movq %r12, 0x118(%rsp)
xorl %ebp, %ebp
movq %rsp, %r12
movl $0x58, %edi
callq 0x4300
movq %rax, %r15
leaq 0x1(%rbp), %r13
movq %r12, %rdi
movq %r14, %rsi
movl %r13d, %edx
callq 0x11030
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x1130c
movq 0x58(%rsp), %rax
movq %r15, (%rax,%rbp,8)
movq %r12, %rdi
callq 0xdd92
movq %r13, %rbp
cmpq %r13, 0x60(%rsp)
jne 0x1232f
movq 0x50(%r14), %rax
movl 0x70(%rax), %esi
leaq -0x401d(%rip), %rcx     # 0xe368
movq %rsp, %rdi
movq 0x58(%rsp), %rdx
callq 0xf2ac
leaq 0x2a0(%rsp), %rdi
movq %rsp, %rsi
callq 0xd122
movq 0x118(%rsp), %r12
movq %rsp, %rdi
callq 0xdd92
movq 0x50(%r14), %rax
cmpl $0x0, 0x70(%rax)
jle 0x125fb
xorl %r15d, %r15d
movq 0x58(%rsp), %rax
movq (%rax,%r15,8), %rbx
testq %rbx, %rbx
je 0x123d9
movq %rbx, %rdi
callq 0xdd92
movl $0x58, %esi
movq %rbx, %rdi
callq 0x4310
incq %r15
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rax
cmpq %rax, %r15
jl 0x123c3
jmp 0x125fb
movl $0x2, 0x24(%r12)
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
movups %xmm0, 0x10(%r12)
movb $0x0, 0x20(%r12)
movups %xmm0, 0x28(%r12)
movups %xmm0, 0x38(%r12)
movups %xmm0, 0x48(%r12)
jmp 0x1165f
movq %r15, %rax
shlq $0x3, %rax
testl %r15d, %r15d
movq $-0x1, %rdi
cmovnsq %rax, %rdi
callq 0x4040
movq %rax, 0x58(%rsp)
testl %r15d, %r15d
jle 0x1258c
movq %r13, 0x1d8(%rsp)
movq %r12, 0x118(%rsp)
movq $0x0, 0x60(%rsp)
leaq 0x68(%rsp), %rbp
movq %rsp, %r12
movl $0x58, %edi
callq 0x4300
movq %rax, %r13
movq 0x78(%rbx), %rax
addq $0x18, %rbx
movq %rbx, %rsi
movq 0x60(%rsp), %rbx
movq (%rax,%rbx,8), %rdx
movq %r13, %rdi
callq 0x1130c
movq 0x58(%rsp), %rax
movq %r13, (%rax,%rbx,8)
movq 0x50(%r14), %rax
cmpl $0x0, 0x70(%rax)
jle 0x1250a
xorl %r15d, %r15d
movq 0x78(%rax), %rax
movq (%rax,%r15,8), %rbx
movq 0x30(%r14), %rsi
incq %r15
movq %rbp, %rdi
movl %r15d, %edx
callq 0x11030
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movq %rbp, %rcx
callq 0x111b8
movq %r13, %rdi
movq %r12, %rsi
callq 0xd122
movq %r12, %rdi
callq 0xdd92
movq %rbp, %rdi
callq 0xdd92
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rcx
cmpq %rcx, %r15
jl 0x124b7
movq 0x30(%r14), %rsi
movq 0x60(%rsp), %rbx
incq %rbx
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movl %ebx, %edx
callq 0x11030
movq %rbp, %rdi
movq %r15, %rsi
movq 0x1d8(%rsp), %rdx
callq 0x1130c
movq %r12, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0xe72b
movq %rbx, 0x60(%rsp)
movq %r13, %rdi
movq %r12, %rsi
callq 0xd122
movq %r12, %rdi
callq 0xdd92
movq %rbp, %rdi
callq 0xdd92
movq %r15, %rdi
callq 0xdd92
movq 0x50(%r14), %rbx
movslq 0x70(%rbx), %r15
cmpq %r15, 0x60(%rsp)
jl 0x12478
movq 0x118(%rsp), %r12
leaq -0x4162(%rip), %rcx     # 0xe431
movq %rsp, %rdi
movl %r15d, %esi
movq 0x58(%rsp), %rdx
callq 0xf2ac
leaq 0x2a0(%rsp), %rdi
movq %rsp, %rsi
callq 0xd122
movq %rsp, %rdi
callq 0xdd92
movq 0x50(%r14), %rax
cmpl $0x0, 0x70(%rax)
jle 0x125fb
xorl %r15d, %r15d
movq 0x58(%rsp), %rax
movq (%rax,%r15,8), %rbx
testq %rbx, %rbx
je 0x125de
movq %rbx, %rdi
callq 0xdd92
movl $0x58, %esi
movq %rbx, %rdi
callq 0x4310
incq %r15
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rax
cmpq %rax, %r15
jl 0x125c8
movq 0x58(%rsp), %rdi
callq 0x43c0
leaq 0x2a0(%rsp), %rsi
movq %r12, %rdi
callq 0xdeaa
jmp 0x122c2
jmp 0x12a1c
jmp 0x12ae6
jmp 0x12a1c
jmp 0x12ae6
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xdd92
jmp 0x12643
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x12916
jmp 0x12962
jmp 0x12aca
jmp 0x12ad7
jmp 0x12a1c
jmp 0x12ae6
jmp 0x12ae6
movq %rax, %rbx
leaq 0x520(%rsp), %rdi
callq 0xdd92
jmp 0x12683
movq %rax, %rbx
leaq 0x418(%rsp), %rdi
callq 0xdd92
jmp 0x12695
movq %rax, %rbx
leaq 0x300(%rsp), %rdi
callq 0xdd92
jmp 0x126a7
movq %rax, %rbx
leaq 0x3c0(%rsp), %rdi
callq 0xdd92
jmp 0x126b9
movq %rax, %rbx
leaq 0x4c8(%rsp), %rdi
callq 0xdd92
leaq 0x360(%rsp), %rdi
callq 0xdd92
leaq 0x470(%rsp), %rdi
callq 0xdd92
movq %rsp, %rdi
callq 0xdd92
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
leaq 0x578(%rsp), %rdi
callq 0xdd92
leaq 0x240(%rsp), %rdi
callq 0xdd92
leaq 0x5d0(%rsp), %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x180(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x12adf
movq %rax, %rbx
jmp 0x126c6
movq %rax, %rbx
jmp 0x126d3
movq %rax, %rbx
jmp 0x126e0
movq %rax, %rbx
jmp 0x126e8
movq %rax, %rbx
jmp 0x126f5
movq %rax, %rbx
jmp 0x12702
jmp 0x128d8
movq %rax, %rbx
jmp 0x1270f
jmp 0x1292c
movq %rax, %rbx
jmp 0x1271c
jmp 0x12991
movq %rax, %rbx
jmp 0x12726
jmp 0x129d1
movq %rax, %rbx
jmp 0x12733
jmp 0x12a1c
movq %rax, %rbx
jmp 0x12740
jmp 0x12ae6
jmp 0x12ae6
movq %rax, %rbx
movq %rsp, %rdi
callq 0xdd92
jmp 0x127d5
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
jmp 0x127e7
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0xdd92
jmp 0x127f9
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0xdd92
jmp 0x1280b
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
jmp 0x12818
movq %rax, %rbx
movq %rsp, %rdi
callq 0xdd92
jmp 0x1282a
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0xdd92
jmp 0x1283c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xdd92
jmp 0x12856
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0x120(%rsp), %rdi
jmp 0x12a89
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
jmp 0x12a7f
movq %rax, %rbx
jmp 0x12846
jmp 0x12a74
jmp 0x12a6f
jmp 0x12a6f
jmp 0x12ae6
jmp 0x12ae6
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xdd92
jmp 0x128a5
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
jmp 0x128b7
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xdd92
jmp 0x128c9
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xdd92
jmp 0x128ea
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
jmp 0x1290e
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
jmp 0x1292f
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0xdd92
jmp 0x12941
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xdd92
jmp 0x12958
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0xdd92
jmp 0x12965
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
jmp 0x1297a
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xdd92
jmp 0x12994
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0xdd92
jmp 0x129a8
jmp 0x12a1c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x1296d
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0xdd92
jmp 0x12acd
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x1299c
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x1296d
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0xdd92
jmp 0x129d4
jmp 0x12a1c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x129e8
jmp 0x12a74
jmp 0x12aca
jmp 0x12aca
jmp 0x12aca
jmp 0x129d1
jmp 0x129e0
jmp 0x12aca
jmp 0x129e0
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x129e8
jmp 0x129e0
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
jmp 0x12a1f
jmp 0x12a74
jmp 0x12a1c
jmp 0x12a6f
jmp 0x12ad7
jmp 0x12ad7
jmp 0x12a1c
jmp 0x12ad7
jmp 0x12a1c
jmp 0x12a1c
jmp 0x12a1c
jmp 0x12ad7
jmp 0x12a1c
jmp 0x12a1c
jmp 0x12a1c
jmp 0x12a1c
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x12adf
jmp 0x12a6f
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
jmp 0x12ae6
movq %rax, %rbx
jmp 0x12a8e
movq %rax, %rbx
jmp 0x12a84
movq %rax, %rbx
movq %rsp, %rdi
callq 0xdd92
leaq 0x68(%rsp), %rdi
callq 0xdd92
leaq 0xc0(%rsp), %rdi
jmp 0x12adf
jmp 0x12ae6
movq %rax, %rbx
movl $0x58, %esi
movq %r13, %rdi
jmp 0x12ac3
jmp 0x12ae6
jmp 0x12ae6
movq %rax, %rbx
jmp 0x12abb
movq %rax, %rbx
movq %rsp, %rdi
callq 0xdd92
movl $0x58, %esi
movq %r15, %rdi
callq 0x4310
jmp 0x12ae9
movq %rax, %rbx
movq %rsp, %rdi
callq 0xdd92
jmp 0x12ada
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd92
jmp 0x12ae9
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
callq 0xdd92
movq %rbx, %rdi
callq 0x45b0