// File: atfrank[P]PCASA/lib/Analyze.cpp
// Function: Analyze::allAnglesDihedrals(Molecule*, std::vector<std::vector<double, std::allocator<double>>, std::allocator<std::vector<double, std::allocator<double>>>>&)
void Analyze::allAnglesDihedrals(Molecule *mol, std::vector<std::vector<double> >& anglesin){
  unsigned int i, j;
  Chain *c;
  Atom *atmI, *iMinusTwo, *iMinusOne, *iPlusOne, *iPlusTwo, *iPlusThree;
  unsigned int size;
  std::vector<double> angles;

  anglesin.resize(mol->getAtmVecSize());

  for (i=0; i< mol->getChnVecSize(); i++){
    c=mol->getChain(i);
    size=c->getAtmVecSize();
    for (j=0; j< c->getAtmVecSize(); j++){
      atmI=c->getAtom(j);
      iMinusTwo=NULL;
      iMinusOne=NULL;
      iPlusOne=NULL;
      iPlusTwo=NULL;
      iPlusThree=NULL;

      if (j > 1 && atmI->getResId()-2 == c->getAtom(j-2)->getResId()){
        iMinusTwo=c->getAtom(j-2);
      }
      else{
        if (j > 1 && atmI->getResId() == c->getAtom(j-2)->getResId() && (atmI->getICode().compare(0,1,c->getAtom(j-1)->getICode(),0,1) != 0)){
          iMinusTwo=c->getAtom(j-2);
        }
      }

      if (j > 0 && atmI->getResId()-1 == c->getAtom(j-1)->getResId()){
        iMinusOne=c->getAtom(j-1);
      }
      else{
        if (j > 0 && atmI->getResId() == c->getAtom(j-1)->getResId() && (atmI->getICode().compare(0,1,c->getAtom(j-1)->getICode(),0,1) != 0)){
          iMinusOne=c->getAtom(j-1);
        }
      }

      if (j+1 < size && atmI->getResId()+1 == c->getAtom(j+1)->getResId()){
        iPlusOne=c->getAtom(j+1);
      }
      else{
        if (j+1 < size && atmI->getResId() == c->getAtom(j+1)->getResId() && (atmI->getICode().compare(0,1,c->getAtom(j+1)->getICode(),0,1) != 0)){
          iPlusOne=c->getAtom(j+1);
        }
      }

      if (j+2 < size && atmI->getResId()+2 == c->getAtom(j+2)->getResId()){
        iPlusTwo=c->getAtom(j+2);
      }
      else{
        if (j+2 < size && atmI->getResId() == c->getAtom(j+2)->getResId() && (atmI->getICode().compare(0,1,c->getAtom(j+2)->getICode(),0,1) != 0)){
          iPlusTwo=c->getAtom(j+2);
        }
      }

      if (j+3 < size && atmI->getResId()+3 == c->getAtom(j+3)->getResId()){
        iPlusThree=c->getAtom(j+3);
      }
      else{
        if (j+3 < size && atmI->getResId() == c->getAtom(j+3)->getResId() && (atmI->getICode().compare(0,1,c->getAtom(j+3)->getICode(),0,1) !=0)){
          iPlusThree=c->getAtom(j+3);
        }
      }
      
      angles.clear();
      angles.resize(3, 9999.9);
      if (iMinusOne != NULL && iPlusOne != NULL){
        //Get Angle
        angles.at(0)=Analyze::angle(iMinusOne->getCoor(), atmI->getCoor(), iPlusOne->getCoor());
      }
      if (iPlusOne != NULL && iPlusTwo != NULL && iPlusThree != NULL){
        //Get Dihedral
        angles.at(1)=Analyze::dihedral(atmI->getCoor(), iPlusOne->getCoor(), iPlusTwo->getCoor(), iPlusThree->getCoor());
      }
      if (iMinusTwo != NULL && iPlusTwo != NULL){
        //Get Wide Angle (i-2, i, i+2)
        angles.at(2)=Analyze::angle(iMinusTwo->getCoor(), atmI->getCoor(), iPlusTwo->getCoor());
      }
      anglesin.at(atmI->getAtmInx()).resize(3);
      anglesin.at(atmI->getAtmInx())=angles;
    }
  }
}

