// File: /workspace/github_cpp_makefile_star2_O3/atfrank[P]PCASA/lib/PDB.cpp
// Function: PDB::processAtomLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Atom*)
Atom* PDB::processAtomLine (std::string line, Atom* lastAtom){
  double x,y,z;
  std::string recname; //Record name: "ATOM  ", "HETATM"
  int  atmnum; //Atom serial number
  std::string chainid;
  int  resid; //Residue sequence number
  double occu; //Occupancy
  double bfac; //B-factor or Temperature factor
  std::string segid; //Segment identifier
  Atom *atmEntry=new Atom;

  //substr: first character is denoted by a value of 0 (not 1)
  if (Misc::isdigit(Misc::trim(line.substr(4,7)))){
    atmEntry->setRecName(line.substr(0,4));
    std::stringstream(line.substr(4,7)) >> atmnum;
    atmEntry->setAtmNum(atmnum);
  }
  else{
    atmEntry->setRecName(line.substr(0,6)); //PDB format
    std::stringstream(line.substr(6,5)) >> atmnum; //PDB format
    atmEntry->setAtmNum(atmnum); //PDB format
  }
  atmEntry->setAtmName(Misc::trim(line.substr(12,4)));
  atmEntry->setAlt(line.substr(16,1));
  //atmEntry->setResName(line.substr(17,3)); //PDB format
  atmEntry->setResName(Misc::trim(line.substr(17,4)));
  chainid=line.substr(21,1);
  if(lastAtom == NULL || lastAtom->getChainId().compare(chainid) != 0){
    //New chain, check if duplicate
    if (chnMap.find(chainid) == chnMap.end()){
      chnMap[chainid]=chnMap.size();
    }
    else{
      //Duplicate, likely HETATM ligand bound to same chain
      //Assign numeric chainid, this is valid PDB format
      //std::ostringstream ossChainId;
      //ossChainId<< chnMap.find(chainid)->second;
      //chainid=ossChainId.str();
      //Set chainid to blank
      chainid=" ";
    }
  }
  atmEntry->setChainId(chainid);
  atmEntry->setRealId(line.substr(21,1)); 
  //std::stringstream(line.substr(22,4)) >> resid; //PDB format
  std::stringstream(line.substr(22,6)) >> resid; //Automagically truncates anything that is not numeric, i.e. iCode
  atmEntry->setResId(resid);
  atmEntry->setICode(line.substr(26,1));
  std::stringstream(line.substr(30,8)) >> x;
  std::stringstream(line.substr(38,8)) >> y;
  std::stringstream(line.substr(46,8)) >> z;
  atmEntry->setCoor(Coor(x,y,z));
  if (line.size() >= 60){
    std::stringstream(line.substr(54,6)) >> occu;
    atmEntry->setOccu(occu);
  }
  if (line.size() >= 66){
    std::stringstream(line.substr(60,6)) >> bfac;
    atmEntry->setBFac(bfac);
  }
  if (line.size() >= 76){
    segid=line.substr(72,4);
    atmEntry->setSegId(segid);
  }
  if (line.size() >= 78){
    if (line.substr(77,1).compare(" ") == 0){
      atmEntry->setElem(atmEntry->getAtmName().substr(0,1));
    }
    else{
      atmEntry->setElem(line.substr(77,1));
    }
  }
  atmEntry->setSel(true);
  std::stringstream ss;
  ss << resid;
  atmEntry->setSummary(chainid+":"+atmEntry->getResName()+ss.str()+Misc::trim(atmEntry->getICode())+"."+Misc::trim(atmEntry->getAtmName()));

  return atmEntry;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3d8, %rsp            # imm = 0x3D8
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
leaq 0x3c8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x58(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x300(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movl $0x238, %edi            # imm = 0x238
callq 0x42d0
movq %rax, %rbx
movq %rax, %rdi
callq 0x138dc
movq %rsp, %rdi
movl $0x4, %edx
movl $0x7, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x3a8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x114fa(%rip), %rsi     # 0x3c680
leaq 0x114f4(%rip), %rdx     # 0x3c681
leaq 0x398(%rsp), %rdi
callq 0x6512
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
leaq 0x398(%rsp), %rdx
callq 0x21d86
leaq 0xc8(%rsp), %rdi
callq 0x21bf2
movl %eax, %ebp
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b1e2
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x398(%rsp), %rdi
cmpq %r13, %rdi
je 0x2b1ff
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b21a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
testb %bpl, %bpl
je 0x2b2b5
leaq 0xc8(%rsp), %rdi
movl $0x4, %ecx
movq %r14, %rsi
xorl %edx, %edx
callq 0x4300
leaq 0x10(%rsp), %rbp
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14d56
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b274
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x4, %edx
movl $0x7, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x24(%rsp), %rsi
callq 0x41b0
jmp 0x2b342
leaq 0xc8(%rsp), %rdi
movl $0x6, %ecx
movq %r14, %rsi
xorl %edx, %edx
callq 0x4300
leaq 0x10(%rsp), %rbp
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14d56
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b306
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x6, %edx
movl $0x5, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x24(%rsp), %rsi
callq 0x41b0
movq 0x3c4c5f(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b379
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x24(%rsp), %rsi
movq %rbx, %rdi
callq 0x14d60
movq %rsp, %rdi
movl $0xc, %edx
movl $0x4, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x388(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x112d2(%rip), %rsi     # 0x3c680
leaq 0x112cc(%rip), %rdx     # 0x3c681
leaq 0x378(%rsp), %rdi
callq 0x6512
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
leaq 0x378(%rsp), %rdx
callq 0x21d86
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14d66
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b40f
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x378(%rsp), %rdi
cmpq %r13, %rdi
je 0x2b42c
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x42e0
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b442
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0xc8(%rsp), %rdi
movl $0x10, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14db2
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b491
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x11, %edx
movl $0x4, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x368(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x111c7(%rip), %rsi     # 0x3c680
leaq 0x111c1(%rip), %rdx     # 0x3c681
leaq 0x358(%rsp), %rdi
callq 0x6512
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
leaq 0x358(%rsp), %rdx
callq 0x21d86
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14de8
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b51a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x358(%rsp), %rdi
cmpq %r13, %rdi
je 0x2b537
movq 0x368(%rsp), %rsi
incq %rsi
callq 0x42e0
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b54d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0xc8(%rsp), %rdi
movl $0x15, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x48(%rsp), %rdi
leaq 0xc8(%rsp), %r13
movq %r13, %rsi
callq 0x4370
movq (%r13), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b59d
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
testq %r12, %r12
je 0x2b5bb
movq %r12, %rdi
callq 0x14926
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x4050
testl %eax, %eax
je 0x2b604
leaq 0x48(%rsp), %rsi
movq %r15, %rdi
callq 0x2ca4c
leaq 0x8(%r15), %rcx
cmpq %rcx, %rax
je 0x2b5f0
leaq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x1109f(%rip), %rcx     # 0x3c680
movl $0x1, %r8d
xorl %esi, %esi
callq 0x4470
jmp 0x2b604
movq 0x28(%r15), %r12
leaq 0x48(%rsp), %rsi
movq %r15, %rdi
callq 0x2c92a
movl %r12d, (%rax)
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x14e1e
leaq 0xc8(%rsp), %rdi
movl $0x15, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14e2a
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b660
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x16, %edx
movl $0x6, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x41b0
movq 0x3c4905(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b6d3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
callq 0x14e7a
leaq 0xc8(%rsp), %rdi
movl $0x1a, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14e84
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2b72f
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x1e, %edx
movl $0x8, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x330(%rsp), %rsi
callq 0x41d0
movq 0x3c4833(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b7a5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x26, %edx
movl $0x8, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x41d0
movq 0x3c47bd(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b81b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rsp, %rdi
movl $0x2e, %edx
movl $0x8, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x320(%rsp), %rsi
callq 0x41d0
movq 0x3c4747(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b891
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
movsd 0x330(%rsp), %xmm0
movsd 0x328(%rsp), %xmm1
movsd 0x320(%rsp), %xmm2
leaq 0xc8(%rsp), %rdi
callq 0x39fe4
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14edc
cmpq $0x3c, 0x8(%r14)
jb 0x2bb3a
movq %rsp, %rdi
movl $0x36, %edx
movl $0x6, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x318(%rsp), %rsi
callq 0x41d0
movq 0x3c468e(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b94a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x318(%rsp), %rsi
movq %rbx, %rdi
callq 0x14ee8
cmpq $0x42, 0x8(%r14)
jb 0x2bb3a
movq %rsp, %rdi
movl $0x3c, %edx
movl $0x6, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rdi
movq %rsp, %rsi
movl $0x18, %edx
callq 0x4490
leaq 0xc8(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x41d0
movq 0x3c45fd(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b9db
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x310(%rsp), %rsi
movq %rbx, %rdi
callq 0x14ef6
cmpq $0x4c, 0x8(%r14)
jb 0x2bb3a
leaq 0xc8(%rsp), %rdi
movl $0x48, %edx
movl $0x4, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x2f0(%rsp), %rdi
leaq 0xc8(%rsp), %r15
movq %r15, %rsi
callq 0x4370
movq (%r15), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2ba48
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x2f0(%rsp), %rsi
movq %rbx, %rdi
callq 0x14f10
cmpq $0x4e, 0x8(%r14)
jb 0x2bb3a
leaq 0xc8(%rsp), %rdi
movl $0x4d, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0x10bfc(%rip), %rsi     # 0x3c680
leaq 0xc8(%rsp), %r15
movq %r15, %rdi
callq 0x40e0
movl %eax, %ebp
movq (%r15), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2bab6
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
testl %ebp, %ebp
je 0x2bae6
leaq 0xc8(%rsp), %rdi
movl $0x4d, %edx
movl $0x1, %ecx
movq %r14, %rsi
callq 0x4300
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14f04
jmp 0x2bb15
movq %rbx, %rdi
callq 0x148fa
leaq 0xc8(%rsp), %rdi
movl $0x1, %ecx
movq %rax, %rsi
xorl %edx, %edx
callq 0x4300
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x14f04
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2bb3a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rbx, %rdi
movl $0x1, %esi
callq 0x14f3e
leaq 0xc8(%rsp), %rdi
callq 0x4210
leaq 0xd8(%rsp), %rdi
movl 0x20(%rsp), %esi
callq 0x4500
leaq 0x2c0(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2b0(%rsp), %rdi
callq 0x647c
leaq 0xf6a1(%rip), %rsi      # 0x3b233
leaq 0x2b0(%rsp), %rdi
callq 0x45a0
movq %rbx, %rdi
callq 0x14916
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x2b0(%rsp), %rdi
callq 0x4100
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2bbe2
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x2bbe9
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe0(%rsp), %rsi
leaq 0x290(%rsp), %rdi
callq 0x4480
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %r8
movq 0x298(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x2bc3b
movq 0x78(%rsp), %rdi
movq 0x290(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x2bc67
leaq 0x2a0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x2bc62
movq 0x2a0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x2bc73
leaq 0x68(%rsp), %rdi
callq 0x4100
jmp 0x2bc84
leaq 0x290(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4320
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x2bca8
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x2bcae
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq %rbx, %rdi
callq 0x1493e
movq %rax, %r14
leaq 0x2e0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x10997(%rip), %rsi     # 0x3c680
leaq 0x10991(%rip), %rdx     # 0x3c681
leaq 0x2d0(%rsp), %rdi
callq 0x6512
leaq 0x270(%rsp), %rdi
leaq 0x2d0(%rsp), %rdx
movq %r14, %rsi
callq 0x21d86
leaq 0x38(%rsp), %rbp
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %r8
movq 0x278(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rbp, %rcx
je 0x2bd3d
movq 0x38(%rsp), %rdi
movq 0x270(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x2bd69
leaq 0x280(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x2bd64
movq 0x280(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x2bd75
leaq 0x28(%rsp), %rdi
callq 0x4100
jmp 0x2bd86
leaq 0x270(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4320
leaq 0x98(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x2bdb3
movq %rsi, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x2bdb9
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x10a5e(%rip), %rsi     # 0x3c83e
leaq 0x88(%rsp), %rdi
callq 0x45a0
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2be1d
movq %rdx, 0xa8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb8(%rsp)
jmp 0x2be24
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0xb0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x148fa
movq %rax, %r14
leaq 0x348(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x10822(%rip), %rsi     # 0x3c680
leaq 0x1081c(%rip), %rdx     # 0x3c681
leaq 0x338(%rsp), %rdi
callq 0x6512
leaq 0x250(%rsp), %rdi
leaq 0x338(%rsp), %rdx
movq %r14, %rsi
callq 0x21d86
movq 0xa8(%rsp), %rcx
movq 0xb0(%rsp), %r8
movq 0x258(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x2beb8
movq 0xb8(%rsp), %rdi
movq 0x250(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x2bee4
leaq 0x260(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x2bedf
movq 0x260(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x2bef3
leaq 0xa8(%rsp), %rdi
callq 0x4100
jmp 0x2bf04
leaq 0x250(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x4320
leaq 0x10(%rsp), %rsi
movq %rsi, (%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2bf27
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x2bf2d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x14f46
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2bf70
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bf91
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x338(%rsp), %rdi
cmpq %r12, %rdi
je 0x2bfae
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
leaq 0x78(%rsp), %r14
leaq 0x2e0(%rsp), %r15
je 0x2bfd8
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bff9
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x280(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c01a
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x2d0(%rsp), %rdi
cmpq %r15, %rdi
je 0x2c037
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2c04e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c06f
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x2c086
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x2b0(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c0a3
movq 0x2c0(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x3c3efe(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x2c0e9
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x2c105
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x3b8(%rsp), %rdi
leaq 0x3c8(%rsp), %rax
cmpq %rax, %rdi
je 0x2c12a
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %rbx, %rax
addq $0x3d8, %rsp            # imm = 0x3D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c3f4
jmp 0x2c3f4
jmp 0x2c541
jmp 0x2c541
jmp 0x2c541
jmp 0x2c541
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c366
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c541
jmp 0x2c3f4
jmp 0x2c3f4
jmp 0x2c541
jmp 0x2c541
jmp 0x2c541
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2c1d5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c1d5
movq %rax, %r14
leaq 0x260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c1fb
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c1fb
movq %rax, %r14
movq 0x338(%rsp), %rdi
cmpq %r12, %rdi
je 0x2c21f
movq 0x348(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c21f
jmp 0x2c21c
movq %rax, %r14
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2c241
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c241
movq %rax, %r14
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c267
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c267
movq %rax, %r14
leaq 0x280(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c28d
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c28d
movq %rax, %r14
movq 0x2d0(%rsp), %rdi
leaq 0x2e0(%rsp), %rax
cmpq %rax, %rdi
je 0x2c2b9
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c2b9
jmp 0x2c2b6
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c2d4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42e0
leaq 0x2a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c2f5
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x2c4ff
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c4ff
movq %rax, %r14
jmp 0x2c2d4
movq %rax, %r14
jmp 0x2c2f5
jmp 0x2c4fc
jmp 0x2c32b
movq %rax, %r14
jmp 0x2c51c
jmp 0x2c541
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c366
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c3f4
jmp 0x2c541
movq %rax, %r14
movq 0x3c3c38(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
jmp 0x2c46e
jmp 0x2c46b
jmp 0x2c541
jmp 0x2c3f4
jmp 0x2c541
jmp 0x2c541
movq %rax, %r14
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2c3d2
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c3d2
movq %rax, %r14
movq 0x358(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c46e
movq 0x368(%rsp), %rsi
jmp 0x2c461
jmp 0x2c46b
jmp 0x2c541
movq %rax, %r14
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2c544
movq 0xd8(%rsp), %rsi
jmp 0x2c485
jmp 0x2c541
movq %rax, %r14
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x2c44c
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c44c
movq %rax, %r14
movq 0x378(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c46e
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c46e
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2c544
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c544
jmp 0x2c541
movq %rax, %r14
leaq 0xd8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c4c0
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c4c0
movq %rax, %r14
movq 0x398(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c4e2
movq 0x3a8(%rsp), %rsi
incq %rsi
callq 0x42e0
jmp 0x2c4e2
movq %rax, %r14
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x2c477
jmp 0x2c541
movq %rax, %r14
movl $0x238, %esi            # imm = 0x238
movq %rbx, %rdi
jmp 0x2c488
movq %rax, %r14
movq 0x2b0(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c51c
movq 0x2c0(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x3c3a85(%rip), %rsi    # 0x3effa8
leaq 0xc8(%rsp), %rdi
callq 0x4240
leaq 0x148(%rsp), %rdi
callq 0x4110
jmp 0x2c544
jmp 0x2c541
movq %rax, %r14
movq 0x2f0(%rsp), %rdi
leaq 0x300(%rsp), %rax
cmpq %rax, %rdi
je 0x2c569
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x2c585
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42e0
movq 0x3b8(%rsp), %rdi
leaq 0x3c8(%rsp), %rax
cmpq %rax, %rdi
je 0x2c5aa
movq 0x3c8(%rsp), %rsi
incq %rsi
callq 0x42e0
movq %r14, %rdi
callq 0x4550