// File: /workspace/github_cpp_makefile_star2_O2/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 $0x5f8, %rsp            # imm = 0x5F8
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movq %rsi, %rdi
movq %rdx, %rsi
callq 0xf230
testb %al, %al
je 0xf6f6
cmpl $0x3, 0x24(%r14)
jne 0xf706
movsd 0x11a0c(%rip), %xmm0    # 0x21100
jmp 0xf6f9
xorps %xmm0, %xmm0
movq %r15, %rdi
callq 0xca6e
jmp 0x103b1
leaq 0x288(%rsp), %rdi
callq 0xc3a0
movl 0x24(%r14), %eax
movsd 0x121b1(%rip), %xmm0    # 0x218d0
decl %eax
cmpl $0x15, %eax
ja 0x103c9
leaq 0x12277(%rip), %rcx     # 0x219a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xce14
jmp 0xfb17
movq 0x28(%r14), %rbx
leaq 0xb8(%rsp), %rdi
movsd 0x1215d(%rip), %xmm0    # 0x218e0
callq 0xca6e
movq 0x30(%r14), %rdx
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xd436
movq %rsp, %rdi
leaq 0x60(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0xf6bc
jmp 0x102c2
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rdx
movq %rsp, %rsi
movq %r15, %rdi
callq 0xd29a
jmp 0x102c2
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
callq 0xd647
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xd116
jmp 0xfb17
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0xb8(%rsp), %rdi
movsd 0x118b4(%rip), %xmm0    # 0x21100
callq 0xca6e
leaq 0x168(%rsp), %rdi
movsd 0x12077(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x110(%rsp), %rdi
leaq 0x168(%rsp), %rdx
movq %r14, %rsi
callq 0xd436
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xcea2
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xd116
jmp 0x10291
movq 0x50(%r14), %r13
movzbl 0x8(%r13), %eax
testl %eax, %eax
je 0x103c9
cmpl $0xff, %eax
je 0x103c9
movslq 0x70(%r13), %rbx
testq %rbx, %rbx
je 0x103c6
leaq 0x18(%r13), %rdi
callq 0xf126
cmpl $0x2, %eax
movq %r15, 0x1c0(%rsp)
jl 0x103d3
movq %r12, %rbx
movl %eax, %ebp
leaq (,%rbp,8), %rdi
callq 0x4040
movq %rax, 0x58(%rsp)
xorl %r15d, %r15d
movq %rsp, %r12
cmpq %r15, %rbp
je 0x10510
pushq $0x58
popq %rdi
callq 0x4320
movq %rax, %r13
leal 0x1(%r15), %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0xf44c
movq %r13, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0xf6bc
movq 0x58(%rsp), %rax
movq %r13, (%rax,%r15,8)
movq %r12, %rdi
callq 0xc8b8
incq %r15
jmp 0xf90d
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xcfc2
jmp 0xfb17
movq 0x30(%r14), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0xf230
testb %al, %al
je 0x102ca
movq 0x28(%r14), %rsi
leaq 0xb8(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq 0x28(%r14), %rbx
movq 0x30(%r14), %rsi
leaq 0x168(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0x110(%rsp), %rdi
leaq 0x168(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xcfc2
movq 0x30(%r14), %rbx
leaq 0x230(%rsp), %rdi
movsd 0x11eb6(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x1d8(%rsp), %rdi
leaq 0x230(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
movq %rsp, %rsi
leaq 0x1d8(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x230(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0x60(%rsp), %rdi
jmp 0xfc24
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0xcd82
movq 0x30(%r14), %rsi
leaq 0xb8(%rsp), %rdi
callq 0xd5ea
movq %rsp, %rsi
leaq 0xb8(%rsp), %rdx
movq %r15, %rdi
callq 0xd116
leaq 0xb8(%rsp), %rdi
jmp 0x1038d
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xcea2
leaq 0x60(%rsp), %rdi
jmp 0x102bd
movq 0x30(%r14), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0xf230
testb %al, %al
je 0x102ea
movq 0x28(%r14), %rsi
leaq 0xb8(%rsp), %rdi
callq 0xd701
movq 0x30(%r14), %rsi
leaq 0x110(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xd116
movq 0x30(%r14), %rbx
movq 0x28(%r14), %rsi
leaq 0x230(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0x1d8(%rsp), %rdi
leaq 0x230(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq 0x28(%r14), %rdx
leaq 0x168(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0xd29a
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x168(%rsp), %rdx
callq 0xcea2
movq %rsp, %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0xd116
movq %rsp, %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x230(%rsp), %rdi
callq 0xc8b8
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
jmp 0x1039f
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0xb8(%rsp), %rdi
movsd 0x11c83(%rip), %xmm0    # 0x218d8
callq 0xca6e
movq 0x30(%r14), %rsi
leaq 0x110(%rsp), %rdi
callq 0xd530
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xd116
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x102b0
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0xd116
jmp 0x102c2
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0xcd82
leaq 0x168(%rsp), %rdi
movsd 0x11404(%rip), %xmm0    # 0x21100
callq 0xca6e
movq 0x30(%r14), %rbx
leaq 0x230(%rsp), %rdi
movsd 0x11bc3(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x1d8(%rsp), %rdi
leaq 0x230(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
leaq 0x110(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0xcfc2
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0xd530
movq %rsp, %rsi
leaq 0xb8(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
callq 0xc8b8
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x230(%rsp), %rdi
jmp 0x10380
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rsi
movq %r15, %rdi
callq 0xcd82
jmp 0x102c2
movq 0x28(%r14), %rbx
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rdi
leaq 0x60(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq 0x30(%r14), %rbx
movq 0x28(%r14), %rsi
leaq 0x110(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq %rsp, %rsi
leaq 0xb8(%rsp), %rdx
movq %r15, %rdi
callq 0xcea2
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x1038d
movq 0x30(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rdx
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
callq 0xd116
movq %rsp, %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0xd29a
jmp 0x10392
movq 0x30(%r14), %rbx
leaq 0xb8(%rsp), %rdi
movsd 0x1126b(%rip), %xmm0    # 0x21100
callq 0xca6e
movq 0x28(%r14), %rdx
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xd29a
movq %rsp, %rdi
leaq 0x60(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0xf6bc
jmp 0x102c2
movq 0x30(%r14), %rsi
cmpl $0x1, 0x24(%rsi)
jne 0x10216
leaq 0x110(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0xf44c
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x168(%rsp), %rdi
pushq $0x2
popq %rdx
callq 0xf44c
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x168(%rsp), %rdx
callq 0xd116
movq 0x30(%r14), %rsi
leaq 0x5a0(%rsp), %rdi
pushq $0x2
popq %rdx
callq 0xf44c
leaq 0x230(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rsi
leaq 0x548(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0xf44c
leaq 0x1d8(%rsp), %rdi
leaq 0x230(%rsp), %rsi
leaq 0x548(%rsp), %rdx
callq 0xd116
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0xcfc2
movq 0x30(%r14), %rsi
leaq 0x440(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0xf44c
leaq 0x3e8(%rsp), %rdi
movsd 0x118f4(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x498(%rsp), %rdi
leaq 0x440(%rsp), %rsi
leaq 0x3e8(%rsp), %rdx
callq 0xd436
movq 0x30(%r14), %rsi
leaq 0x338(%rsp), %rdi
pushq $0x2
popq %rdx
callq 0xf44c
leaq 0x2e0(%rsp), %rdi
movsd 0x118ae(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x390(%rsp), %rdi
leaq 0x338(%rsp), %rsi
leaq 0x2e0(%rsp), %rdx
callq 0xd436
leaq 0x4f0(%rsp), %rdi
leaq 0x498(%rsp), %rsi
leaq 0x390(%rsp), %rdx
callq 0xcea2
movq %rsp, %rsi
leaq 0x4f0(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0x4f0(%rsp), %rdi
callq 0xc8b8
leaq 0x390(%rsp), %rdi
callq 0xc8b8
leaq 0x2e0(%rsp), %rdi
callq 0xc8b8
leaq 0x338(%rsp), %rdi
callq 0xc8b8
leaq 0x498(%rsp), %rdi
callq 0xc8b8
leaq 0x3e8(%rsp), %rdi
callq 0xc8b8
leaq 0x440(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rdi
callq 0xc8b8
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x548(%rsp), %rdi
callq 0xc8b8
leaq 0x230(%rsp), %rdi
callq 0xc8b8
leaq 0x5a0(%rsp), %rdi
callq 0xc8b8
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x1039f
movq 0x30(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0x110(%rsp), %rdi
movsd 0x10f9d(%rip), %xmm0    # 0x21100
callq 0xca6e
movq 0x30(%r14), %rbx
leaq 0x1d8(%rsp), %rdi
movsd 0x1175c(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x168(%rsp), %rdi
leaq 0x1d8(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x168(%rsp), %rdx
callq 0xcfc2
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xd530
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x102bd
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
leaq 0xb8(%rsp), %rdi
movsd 0x10ecf(%rip), %xmm0    # 0x21100
callq 0xca6e
movq 0x30(%r14), %rbx
leaq 0x168(%rsp), %rdi
movsd 0x1168e(%rip), %xmm0    # 0x218d8
callq 0xca6e
leaq 0x110(%rsp), %rdi
leaq 0x168(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
leaq 0x60(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0xcea2
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0xd29a
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rdi
jmp 0x1039f
movq 0x28(%r14), %rsi
movq %rsp, %rdi
movq %r12, %rdx
callq 0xf6bc
movq 0x30(%r14), %rdx
movq %rsp, %rsi
movq %r15, %rdi
callq 0xd29a
jmp 0x102c2
movq 0x28(%r14), %rsi
leaq 0x60(%rsp), %rdi
movq %r12, %rdx
callq 0xf6bc
movq %rsp, %rdi
leaq 0x60(%rsp), %rdx
movq %rbx, %rsi
callq 0xd116
movq 0x28(%r14), %rbx
movq 0x30(%r14), %r14
leaq 0x168(%rsp), %rdi
movsd 0x10ddd(%rip), %xmm0    # 0x21100
callq 0xca6e
leaq 0x110(%rsp), %rdi
leaq 0x168(%rsp), %rdx
movq %r14, %rsi
callq 0xcfc2
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rdx
movq %rbx, %rsi
callq 0xd436
movq %rsp, %rsi
leaq 0xb8(%rsp), %rdx
movq %r15, %rdi
callq 0xd116
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rdi
callq 0xc8b8
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x288(%rsp), %rdi
callq 0xc8b8
movq %r15, %rax
addq $0x5f8, %rsp            # imm = 0x5F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorps %xmm0, %xmm0
movq %r15, %rdi
callq 0xca6e
jmp 0x103a4
movq %r12, 0x1c8(%rsp)
movq %rbx, %rax
shlq $0x3, %rax
testl %ebx, %ebx
pushq $-0x1
popq %rdi
cmovnsq %rax, %rdi
callq 0x4040
movq %rax, 0x58(%rsp)
xorl %r15d, %r15d
leaq 0x60(%rsp), %rbp
movq %rsp, %r12
movslq %ebx, %rax
cmpq %rax, %r15
jge 0x10580
pushq $0x58
popq %rdi
callq 0x4320
movq %rax, %rbx
movq 0x78(%r13), %rax
addq $0x18, %r13
movq (%rax,%r15,8), %rdx
movq %rbx, %rdi
movq %r13, %rsi
callq 0xf6bc
movq 0x58(%rsp), %rax
movq %r15, 0x1d0(%rsp)
movq %rbx, (%rax,%r15,8)
xorl %r15d, %r15d
leaq 0xb8(%rsp), %r13
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rcx
cmpq %rcx, %r15
jge 0x104a0
movq 0x78(%rax), %rax
movq (%rax,%r15,8), %r13
movq 0x30(%r14), %rsi
leal 0x1(%r15), %edx
movq %rbp, %rdi
callq 0xf44c
movq %r12, %rdi
movq %rbx, %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq 0xf5a6
movq %rbx, %rdi
movq %r12, %rsi
callq 0xbd52
movq %r12, %rdi
callq 0xc8b8
movq %rbp, %rdi
callq 0xc8b8
incq %r15
jmp 0x10442
movq 0x30(%r14), %rsi
movq 0x1d0(%rsp), %r15
incq %r15
movq %r13, %rdi
movl %r15d, %edx
callq 0xf44c
movq %rbp, %rdi
movq %r13, %rsi
movq 0x1c8(%rsp), %rdx
callq 0xf6bc
movq %r12, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0xd116
movq %rbx, %rdi
movq %r12, %rsi
callq 0xbd52
movq %r12, %rdi
callq 0xc8b8
movq %rbp, %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
movq 0x50(%r14), %r13
movl 0x70(%r13), %ebx
jmp 0x10400
movq 0x50(%r14), %rax
movl 0x70(%rax), %esi
leaq -0x370a(%rip), %rcx     # 0xce14
movq %rsp, %rdi
movq 0x58(%rsp), %rdx
callq 0xd8d2
leaq 0x288(%rsp), %rdi
movq %rsp, %rsi
callq 0xbd52
movq %rsp, %rdi
callq 0xc8b8
xorl %r12d, %r12d
pushq $0x58
popq %rbx
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rax
cmpq %rax, %r12
jge 0x105e7
movq 0x58(%rsp), %rax
movq (%rax,%r12,8), %r15
testq %r15, %r15
je 0x10570
movq %r15, %rdi
callq 0xc8b8
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4330
incq %r12
jmp 0x10549
leaq -0x36e5(%rip), %rcx     # 0xcea2
movq %rsp, %rdi
movl %ebx, %esi
movq 0x58(%rsp), %rdx
callq 0xd8d2
leaq 0x288(%rsp), %rdi
movq %rsp, %rsi
callq 0xbd52
movq %rsp, %rdi
callq 0xc8b8
xorl %r12d, %r12d
pushq $0x58
popq %rbx
movq 0x50(%r14), %rax
movslq 0x70(%rax), %rax
cmpq %rax, %r12
jge 0x105e7
movq 0x58(%rsp), %rax
movq (%rax,%r12,8), %r15
testq %r15, %r15
je 0x105d7
movq %r15, %rdi
callq 0xc8b8
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4330
incq %r12
jmp 0x105b4
movq 0x58(%rsp), %rdi
callq 0x43e0
leaq 0x288(%rsp), %rsi
movq 0x1c0(%rsp), %r15
movq %r15, %rdi
callq 0xc9b6
jmp 0x103a4
jmp 0x10a10
jmp 0x10ad0
jmp 0x10a10
jmp 0x10ad0
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
jmp 0x10637
movq %rax, %r14
leaq 0x110(%rsp), %rdi
jmp 0x1090a
jmp 0x10956
jmp 0x10ab4
jmp 0x10ac1
jmp 0x10a10
jmp 0x10ad0
jmp 0x10ad0
movq %rax, %r14
leaq 0x4f0(%rsp), %rdi
callq 0xc8b8
jmp 0x10677
movq %rax, %r14
leaq 0x390(%rsp), %rdi
callq 0xc8b8
jmp 0x10689
movq %rax, %r14
leaq 0x2e0(%rsp), %rdi
callq 0xc8b8
jmp 0x1069b
movq %rax, %r14
leaq 0x338(%rsp), %rdi
callq 0xc8b8
jmp 0x106ad
movq %rax, %r14
leaq 0x498(%rsp), %rdi
callq 0xc8b8
leaq 0x3e8(%rsp), %rdi
callq 0xc8b8
leaq 0x440(%rsp), %rdi
callq 0xc8b8
movq %rsp, %rdi
callq 0xc8b8
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
leaq 0x548(%rsp), %rdi
callq 0xc8b8
leaq 0x230(%rsp), %rdi
callq 0xc8b8
leaq 0x5a0(%rsp), %rdi
callq 0xc8b8
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x168(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x10ac9
movq %rax, %r14
jmp 0x106ba
movq %rax, %r14
jmp 0x106c7
movq %rax, %r14
jmp 0x106d4
movq %rax, %r14
jmp 0x106dc
movq %rax, %r14
jmp 0x106e9
movq %rax, %r14
jmp 0x106f6
jmp 0x108cc
movq %rax, %r14
jmp 0x10703
jmp 0x10920
movq %rax, %r14
jmp 0x10710
jmp 0x10985
movq %rax, %r14
jmp 0x1071a
jmp 0x109c5
movq %rax, %r14
jmp 0x10727
jmp 0x10a10
movq %rax, %r14
jmp 0x10734
jmp 0x10ad0
jmp 0x10ad0
movq %rax, %r14
movq %rsp, %rdi
callq 0xc8b8
jmp 0x107c9
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
jmp 0x107db
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0xc8b8
jmp 0x107ed
movq %rax, %r14
leaq 0x230(%rsp), %rdi
callq 0xc8b8
jmp 0x107ff
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
jmp 0x1080c
movq %rax, %r14
movq %rsp, %rdi
callq 0xc8b8
jmp 0x1081e
movq %rax, %r14
leaq 0x230(%rsp), %rdi
callq 0xc8b8
jmp 0x10830
movq %rax, %r14
leaq 0x110(%rsp), %rdi
callq 0xc8b8
jmp 0x1084a
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0x110(%rsp), %rdi
jmp 0x10a79
movq %rax, %r14
leaq 0x168(%rsp), %rdi
jmp 0x10a6a
movq %rax, %r14
jmp 0x1083a
jmp 0x10a71
jmp 0x10a5d
jmp 0x10a5d
jmp 0x10ad0
jmp 0x10ad0
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
jmp 0x10899
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
jmp 0x108ab
movq %rax, %r14
leaq 0x110(%rsp), %rdi
callq 0xc8b8
jmp 0x108bd
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
jmp 0x108de
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
jmp 0x10902
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
jmp 0x10923
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0xc8b8
jmp 0x10935
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0xc8b8
jmp 0x1094c
movq %rax, %r14
leaq 0x230(%rsp), %rdi
callq 0xc8b8
jmp 0x10959
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
jmp 0x1096e
movq %rax, %r14
leaq 0x110(%rsp), %rdi
callq 0xc8b8
jmp 0x10988
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0xc8b8
jmp 0x1099c
jmp 0x10a10
movq %rax, %r14
leaq 0x110(%rsp), %rdi
jmp 0x10961
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0xc8b8
jmp 0x10ab7
movq %rax, %r14
leaq 0x110(%rsp), %rdi
jmp 0x10990
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
jmp 0x10961
movq %rax, %r14
leaq 0x168(%rsp), %rdi
callq 0xc8b8
jmp 0x109c8
jmp 0x10a10
movq %rax, %r14
leaq 0x110(%rsp), %rdi
jmp 0x109dc
jmp 0x10a71
jmp 0x10ab4
jmp 0x10ab4
jmp 0x10ab4
jmp 0x109c5
jmp 0x109d4
jmp 0x10ab4
jmp 0x109d4
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
jmp 0x109dc
jmp 0x109d4
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
jmp 0x10a13
jmp 0x10a71
jmp 0x10a10
jmp 0x10a5d
jmp 0x10ac1
jmp 0x10ac1
jmp 0x10a10
jmp 0x10ac1
jmp 0x10a10
jmp 0x10a10
jmp 0x10a10
jmp 0x10ac1
jmp 0x10a10
jmp 0x10a10
jmp 0x10a10
jmp 0x10a10
movq %rax, %r14
movq %rsp, %rdi
jmp 0x10ac9
jmp 0x10a5d
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
jmp 0x10ad0
movq %rax, %r14
jmp 0x10a7e
jmp 0x10ad0
movq %rax, %r14
movq %rsp, %rdi
callq 0xc8b8
jmp 0x10a74
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
leaq 0xb8(%rsp), %rdi
jmp 0x10ac9
movq %rax, %r14
pushq $0x58
popq %rsi
movq %rbx, %rdi
jmp 0x10aad
jmp 0x10ad0
jmp 0x10ad0
movq %rax, %r14
jmp 0x10aa7
movq %rax, %r14
movq %rsp, %rdi
callq 0xc8b8
pushq $0x58
popq %rsi
movq %r13, %rdi
callq 0x4330
jmp 0x10ad3
movq %rax, %r14
movq %rsp, %rdi
callq 0xc8b8
jmp 0x10ac4
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xc8b8
jmp 0x10ad3
movq %rax, %r14
leaq 0x288(%rsp), %rdi
callq 0xc8b8
movq %r14, %rdi
callq 0x45c0