// Assembly:
subq $0x458, %rsp            # imm = 0x458
movq %rdi, 0x450(%rsp)
movq %rsi, 0x448(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x16940
movq 0x448(%rsp), %rax
movq %rax, 0x360(%rsp)
movq 0x450(%rsp), %rdi
callq 0x436b0
movl %eax, 0x36c(%rsp)
jmp 0x1574a
movq 0x360(%rsp), %rdi
movl 0x36c(%rsp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x17490
jmp 0x15764
movl $0x0, 0x444(%rsp)
movl 0x444(%rsp), %eax
movl %eax, 0x358(%rsp)
movq 0x450(%rsp), %rdi
callq 0x41e20
movl %eax, 0x35c(%rsp)
jmp 0x15793
movl 0x358(%rsp), %eax
movl 0x35c(%rsp), %ecx
cmpl %ecx, %eax
jae 0x168e8
movq 0x450(%rsp), %rdi
leaq 0x444(%rsp), %rsi
callq 0x41e40
movq %rax, 0x350(%rsp)
jmp 0x157c8
movq 0x350(%rsp), %rax
movq %rax, 0x438(%rsp)
movq 0x438(%rsp), %rdi
callq 0x3a550
movl %eax, 0x34c(%rsp)
jmp 0x157ee
movl 0x34c(%rsp), %eax
movl %eax, 0x404(%rsp)
movl $0x0, 0x440(%rsp)
movl 0x440(%rsp), %eax
movl %eax, 0x344(%rsp)
movq 0x438(%rsp), %rdi
callq 0x3a550
movl %eax, 0x348(%rsp)
jmp 0x1582b
movl 0x344(%rsp), %eax
movl 0x348(%rsp), %ecx
cmpl %ecx, %eax
jae 0x168d0
movq 0x438(%rsp), %rdi
leaq 0x440(%rsp), %rsi
callq 0x3a420
movq %rax, 0x338(%rsp)
jmp 0x15860
movq 0x338(%rsp), %rax
movq %rax, 0x430(%rsp)
movq $0x0, 0x428(%rsp)
movq $0x0, 0x420(%rsp)
movq $0x0, 0x418(%rsp)
movq $0x0, 0x410(%rsp)
movq $0x0, 0x408(%rsp)
xorl %eax, %eax
cmpl $0x1, 0x440(%rsp)
movb %al, 0x337(%rsp)
jbe 0x15950
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x328(%rsp)
jmp 0x158da
movq 0x328(%rsp), %rax
movl (%rax), %eax
addl $-0x2, %eax
movl %eax, 0x31c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $-0x2, %eax
movl %eax, 0x3d8(%rsp)
leaq 0x3d8(%rsp), %rsi
callq 0x3a420
movq %rax, 0x320(%rsp)
jmp 0x1591e
movq 0x320(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x310(%rsp)
jmp 0x15935
movl 0x31c(%rsp), %eax
movq 0x310(%rsp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, 0x337(%rsp)
movb 0x337(%rsp), %al
testb $0x1, %al
jne 0x1595d
jmp 0x159c8
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $-0x2, %eax
movl %eax, 0x3d4(%rsp)
leaq 0x3d4(%rsp), %rsi
callq 0x3a420
movq %rax, 0x308(%rsp)
jmp 0x1598d
movq 0x308(%rsp), %rax
movq %rax, 0x428(%rsp)
jmp 0x15b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3e0(%rsp)
movl %eax, 0x3dc(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x7c00
jmp 0x168fd
xorl %eax, %eax
cmpl $0x1, 0x440(%rsp)
movb %al, 0x307(%rsp)
jbe 0x15b0e
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x2f8(%rsp)
jmp 0x159f6
movq 0x2f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x2ec(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $-0x2, %eax
movl %eax, 0x3d0(%rsp)
leaq 0x3d0(%rsp), %rsi
callq 0x3a420
movq %rax, 0x2f0(%rsp)
jmp 0x15a37
movq 0x2f0(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x2e0(%rsp)
jmp 0x15a4e
movl 0x2ec(%rsp), %ecx
movq 0x2e0(%rsp), %rdx
xorl %eax, %eax
cmpl (%rdx), %ecx
movb %al, 0x307(%rsp)
jne 0x15b0e
movq 0x430(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x2d8(%rsp)
jmp 0x15a85
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3cc(%rsp)
leaq 0x3cc(%rsp), %rsi
callq 0x3a420
movq %rax, 0x2d0(%rsp)
jmp 0x15ab4
movq 0x2d0(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x2c8(%rsp)
jmp 0x15acb
movq 0x2c8(%rsp), %rcx
movq 0x2d8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %r8d
movl $0x1, %r9d
movq %r8, %rsi
movq %r9, %rdx
callq 0x5090
movl %eax, 0x2c4(%rsp)
jmp 0x15afa
movl 0x2c4(%rsp), %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x307(%rsp)
movb 0x307(%rsp), %al
testb $0x1, %al
jne 0x15b1b
jmp 0x15b5b
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $-0x2, %eax
movl %eax, 0x3c8(%rsp)
leaq 0x3c8(%rsp), %rsi
callq 0x3a420
movq %rax, 0x2b8(%rsp)
jmp 0x15b4b
movq 0x2b8(%rsp), %rax
movq %rax, 0x428(%rsp)
jmp 0x15b5d
xorl %eax, %eax
cmpl $0x0, 0x440(%rsp)
movb %al, 0x2b7(%rsp)
jbe 0x15bff
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x2a8(%rsp)
jmp 0x15b8b
movq 0x2a8(%rsp), %rax
movl (%rax), %eax
decl %eax
movl %eax, 0x29c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3c4(%rsp)
leaq 0x3c4(%rsp), %rsi
callq 0x3a420
movq %rax, 0x2a0(%rsp)
jmp 0x15bcd
movq 0x2a0(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x290(%rsp)
jmp 0x15be4
movl 0x29c(%rsp), %eax
movq 0x290(%rsp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, 0x2b7(%rsp)
movb 0x2b7(%rsp), %al
testb $0x1, %al
jne 0x15c0c
jmp 0x15c50
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3c0(%rsp)
leaq 0x3c0(%rsp), %rsi
callq 0x3a420
movq %rax, 0x288(%rsp)
jmp 0x15c3b
movq 0x288(%rsp), %rax
movq %rax, 0x420(%rsp)
jmp 0x15de3
xorl %eax, %eax
cmpl $0x0, 0x440(%rsp)
movb %al, 0x287(%rsp)
jbe 0x15d95
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x278(%rsp)
jmp 0x15c7e
movq 0x278(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x26c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3bc(%rsp)
leaq 0x3bc(%rsp), %rsi
callq 0x3a420
movq %rax, 0x270(%rsp)
jmp 0x15cbe
movq 0x270(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x260(%rsp)
jmp 0x15cd5
movl 0x26c(%rsp), %ecx
movq 0x260(%rsp), %rdx
xorl %eax, %eax
cmpl (%rdx), %ecx
movb %al, 0x287(%rsp)
jne 0x15d95
movq 0x430(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x258(%rsp)
jmp 0x15d0c
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3b8(%rsp)
leaq 0x3b8(%rsp), %rsi
callq 0x3a420
movq %rax, 0x250(%rsp)
jmp 0x15d3b
movq 0x250(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x248(%rsp)
jmp 0x15d52
movq 0x248(%rsp), %rcx
movq 0x258(%rsp), %rdi
xorl %eax, %eax
movl %eax, %r8d
movl $0x1, %r9d
movq %r8, %rsi
movq %r9, %rdx
callq 0x5090
movl %eax, 0x244(%rsp)
jmp 0x15d81
movl 0x244(%rsp), %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x287(%rsp)
movb 0x287(%rsp), %al
testb $0x1, %al
jne 0x15da2
jmp 0x15de1
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
decl %eax
movl %eax, 0x3b4(%rsp)
leaq 0x3b4(%rsp), %rsi
callq 0x3a420
movq %rax, 0x238(%rsp)
jmp 0x15dd1
movq 0x238(%rsp), %rax
movq %rax, 0x420(%rsp)
jmp 0x15de3
movl 0x440(%rsp), %ecx
addl $0x1, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x237(%rsp)
jae 0x15e8e
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x228(%rsp)
jmp 0x15e1a
movq 0x228(%rsp), %rax
movl (%rax), %eax
incl %eax
movl %eax, 0x21c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
incl %eax
movl %eax, 0x3b0(%rsp)
leaq 0x3b0(%rsp), %rsi
callq 0x3a420
movq %rax, 0x220(%rsp)
jmp 0x15e5c
movq 0x220(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x210(%rsp)
jmp 0x15e73
movl 0x21c(%rsp), %eax
movq 0x210(%rsp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, 0x237(%rsp)
movb 0x237(%rsp), %al
testb $0x1, %al
jne 0x15e9b
jmp 0x15edf
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
incl %eax
movl %eax, 0x3ac(%rsp)
leaq 0x3ac(%rsp), %rsi
callq 0x3a420
movq %rax, 0x208(%rsp)
jmp 0x15eca
movq 0x208(%rsp), %rax
movq %rax, 0x418(%rsp)
jmp 0x1607b
movl 0x440(%rsp), %ecx
addl $0x1, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x207(%rsp)
jae 0x1602d
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x1f8(%rsp)
jmp 0x15f16
movq 0x1f8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1ec(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
incl %eax
movl %eax, 0x3a8(%rsp)
leaq 0x3a8(%rsp), %rsi
callq 0x3a420
movq %rax, 0x1f0(%rsp)
jmp 0x15f56
movq 0x1f0(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x1e0(%rsp)
jmp 0x15f6d
movl 0x1ec(%rsp), %ecx
movq 0x1e0(%rsp), %rdx
xorl %eax, %eax
cmpl (%rdx), %ecx
movb %al, 0x207(%rsp)
jne 0x1602d
movq 0x430(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x1d8(%rsp)
jmp 0x15fa4
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
incl %eax
movl %eax, 0x3a4(%rsp)
leaq 0x3a4(%rsp), %rsi
callq 0x3a420
movq %rax, 0x1d0(%rsp)
jmp 0x15fd3
movq 0x1d0(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x1c8(%rsp)
jmp 0x15fea
movq 0x1c8(%rsp), %rcx
movq 0x1d8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %r8d
movl $0x1, %r9d
movq %r8, %rsi
movq %r9, %rdx
callq 0x5090
movl %eax, 0x1c4(%rsp)
jmp 0x16019
movl 0x1c4(%rsp), %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x207(%rsp)
movb 0x207(%rsp), %al
testb $0x1, %al
jne 0x1603a
jmp 0x16079
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
incl %eax
movl %eax, 0x3a0(%rsp)
leaq 0x3a0(%rsp), %rsi
callq 0x3a420
movq %rax, 0x1b8(%rsp)
jmp 0x16069
movq 0x1b8(%rsp), %rax
movq %rax, 0x418(%rsp)
jmp 0x1607b
movl 0x440(%rsp), %ecx
addl $0x2, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x1b7(%rsp)
jae 0x16128
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x1a8(%rsp)
jmp 0x160b2
movq 0x1a8(%rsp), %rax
movl (%rax), %eax
addl $0x2, %eax
movl %eax, 0x19c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x39c(%rsp)
leaq 0x39c(%rsp), %rsi
callq 0x3a420
movq %rax, 0x1a0(%rsp)
jmp 0x160f6
movq 0x1a0(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x190(%rsp)
jmp 0x1610d
movl 0x19c(%rsp), %eax
movq 0x190(%rsp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, 0x1b7(%rsp)
movb 0x1b7(%rsp), %al
testb $0x1, %al
jne 0x16135
jmp 0x1617a
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x398(%rsp)
leaq 0x398(%rsp), %rsi
callq 0x3a420
movq %rax, 0x188(%rsp)
jmp 0x16165
movq 0x188(%rsp), %rax
movq %rax, 0x410(%rsp)
jmp 0x16319
movl 0x440(%rsp), %ecx
addl $0x2, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x187(%rsp)
jae 0x162ca
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x178(%rsp)
jmp 0x161b1
movq 0x178(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x16c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x394(%rsp)
leaq 0x394(%rsp), %rsi
callq 0x3a420
movq %rax, 0x170(%rsp)
jmp 0x161f2
movq 0x170(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x160(%rsp)
jmp 0x16209
movl 0x16c(%rsp), %ecx
movq 0x160(%rsp), %rdx
xorl %eax, %eax
cmpl (%rdx), %ecx
movb %al, 0x187(%rsp)
jne 0x162ca
movq 0x430(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x158(%rsp)
jmp 0x16240
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x390(%rsp)
leaq 0x390(%rsp), %rsi
callq 0x3a420
movq %rax, 0x150(%rsp)
jmp 0x16270
movq 0x150(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0x148(%rsp)
jmp 0x16287
movq 0x148(%rsp), %rcx
movq 0x158(%rsp), %rdi
xorl %eax, %eax
movl %eax, %r8d
movl $0x1, %r9d
movq %r8, %rsi
movq %r9, %rdx
callq 0x5090
movl %eax, 0x144(%rsp)
jmp 0x162b6
movl 0x144(%rsp), %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x187(%rsp)
movb 0x187(%rsp), %al
testb $0x1, %al
jne 0x162d7
jmp 0x16317
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x38c(%rsp)
leaq 0x38c(%rsp), %rsi
callq 0x3a420
movq %rax, 0x138(%rsp)
jmp 0x16307
movq 0x138(%rsp), %rax
movq %rax, 0x410(%rsp)
jmp 0x16319
movl 0x440(%rsp), %ecx
addl $0x3, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x137(%rsp)
jae 0x163c6
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x128(%rsp)
jmp 0x16350
movq 0x128(%rsp), %rax
movl (%rax), %eax
addl $0x3, %eax
movl %eax, 0x11c(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x388(%rsp)
leaq 0x388(%rsp), %rsi
callq 0x3a420
movq %rax, 0x120(%rsp)
jmp 0x16394
movq 0x120(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0x110(%rsp)
jmp 0x163ab
movl 0x11c(%rsp), %eax
movq 0x110(%rsp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, 0x137(%rsp)
movb 0x137(%rsp), %al
testb $0x1, %al
jne 0x163d3
jmp 0x16418
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x384(%rsp)
leaq 0x384(%rsp), %rsi
callq 0x3a420
movq %rax, 0x108(%rsp)
jmp 0x16403
movq 0x108(%rsp), %rax
movq %rax, 0x408(%rsp)
jmp 0x165b7
movl 0x440(%rsp), %ecx
addl $0x3, %ecx
xorl %eax, %eax
cmpl 0x404(%rsp), %ecx
movb %al, 0x107(%rsp)
jae 0x16568
movq 0x430(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0xf8(%rsp)
jmp 0x1644f
movq 0xf8(%rsp), %rax
movl (%rax), %eax
movl %eax, 0xec(%rsp)
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x380(%rsp)
leaq 0x380(%rsp), %rsi
callq 0x3a420
movq %rax, 0xf0(%rsp)
jmp 0x16490
movq 0xf0(%rsp), %rdi
callq 0x1f6a0
movq %rax, 0xe0(%rsp)
jmp 0x164a7
movl 0xec(%rsp), %ecx
movq 0xe0(%rsp), %rdx
xorl %eax, %eax
cmpl (%rdx), %ecx
movb %al, 0x107(%rsp)
jne 0x16568
movq 0x430(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0xd8(%rsp)
jmp 0x164de
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x37c(%rsp)
leaq 0x37c(%rsp), %rsi
callq 0x3a420
movq %rax, 0xd0(%rsp)
jmp 0x1650e
movq 0xd0(%rsp), %rdi
callq 0x1f6c0
movq %rax, 0xc8(%rsp)
jmp 0x16525
movq 0xc8(%rsp), %rcx
movq 0xd8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %r8d
movl $0x1, %r9d
movq %r8, %rsi
movq %r9, %rdx
callq 0x5090
movl %eax, 0xc4(%rsp)
jmp 0x16554
movl 0xc4(%rsp), %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x107(%rsp)
movb 0x107(%rsp), %al
testb $0x1, %al
jne 0x16575
jmp 0x165b5
movq 0x438(%rsp), %rdi
movl 0x440(%rsp), %eax
addl $0x3, %eax
movl %eax, 0x378(%rsp)
leaq 0x378(%rsp), %rsi
callq 0x3a420
movq %rax, 0xb8(%rsp)
jmp 0x165a5
movq 0xb8(%rsp), %rax
movq %rax, 0x408(%rsp)
jmp 0x165b7
leaq 0x3e8(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x16980
movq 0xb0(%rsp), %rdi
movabsq $0x40c387f333333333, %rax # imm = 0x40C387F333333333
movq %rax, 0x370(%rsp)
movl $0x3, %esi
leaq 0x370(%rsp), %rdx
callq 0x176e0
jmp 0x165fa
cmpq $0x0, 0x420(%rsp)
je 0x166b5
cmpq $0x0, 0x418(%rsp)
je 0x166b5
movq 0x420(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0xa8(%rsp)
jmp 0x1662f
movq 0x430(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0xa0(%rsp)
jmp 0x16646
movq 0x418(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x98(%rsp)
jmp 0x1665d
movq 0x98(%rsp), %rdx
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdi
callq 0xf970
movsd %xmm0, 0x90(%rsp)
jmp 0x16685
xorl %eax, %eax
movl %eax, %esi
leaq 0x3e8(%rsp), %rdi
callq 0x16f90
movq %rax, 0x88(%rsp)
jmp 0x166a0
movq 0x88(%rsp), %rax
movsd 0x90(%rsp), %xmm0
movsd %xmm0, (%rax)
cmpq $0x0, 0x418(%rsp)
je 0x16781
cmpq $0x0, 0x410(%rsp)
je 0x16781
cmpq $0x0, 0x408(%rsp)
je 0x16781
movq 0x430(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x80(%rsp)
jmp 0x166f9
movq 0x418(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x78(%rsp)
jmp 0x1670d
movq 0x410(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x70(%rsp)
jmp 0x16721
movq 0x408(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x68(%rsp)
jmp 0x16735
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %rdx
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdi
callq 0xfc40
movsd %xmm0, 0x60(%rsp)
jmp 0x16759
leaq 0x3e8(%rsp), %rdi
movl $0x1, %esi
callq 0x16f90
movq %rax, 0x58(%rsp)
jmp 0x16772
movq 0x58(%rsp), %rax
movsd 0x60(%rsp), %xmm0
movsd %xmm0, (%rax)
cmpq $0x0, 0x428(%rsp)
je 0x1681f
cmpq $0x0, 0x410(%rsp)
je 0x1681f
movq 0x428(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x50(%rsp)
jmp 0x167b3
movq 0x430(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x48(%rsp)
jmp 0x167c7
movq 0x410(%rsp), %rdi
callq 0x1f6e0
movq %rax, 0x40(%rsp)
jmp 0x167db
movq 0x40(%rsp), %rdx
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdi
callq 0xf970
movsd %xmm0, 0x38(%rsp)
jmp 0x167f7
leaq 0x3e8(%rsp), %rdi
movl $0x2, %esi
callq 0x16f90
movq %rax, 0x30(%rsp)
jmp 0x16810
movq 0x30(%rsp), %rax
movsd 0x38(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x448(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x430(%rsp), %rdi
callq 0x1f820
movq %rax, 0x28(%rsp)
jmp 0x16840
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x16f50
movq %rax, 0x18(%rsp)
jmp 0x1685a
movq 0x18(%rsp), %rdi
movl $0x3, %esi
callq 0x175e0
jmp 0x1686b
movq 0x448(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x430(%rsp), %rdi
callq 0x1f820
movq %rax, 0x10(%rsp)
jmp 0x1688c
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0x16f50
movq %rax, (%rsp)
jmp 0x168a5
movq (%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
callq 0x177a0
jmp 0x168b8
jmp 0x168ba
movl 0x440(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x440(%rsp)
jmp 0x15807
jmp 0x168d2
movl 0x444(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x444(%rsp)
jmp 0x1576f
leaq 0x3e8(%rsp), %rdi
callq 0x7c00
addq $0x458, %rsp            # imm = 0x458
retq
movq 0x3e0(%rsp), %rdi
callq 0x5720
nopw (%rax,%rax)