LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: Chrom3D[P]Chrom3D/src/Randomizer.cpp
// Function: MicroCrankShaftRandomizer::randomize(Chromosome&, boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>&)
Move MicroCrankShaftRandomizer::randomize(Chromosome &chr, ENG &eng) {
  uint r1 = util::unif_int(0, chr.size()-3, eng);
  uint r2 = r1+2;
  double theta = util::unif_real(0.0, 2*util::PI-0.001, eng);
  CoordinateMatrix mat = chr.crankshaft(r1,r2,theta);
  Move mov(chr);
  mov.start = r1+1; // We return the positions of the start and end of the 
  mov.stop = r2-1;  //  beads that have their coords altered (so, r1 and r2 are not included in crankshaft)
  mov.mat = mat;
  return mov;
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x10(%rsp)
movq %rdi, %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq %rcx, 0x68(%rsp)
movq 0x70(%rsp), %rdi
callq 0x154f0
movl %eax, %esi
addl $-0x3, %esi
movq 0x68(%rsp), %rdx
xorl %edi, %edi
callq 0x9980
movl %eax, 0x64(%rsp)
movl 0x64(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x60(%rsp)
movq 0x68(%rsp), %rdi
xorps %xmm0, %xmm0
movsd 0x3616b(%rip), %xmm1    # 0x50390
callq 0x9940
movsd %xmm0, 0x58(%rsp)
movq 0x70(%rsp), %rsi
movl 0x64(%rsp), %edx
movl 0x60(%rsp), %ecx
movsd 0x58(%rsp), %xmm0
leaq 0x30(%rsp), %rdi
callq 0x15bc0
movq 0x10(%rsp), %rdi
movb $0x0, 0x2f(%rsp)
movq 0x70(%rsp), %rsi
callq 0x192f0
jmp 0x1a263
movq 0x10(%rsp), %rdi
movl 0x64(%rsp), %eax
incl %eax
movl %eax, 0x8(%rdi)
movl 0x60(%rsp), %eax
decl %eax
movl %eax, 0xc(%rdi)
addq $0x10, %rdi
leaq 0x30(%rsp), %rsi
callq 0x17400
jmp 0x1a28a
movb $0x1, 0x2f(%rsp)
testb $0x1, 0x2f(%rsp)
jne 0x1a2cc
jmp 0x1a2c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
jmp 0x1a2e3
movq 0x10(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
callq 0x1a560
jmp 0x1a2e3
movq 0x10(%rsp), %rdi
callq 0x1a560
leaq 0x30(%rsp), %rdi
callq 0xb2d0
movq 0x8(%rsp), %rax
addq $0x88, %rsp
retq
leaq 0x30(%rsp), %rdi
callq 0xb2d0
movq 0x20(%rsp), %rdi
callq 0x8870
nopw (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Randomizer.cpp
// Function: RotationRandomizer::randomize(Chromosome&, boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>&)
Move RotationRandomizer::randomize(Chromosome &chr, ENG &eng) {
  uint r1 = util::unif_int(0, chr.size()-2, eng);
  uint r2 = util::unif_int(r1+1, chr.size()-1, eng);
  double theta = util::unif_real(0.0, 2*util::PI-0.001, eng);
  CoordinateMatrix mat = chr.rotation(r1,r2,theta);
  Move mov(chr);
  mov.start = 0; // We return the positions of the start and end of the 
  mov.stop = chr.size()-1;  //  beads that have their coords altered (so, r1 and r2 are not included in crankshaft)
  mov.mat = mat;
  return mov;


}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x20(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x90(%rsp)
movq %rsi, 0x88(%rsp)
movq %rdx, 0x80(%rsp)
movq %rcx, 0x78(%rsp)
movq 0x80(%rsp), %rdi
callq 0x154f0
movl %eax, %esi
addl $-0x2, %esi
movq 0x78(%rsp), %rdx
xorl %edi, %edi
callq 0x9980
movl %eax, 0x74(%rsp)
movl 0x74(%rsp), %eax
incl %eax
movl %eax, 0x1c(%rsp)
movq 0x80(%rsp), %rdi
callq 0x154f0
movl 0x1c(%rsp), %edi
movl %eax, %esi
decl %esi
movq 0x78(%rsp), %rdx
callq 0x9980
movl %eax, 0x70(%rsp)
movq 0x78(%rsp), %rdi
xorps %xmm0, %xmm0
movsd 0x36000(%rip), %xmm1    # 0x50390
callq 0x9940
movsd %xmm0, 0x68(%rsp)
movq 0x80(%rsp), %rsi
movl 0x74(%rsp), %edx
movl 0x70(%rsp), %ecx
movsd 0x68(%rsp), %xmm0
leaq 0x40(%rsp), %rdi
callq 0x15e20
movq 0x20(%rsp), %rdi
movb $0x0, 0x3f(%rsp)
movq 0x80(%rsp), %rsi
callq 0x192f0
jmp 0x1a3d4
movq 0x20(%rsp), %rax
movl $0x0, 0x8(%rax)
movq 0x80(%rsp), %rdi
callq 0x154f0
movl %eax, 0xc(%rsp)
jmp 0x1a3f3
movq 0x20(%rsp), %rdi
movl 0xc(%rsp), %eax
decl %eax
movl %eax, 0xc(%rdi)
addq $0x10, %rdi
leaq 0x40(%rsp), %rsi
callq 0x17400
jmp 0x1a411
movb $0x1, 0x3f(%rsp)
testb $0x1, 0x3f(%rsp)
jne 0x1a453
jmp 0x1a449
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
jmp 0x1a46a
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
callq 0x1a560
jmp 0x1a46a
movq 0x20(%rsp), %rdi
callq 0x1a560
leaq 0x40(%rsp), %rdi
callq 0xb2d0
movq 0x10(%rsp), %rax
addq $0x98, %rsp
retq
leaq 0x40(%rsp), %rdi
callq 0xb2d0
movq 0x30(%rsp), %rdi
callq 0x8870
nop
// File: Chrom3D[P]Chrom3D/src/Constraint.cpp
// Function: Constraint::Constraint(Bead*, Bead*, double, ConstraintType, double, double, double)
Constraint::Constraint(Bead* b1, Bead* b2, double targetDistance, ConstraintType ct/* = REGULAR */, double springConstant /*=1*/, double lowerBound /*=0*/, double upperBound /*=INF*/) {
  bead1 = b1;
  bead2 = b2;
  k = springConstant;
  distance = targetDistance;
  constType = ct;
  lower = lowerBound;
  upper = upperBound;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movsd %xmm0, -0x20(%rsp)
movl %ecx, -0x24(%rsp)
movsd %xmm1, -0x30(%rsp)
movsd %xmm2, -0x38(%rsp)
movsd %xmm3, -0x40(%rsp)
movq -0x8(%rsp), %rax
movq -0x10(%rsp), %rcx
movq %rcx, (%rax)
movq -0x18(%rsp), %rcx
movq %rcx, 0x8(%rax)
movsd -0x30(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movsd -0x20(%rsp), %xmm0
movsd %xmm0, 0x30(%rax)
movl -0x24(%rsp), %ecx
movl %ecx, 0x10(%rax)
movsd -0x38(%rsp), %xmm0
movsd %xmm0, 0x20(%rax)
movsd -0x40(%rsp), %xmm0
movsd %xmm0, 0x28(%rax)
retq
nopw %cs:(%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Constraint.cpp
// Function: Constraint::eval()
double Constraint::eval() {
  double beadDist=(*bead1) - (*bead2);
  if(beadDist > this->lower and beadDist < this->upper) {
    return this->k * pow(beadDist - this->distance,2);
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq (%rax), %rdi
movq 0x8(%rax), %rsi
callq 0x14f40
movq 0x8(%rsp), %rax
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rsp), %xmm0
ucomisd 0x20(%rax), %xmm0
jbe 0x1ac15
movq 0x8(%rsp), %rax
movsd 0x10(%rsp), %xmm1
movsd 0x28(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x1ac15
movq 0x8(%rsp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, (%rsp)
movsd 0x10(%rsp), %xmm0
subsd 0x30(%rax), %xmm0
movl $0x2, %edi
callq 0xbbf0
movaps %xmm0, %xmm1
movsd (%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
jmp 0x1ac1e
xorps %xmm0, %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm0
addq $0x28, %rsp
retq
nopl (%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::Model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned int)
Model::Model(string modelName, uint seed /*=1234*/) {
  name=modelName;
  randEngine.seed(seed);
  centerBead.setCoordinates(0,0,0);
  hasNucleus=false;

}

// Assembly:
subq $0x78, %rsp
movq %rsi, 0x38(%rsp)
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movl %edx, 0x64(%rsp)
movq 0x70(%rsp), %rdi
movq %rdi, 0x48(%rsp)
movq %rdi, %rax
movq %rax, 0x40(%rsp)
callq 0x8670
movq 0x48(%rsp), %rdi
addq $0x20, %rdi
callq 0x27a30
jmp 0x1b4ce
movq 0x40(%rsp), %rdi
addq $0x9e8, %rdi            # imm = 0x9E8
movq %rdi, 0x20(%rsp)
callq 0x27a40
movq 0x40(%rsp), %rdi
addq $0xa18, %rdi            # imm = 0xA18
movq %rdi, 0x28(%rsp)
callq 0x27a40
movq 0x40(%rsp), %rdi
addq $0xa48, %rdi            # imm = 0xA48
movq %rdi, 0x30(%rsp)
callq 0x27a50
jmp 0x1b512
movq 0x40(%rsp), %rdi
addq $0xa60, %rdi            # imm = 0xA60
movq %rdi, (%rsp)
callq 0xc600
movq 0x40(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
movq %rdi, 0x8(%rsp)
callq 0x27a60
movq 0x40(%rsp), %rdi
addq $0xaa0, %rdi            # imm = 0xAA0
movq %rdi, 0x10(%rsp)
callq 0x27a70
movq 0x40(%rsp), %rdi
addq $0xad0, %rdi            # imm = 0xAD0
movq %rdi, 0x18(%rsp)
callq 0x14c20
jmp 0x1b56b
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x8060
jmp 0x1b57c
movq 0x40(%rsp), %rdi
addq $0x20, %rdi
leaq 0x64(%rsp), %rsi
callq 0x27a80
jmp 0x1b591
movq 0x40(%rsp), %rdi
addq $0xad0, %rdi            # imm = 0xAD0
xorps %xmm2, %xmm2
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0x14dc0
jmp 0x1b5ad
movq 0x40(%rsp), %rax
movb $0x0, 0xa90(%rax)
addq $0x78, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x1b641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x1b62d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x1b606
movq 0x18(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
callq 0x179e0
movq 0x10(%rsp), %rdi
callq 0x27b50
movq 0x8(%rsp), %rdi
callq 0x27b60
movq (%rsp), %rdi
callq 0xc3c0
movq 0x30(%rsp), %rdi
callq 0x27bc0
movq 0x28(%rsp), %rdi
callq 0x27bd0
movq 0x20(%rsp), %rdi
callq 0x27bd0
movq 0x48(%rsp), %rdi
callq 0x8998
movq 0x58(%rsp), %rdi
callq 0x8870
nopw %cs:(%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::updateBeadMap()
void Model::updateBeadMap() {
  this->getBead.clear();
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer; 
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer = chriter->begin(); beaditer != chriter->end(); beaditer++) {
      getBead[beaditer->getID()] = &(*beaditer);
    }
  }
}

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0xa0(%rsp)
movq 0xa0(%rsp), %rdi
movq %rdi, 0x28(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x27c40
leaq 0x98(%rsp), %rdi
callq 0x27c50
leaq 0x90(%rsp), %rdi
callq 0x16890
movq 0x28(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x88(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x28(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x80(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x1b762
jmp 0x1b882
leaq 0x98(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x78(%rsp), %rdi
callq 0x15540
leaq 0x90(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x16a00
leaq 0x98(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x70(%rsp), %rdi
callq 0x15570
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x1b7c3
jmp 0x1b867
leaq 0x90(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x16a60
movq (%rsp), %rdi
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x8(%rsp)
addq $0xaa0, %rax            # imm = 0xAA0
movq %rax, 0x10(%rsp)
callq 0x16ca0
movq %rax, %rsi
leaq 0x50(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x14ea0
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x27cc0
movq %rax, 0x20(%rsp)
jmp 0x1b81d
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, (%rax)
leaq 0x50(%rsp), %rdi
callq 0x8998
leaq 0x38(%rsp), %rdi
leaq 0x90(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x1b78e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x8998
jmp 0x1b88a
jmp 0x1b869
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x30(%rsp)
jmp 0x1b72b
addq $0xa8, %rsp
retq
movq 0x48(%rsp), %rdi
callq 0x8870
nopw %cs:(%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addChromosome(Chromosome)
void Model::addChromosome(Chromosome chr) {
  assert ( find(chromosomes.begin(), chromosomes.end(), chr) == chromosomes.end() ); // Chromosomes must be unique
  // Assert that all Bead IDS ARE UNIQUE HERE AND NOT FOUND ON ANY CHR HERE
  chromosomes.push_back(chr);  
  this->updateBeadMap();
  //hasUpdatedHashMap = false;
}

// Assembly:
subq $0x48, %rsp
movq %rsi, 0x8(%rsp)
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq %rdi, 0x10(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq 0x10(%rsp), %rdi
movq %rax, 0x28(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq 0x8(%rsp), %rdx
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x27e30
movq 0x10(%rsp), %rdi
movq %rax, 0x30(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x27df0
testb $0x1, %al
jne 0x1b928
jmp 0x1b92a
jmp 0x1b949
leaq 0x34d57(%rip), %rdi     # 0x50688
leaq 0x34d97(%rip), %rsi     # 0x506cf
movl $0x29, %edx
leaq 0x34d99(%rip), %rcx     # 0x506dd
callq 0x8340
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27e90
movq 0x10(%rsp), %rdi
callq 0x1b6c0
addq $0x48, %rsp
retq
nop
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addConstraint(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, ConstraintType, double, double, double)
void Model::addConstraint(string beadId1, string beadId2, double targetDistance, ConstraintType ct /*=REGULAR*/, double springConstant /*=1*/, double lowerBound /*=0*/, double upperBound /*=INF*/) {
  assert(getBead.find(beadId1) != getBead.end()); 
  assert(getBead.find(beadId2) != getBead.end()); 
  Bead* b1 = getBead[beadId1];
  Bead* b2 = getBead[beadId2];
  this->addConstraint(Constraint(b1, b2, targetDistance, ct, springConstant, lowerBound, upperBound));
}

// Assembly:
subq $0xf8, %rsp
movq %rsi, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdx, 0xe0(%rsp)
movsd %xmm0, 0xd8(%rsp)
movl %ecx, 0xd4(%rsp)
movsd %xmm1, 0xc8(%rsp)
movsd %xmm2, 0xc0(%rsp)
movsd %xmm3, 0xb8(%rsp)
movq 0xf0(%rsp), %rdi
movq %rdi, 0x48(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x48(%rsp), %rdi
movq %rax, 0xb0(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0xa8(%rsp)
leaq 0xb0(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1baa9
jmp 0x1baab
jmp 0x1baca
leaq 0x34c51(%rip), %rdi     # 0x50703
leaq 0x34c16(%rip), %rsi     # 0x506cf
movl $0x37, %edx
leaq 0x34c65(%rip), %rcx     # 0x5072a
callq 0x8340
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x48(%rsp), %rdi
movq %rax, 0xa0(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0x98(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1bb1c
jmp 0x1bb1e
jmp 0x1bb3d
leaq 0x34c5f(%rip), %rdi     # 0x50784
leaq 0x34ba3(%rip), %rsi     # 0x506cf
movl $0x38, %edx
leaq 0x34bf2(%rip), %rcx     # 0x5072a
callq 0x8340
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x28120
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0x90(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x28120
movq (%rax), %rax
movq %rax, 0x88(%rsp)
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %rdx
movsd 0xd8(%rsp), %xmm0
movl 0xd4(%rsp), %ecx
movsd 0xc8(%rsp), %xmm1
movsd 0xc0(%rsp), %xmm2
movsd 0xb8(%rsp), %xmm3
leaq 0x50(%rsp), %rdi
callq 0x1aa50
movq 0x48(%rsp), %rdi
movq 0x80(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x30(%rax)
movups 0x50(%rsp), %xmm0
movups 0x60(%rsp), %xmm1
movups 0x70(%rsp), %xmm2
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x1b970
addq $0xf8, %rsp
retq
nop
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addInteractionDistanceConstraint(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, double)
void Model::addInteractionDistanceConstraint(string beadId1, string beadId2, double beadPairDesiredDistance, double springConstant /*=1*/) {
  assert(getBead.find(beadId1) != getBead.end()); 
  assert(getBead.find(beadId2) != getBead.end());

  Bead* b1 = getBead[beadId1];
  Bead* b2 = getBead[beadId2];
  this->addConstraint(beadId1, beadId2, b1->getRadius()+b2->getRadius() + beadPairDesiredDistance, INTERACTION_DIST, springConstant);
}

// Assembly:
subq $0xe8, %rsp
movq %rsi, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movq %rdx, 0xd0(%rsp)
movsd %xmm0, 0xc8(%rsp)
movsd %xmm1, 0xc0(%rsp)
movq 0xe0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x38(%rsp), %rdi
movq %rax, 0xb8(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1bf60
jmp 0x1bf62
jmp 0x1bf81
leaq 0x3479a(%rip), %rdi     # 0x50703
leaq 0x3475f(%rip), %rsi     # 0x506cf
movl $0x49, %edx
leaq 0x348eb(%rip), %rcx     # 0x50867
callq 0x8340
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x38(%rsp), %rdi
movq %rax, 0xa8(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1bfd3
jmp 0x1bfd5
jmp 0x1bff4
leaq 0x347a8(%rip), %rdi     # 0x50784
leaq 0x346ec(%rip), %rsi     # 0x506cf
movl $0x4a, %edx
leaq 0x34878(%rip), %rcx     # 0x50867
callq 0x8340
movq 0x28(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xaa0, %rdi            # imm = 0xAA0
movq %rdi, 0x20(%rsp)
callq 0x28120
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x98(%rsp)
callq 0x28120
movq 0x28(%rsp), %rsi
movq (%rax), %rax
movq %rax, 0x90(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x8230
movq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x8230
jmp 0x1c054
movq 0x98(%rsp), %rdi
callq 0x14e60
movsd %xmm0, 0x18(%rsp)
jmp 0x1c069
movq 0x90(%rsp), %rdi
callq 0x14e60
movsd %xmm0, 0x10(%rsp)
jmp 0x1c07e
movsd 0x10(%rsp), %xmm1
movsd 0x18(%rsp), %xmm0
addsd %xmm1, %xmm0
movsd 0xc8(%rsp), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, (%rsp)
callq 0x28210
movq 0x38(%rsp), %rdi
movsd (%rsp), %xmm1
movaps %xmm0, %xmm3
movsd 0x8(%rsp), %xmm0
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
movl $0x9, %ecx
xorps %xmm2, %xmm2
callq 0x1ba00
jmp 0x1c0e0
leaq 0x50(%rsp), %rdi
callq 0x8998
leaq 0x70(%rsp), %rdi
callq 0x8998
addq $0xe8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
jmp 0x1c124
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x8998
leaq 0x70(%rsp), %rdi
callq 0x8998
movq 0x48(%rsp), %rdi
callq 0x8870
nopl (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addNucleusConstraint(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double)
void Model::addNucleusConstraint(string beadId, double springConstant /*=1*/) {
  assert(getBead.find(beadId) != getBead.end()); 
  assert(this->hasNucleus);
  Bead* b1 = getBead[beadId];  
  this->addConstraint(Constraint(b1, &(this->centerBead), this->nucleusRadius - b1->getRadius(), NUCLEUS, springConstant, this->nucleusRadius - b1->getRadius()));
}

// Assembly:
subq $0xe8, %rsp
movq %rsi, 0x70(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movsd %xmm0, 0xd0(%rsp)
movq 0xe0(%rsp), %rdi
movq %rdi, 0x78(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x78(%rsp), %rdi
movq %rax, 0xc8(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0xc0(%rsp)
leaq 0xc8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1c8ca
jmp 0x1c8cc
jmp 0x1c8eb
leaq 0x34085(%rip), %rdi     # 0x50958
leaq 0x33df5(%rip), %rsi     # 0x506cf
movl $0x6e, %edx
leaq 0x340d2(%rip), %rcx     # 0x509b8
callq 0x8340
movq 0x78(%rsp), %rax
testb $0x1, 0xa90(%rax)
je 0x1c8fb
jmp 0x1c91a
leaq 0x340e7(%rip), %rdi     # 0x509e9
leaq 0x33dc6(%rip), %rsi     # 0x506cf
movl $0x6f, %edx
leaq 0x340a3(%rip), %rcx     # 0x509b8
callq 0x8340
movq 0x78(%rsp), %rdi
movq 0x70(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x28120
movq %rax, %rcx
movq 0x78(%rsp), %rax
movq (%rcx), %rcx
movq %rcx, 0xb8(%rsp)
movq 0xb8(%rsp), %rcx
movq %rcx, 0x48(%rsp)
movq %rax, %rcx
addq $0xad0, %rcx            # imm = 0xAD0
movq %rcx, 0x50(%rsp)
movsd 0xa98(%rax), %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x14e60
movq 0x78(%rsp), %rax
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x68(%rsp)
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0xa98(%rax), %xmm0
movsd %xmm0, 0x40(%rsp)
movq 0xb8(%rsp), %rdi
callq 0x14e60
movaps %xmm0, %xmm1
movsd 0x40(%rsp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
callq 0x28210
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movsd 0x58(%rsp), %xmm1
movsd 0x60(%rsp), %xmm2
movaps %xmm0, %xmm3
movsd 0x68(%rsp), %xmm0
leaq 0x80(%rsp), %rdi
movl $0x3, %ecx
callq 0x1aa50
movq 0x78(%rsp), %rdi
movq 0xb0(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x30(%rax)
movups 0x80(%rsp), %xmm0
movups 0x90(%rsp), %xmm1
movups 0xa0(%rsp), %xmm2
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x1b970
addq $0xe8, %rsp
retq
nopl (%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addPeripheryConstraint(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double)
void Model::addPeripheryConstraint(string beadId, double springConstant /*=1*/) {
  assert(this->hasNucleus);
  assert(getBead.find(beadId) != getBead.end()); 
  Bead* b1 = getBead[beadId];  
  this->addConstraint(Constraint(b1, &(this->centerBead), this->nucleusRadius - b1->getRadius(), PERIPHERY, springConstant));
}

// Assembly:
subq $0xd8, %rsp
movq %rsi, 0x60(%rsp)
movq %rdi, 0xd0(%rsp)
movq %rsi, 0xc8(%rsp)
movsd %xmm0, 0xc0(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x68(%rsp)
testb $0x1, 0xa90(%rax)
je 0x1ca8d
jmp 0x1caac
leaq 0x33f55(%rip), %rdi     # 0x509e9
leaq 0x33c34(%rip), %rsi     # 0x506cf
movl $0x75, %edx
leaq 0x33f53(%rip), %rcx     # 0x509fa
callq 0x8340
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280c0
movq 0x68(%rsp), %rdi
movq %rax, 0xb8(%rsp)
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x280f0
movq %rax, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x280a0
testb $0x1, %al
jne 0x1cafe
jmp 0x1cb00
jmp 0x1cb1f
leaq 0x33e51(%rip), %rdi     # 0x50958
leaq 0x33bc1(%rip), %rsi     # 0x506cf
movl $0x76, %edx
leaq 0x33ee0(%rip), %rcx     # 0x509fa
callq 0x8340
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
addq $0xaa0, %rdi            # imm = 0xAA0
callq 0x28120
movq %rax, %rcx
movq 0x68(%rsp), %rax
movq (%rcx), %rcx
movq %rcx, 0xa8(%rsp)
movq 0xa8(%rsp), %rcx
movq %rcx, 0x40(%rsp)
movq %rax, %rcx
addq $0xad0, %rcx            # imm = 0xAD0
movq %rcx, 0x48(%rsp)
movsd 0xa98(%rax), %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0xa8(%rsp), %rdi
callq 0x14e60
movaps %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
callq 0x28210
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movsd 0x50(%rsp), %xmm1
movaps %xmm0, %xmm3
movsd 0x58(%rsp), %xmm0
leaq 0x70(%rsp), %rdi
movl $0x2, %ecx
xorps %xmm2, %xmm2
callq 0x1aa50
movq 0x68(%rsp), %rdi
movq 0xa0(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x30(%rax)
movups 0x70(%rsp), %xmm0
movups 0x80(%rsp), %xmm1
movups 0x90(%rsp), %xmm2
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x1b970
addq $0xd8, %rsp
retq
nopw %cs:(%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::reweightConstraints(ConstraintType, double)
void Model::reweightConstraints(ConstraintType ct, double newSpringConstant) {
  map<string,vector<Constraint> >::iterator cm_it;
  vector<Constraint>::iterator c_it;   
  for(cm_it = constraints.begin(); cm_it != constraints.end(); cm_it++) {
      for(c_it = cm_it->second.begin(); c_it != cm_it->second.end();c_it++) {
        if(c_it->constType == ct) {
	  c_it->k = newSpringConstant;
      }
    }
  }
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movl %esi, 0x5c(%rsp)
movsd %xmm0, 0x50(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x28220
leaq 0x40(%rsp), %rdi
callq 0x28240
movq 0x8(%rsp), %rdi
addq $0x9e8, %rdi            # imm = 0x9E8
callq 0x28260
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x8(%rsp), %rdi
addq $0x9e8, %rdi            # imm = 0x9E8
callq 0x282b0
movq %rax, 0x30(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x28290
testb $0x1, %al
jne 0x1ce6f
jmp 0x1cf23
leaq 0x48(%rsp), %rdi
callq 0x282e0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x28300
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x282e0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x28370
movq %rax, 0x20(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x28330
testb $0x1, %al
jne 0x1cec4
jmp 0x1cf0b
leaq 0x40(%rsp), %rdi
callq 0x283a0
movl 0x10(%rax), %eax
cmpl 0x5c(%rsp), %eax
jne 0x1cef6
movsd 0x50(%rsp), %xmm0
movsd %xmm0, (%rsp)
leaq 0x40(%rsp), %rdi
callq 0x283a0
movsd (%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
jmp 0x1cef8
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
callq 0x283b0
movq %rax, 0x18(%rsp)
jmp 0x1ce94
jmp 0x1cf0d
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x283f0
movq %rax, 0x10(%rsp)
jmp 0x1ce41
addq $0x68, %rsp
retq
nopl (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: weightedSamplePos(std::vector<double, std::allocator<double>>, boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>&)
uint weightedSamplePos(std::vector<double> weights, ENG &eng) {  
  std::vector<double> cumSumWeights(0, weights.size());
  double weightSum = accumulate(weights.begin(), weights.end(), 0);
  partial_sum(weights.begin(), weights.end(), weights.begin());
  double rnd = util::unif_real(0.0,weightSum, eng);
  uint pos = std::lower_bound(weights.begin(), weights.end(), rnd) - weights.begin();
  return pos;
}

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0x28(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
callq 0xbd90
movq %rax, %xmm0
movaps 0x323a3(%rip), %xmm1    # 0x50600
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x323a7(%rip), %xmm1    # 0x50610
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, 0xb8(%rsp)
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xbf30
movq 0x30(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0xc0(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x28990
jmp 0x1e2b3
leaq 0xb7(%rsp), %rdi
callq 0xbfd0
movq 0x28(%rsp), %rdi
callq 0xbec0
movq 0x28(%rsp), %rdi
movq %rax, 0x90(%rsp)
callq 0x127d0
movq %rax, 0x88(%rsp)
movq 0x90(%rsp), %rdi
movq 0x88(%rsp), %rsi
xorl %edx, %edx
callq 0x28a10
movl %eax, 0x24(%rsp)
jmp 0x1e301
movq 0x28(%rsp), %rdi
movl 0x24(%rsp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x98(%rsp)
callq 0xbec0
movq 0x28(%rsp), %rdi
movq %rax, 0x80(%rsp)
callq 0x127d0
movq 0x28(%rsp), %rdi
movq %rax, 0x78(%rsp)
callq 0xbec0
movq %rax, 0x70(%rsp)
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x70(%rsp), %rdx
callq 0x28a80
movq %rax, 0x18(%rsp)
jmp 0x1e360
movq 0x18(%rsp), %rax
movq %rax, 0x68(%rsp)
movsd 0x98(%rsp), %xmm1
movq 0xd8(%rsp), %rdi
xorps %xmm0, %xmm0
callq 0x9940
movsd %xmm0, 0x10(%rsp)
jmp 0x1e38b
movq 0x28(%rsp), %rdi
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
callq 0xbec0
movq 0x28(%rsp), %rdi
movq %rax, 0x48(%rsp)
callq 0x127d0
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x28b80
movq %rax, 0x8(%rsp)
jmp 0x1e3d0
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
callq 0xbec0
movq %rax, 0x38(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x10e10
movl %eax, 0x5c(%rsp)
movl 0x5c(%rsp), %eax
movl %eax, 0x4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0xc3c0
movl 0x4(%rsp), %eax
addq $0xe8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0xb7(%rsp), %rdi
callq 0xbfd0
jmp 0x1e461
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0xc3c0
movq 0xa8(%rsp), %rdi
callq 0x8870
nop
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::writeCMM(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Model::writeCMM(string fileName) {
  std::ofstream myfile;
  myfile.open(fileName.c_str());
  myfile << this->getCMM();
  myfile.close();
}

// Assembly:
subq $0x258, %rsp            # imm = 0x258
movq %rsi, 0x8(%rsp)
movq %rdi, 0x250(%rsp)
movq %rsi, 0x248(%rsp)
movq 0x250(%rsp), %rax
movq %rax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x8810
movq 0x8(%rsp), %rdi
callq 0x8220
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x8070
jmp 0x208a5
movq (%rsp), %rsi
leaq 0x18(%rsp), %rdi
callq 0x1fde0
jmp 0x208b5
leaq 0x48(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x8450
jmp 0x208c6
leaq 0x18(%rsp), %rdi
callq 0x8998
leaq 0x48(%rsp), %rdi
callq 0x8690
jmp 0x208dc
leaq 0x48(%rsp), %rdi
callq 0x86e0
addq $0x258, %rsp            # imm = 0x258
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x40(%rsp)
movl %eax, 0x3c(%rsp)
jmp 0x20916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x40(%rsp)
movl %eax, 0x3c(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x8998
leaq 0x48(%rsp), %rdi
callq 0x86e0
movq 0x40(%rsp), %rdi
callq 0x8870
nopw (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::rescaleBeadSizes(double)
void Model::rescaleBeadSizes(double occupancyFactor) {
  assert(this->hasNucleus);
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;
  double beadVol = this->getTotalBeadVolume();
  double genomeLength = this->getTotalGenomeLength();
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      double newRadius = pow((occupancyFactor * (beaditer->getBpSpan()) / (genomeLength)),1/3.0) * (this->nucleusRadius);
      beaditer->setRadius(newRadius);
    }
  }
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movsd %xmm0, 0x68(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x8(%rsp)
testb $0x1, 0xa90(%rax)
je 0x25f14
jmp 0x25f33
leaq 0x2aace(%rip), %rdi     # 0x509e9
leaq 0x2a7ad(%rip), %rsi     # 0x506cf
movl $0x3c2, %edx            # imm = 0x3C2
leaq 0x2b21f(%rip), %rcx     # 0x5114d
callq 0x8340
leaq 0x60(%rsp), %rdi
callq 0x27c50
leaq 0x58(%rsp), %rdi
callq 0x16890
movq 0x8(%rsp), %rdi
callq 0x277c0
movq 0x8(%rsp), %rdi
movsd %xmm0, 0x50(%rsp)
callq 0x27900
movq 0x8(%rsp), %rdi
movsd %xmm0, 0x48(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x38(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x25fb5
jmp 0x260a3
leaq 0x60(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x30(%rsp), %rdi
callq 0x15540
leaq 0x58(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x16a00
leaq 0x60(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x15570
leaq 0x58(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x2600a
jmp 0x2608b
movsd 0x68(%rsp), %xmm0
movsd %xmm0, (%rsp)
leaq 0x58(%rsp), %rdi
callq 0x16ca0
movq %rax, %rdi
callq 0x14e70
movsd (%rsp), %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
mulsd %xmm1, %xmm0
divsd 0x48(%rsp), %xmm0
movsd 0x2a593(%rip), %xmm1    # 0x505d8
callq 0x8860
movq 0x8(%rsp), %rax
mulsd 0xa98(%rax), %xmm0
movsd %xmm0, 0x20(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x16ca0
movq %rax, %rdi
movsd 0x20(%rsp), %xmm0
callq 0x14e10
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x25fdb
jmp 0x2608d
leaq 0x60(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x10(%rsp)
jmp 0x25f87
addq $0x78, %rsp
retq
nopl (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::interactionWeightsSpecifiedSymmetricly(std::map<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, double, std::less<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::pair<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>> const, double>>>&)
bool Model::interactionWeightsSpecifiedSymmetricly(std::map<idPair,double> &interactionWithWeight) {
  idPair newPair;
  for(std::map<idPair,double>::iterator it = interactionWithWeight.begin(); it != interactionWithWeight.end(); it++) {
    newPair = make_pair(it->first.second,it->first.first);
    if(interactionWithWeight.find(newPair) == interactionWithWeight.end()) {
      return false;
    }
    else {
      if(abs(interactionWithWeight[newPair] - it->second) > 0.000001) {
	return false;
      }
    }
  }
  return true;
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x108(%rsp)
movq %rsi, 0x100(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x28430
movq 0x100(%rsp), %rdi
callq 0x29d00
movq %rax, 0xb8(%rsp)
movq 0x100(%rsp), %rdi
callq 0x29a10
movq %rax, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x299f0
testb $0x1, %al
jne 0x2640c
jmp 0x2657f
leaq 0xb8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x29a40
movq 0x30(%rsp), %rdi
addq $0x20, %rax
movq %rax, 0x38(%rsp)
callq 0x29a40
movq 0x38(%rsp), %rsi
movq %rax, %rdx
leaq 0x70(%rsp), %rdi
callq 0x29d30
jmp 0x26445
leaq 0xc0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0x70(%rsp), %rsi
movq %rsi, 0x18(%rsp)
callq 0x28460
movq 0x18(%rsp), %rdi
callq 0x28070
movq 0x20(%rsp), %rsi
movq 0x100(%rsp), %rdi
callq 0x299b0
movq %rax, 0x28(%rsp)
jmp 0x26484
movq 0x28(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x100(%rsp), %rdi
callq 0x29a10
movq %rax, 0x50(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x29d70
testb $0x1, %al
jne 0x264b5
jmp 0x264ea
movb $0x0, 0x117(%rsp)
movl $0x1, 0x4c(%rsp)
jmp 0x2658f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x68(%rsp)
movl %eax, 0x64(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x28070
jmp 0x265ad
movq 0x100(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x29750
movq %rax, 0x10(%rsp)
jmp 0x26506
movq 0x10(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x29a40
movsd (%rsp), %xmm0
movsd 0x40(%rax), %xmm1
subsd %xmm1, %xmm0
callq 0xd670
movsd %xmm0, 0x8(%rsp)
jmp 0x2653c
movsd 0x8(%rsp), %xmm0
movsd 0x2a096(%rip), %xmm1    # 0x505e0
ucomisd %xmm1, %xmm0
jbe 0x26562
movb $0x0, 0x117(%rsp)
movl $0x1, 0x4c(%rsp)
jmp 0x2658f
jmp 0x26564
jmp 0x26566
leaq 0xb8(%rsp), %rdi
xorl %esi, %esi
callq 0x29d90
movq %rax, 0x40(%rsp)
jmp 0x263d9
movb $0x1, 0x117(%rsp)
movl $0x1, 0x4c(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x28070
movb 0x117(%rsp), %al
andb $0x1, %al
addq $0x118, %rsp            # imm = 0x118
retq
movq 0x68(%rsp), %rdi
callq 0x8870
nopw (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::getNumberOfBeads()
uint Model::getNumberOfBeads() {
  vector<Chromosome>::iterator chriter;
  uint res = 0;
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    res += chriter->size();
  }
  return res;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, (%rsp)
leaq 0x28(%rsp), %rdi
callq 0x27c50
movq (%rsp), %rdi
movl $0x0, 0x24(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%rsp)
movq (%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x10(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x26c0d
jmp 0x26c3a
leaq 0x28(%rsp), %rdi
callq 0x27cb0
movq %rax, %rdi
callq 0x154f0
addl 0x24(%rsp), %eax
movl %eax, 0x24(%rsp)
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x8(%rsp)
jmp 0x26be3
movl 0x24(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::getTotalChrLength()
double Model::getTotalChrLength() {
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;
  double res = 0;
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      res += beaditer->getRadius() * 2;
    }
  }
  return res;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
leaq 0x48(%rsp), %rdi
callq 0x27c50
leaq 0x40(%rsp), %rdi
callq 0x16890
movq (%rsp), %rdi
xorps %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x48(%rsp)
movq (%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x28(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x26ccb
jmp 0x26d6e
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x20(%rsp), %rdi
callq 0x15540
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16a00
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x18(%rsp), %rdi
callq 0x15570
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x26d1d
jmp 0x26d56
leaq 0x40(%rsp), %rdi
callq 0x16ca0
movq %rax, %rdi
callq 0x14e60
movsd 0x38(%rsp), %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x26cf1
jmp 0x26d58
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x8(%rsp)
jmp 0x26c9e
movsd 0x38(%rsp), %xmm0
addq $0x58, %rsp
retq
nopl (%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addNucleusConstraints(double)
void Model::addNucleusConstraints(double springConstant /*=1*/) {
  assert(this->hasNucleus);
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;  
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      this->addNucleusConstraint(beaditer->getID(),springConstant);
    }
  }
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movsd %xmm0, 0x88(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x10(%rsp)
testb $0x1, 0xa90(%rax)
je 0x26dd0
jmp 0x26def
leaq 0x29c12(%rip), %rdi     # 0x509e9
leaq 0x298f1(%rip), %rsi     # 0x506cf
movl $0x372, %edx            # imm = 0x372
leaq 0x2a310(%rip), %rcx     # 0x510fa
callq 0x8340
leaq 0x80(%rsp), %rdi
callq 0x27c50
leaq 0x78(%rsp), %rdi
callq 0x16890
movq 0x10(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x10(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x68(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x26e5a
jmp 0x26f3d
leaq 0x80(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x60(%rsp), %rdi
callq 0x15540
leaq 0x78(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16a00
leaq 0x80(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x58(%rsp), %rdi
callq 0x15570
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x26eb2
jmp 0x26f22
leaq 0x78(%rsp), %rdi
callq 0x16ca0
movq %rax, %rsi
leaq 0x38(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x14ea0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movsd 0x88(%rsp), %xmm0
callq 0x1c850
jmp 0x26ee8
leaq 0x38(%rsp), %rdi
callq 0x8998
leaq 0x20(%rsp), %rdi
leaq 0x78(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x26e83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x8998
jmp 0x26f45
jmp 0x26f24
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x18(%rsp)
jmp 0x26e29
addq $0x98, %rsp
retq
movq 0x30(%rsp), %rdi
callq 0x8870
nop
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::addCenterConstraints(double)
void Model::addCenterConstraints(double springConstant /*=1*/) {
  assert(this->hasNucleus);
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;  
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      this->addCenterConstraint(beaditer->getID(), springConstant);
    }
  }
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movsd %xmm0, 0x88(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x10(%rsp)
testb $0x1, 0xa90(%rax)
je 0x26f80
jmp 0x26f9f
leaq 0x29a62(%rip), %rdi     # 0x509e9
leaq 0x29741(%rip), %rsi     # 0x506cf
movl $0x38a, %edx            # imm = 0x38A
leaq 0x2a18a(%rip), %rcx     # 0x51124
callq 0x8340
leaq 0x80(%rsp), %rdi
callq 0x27c50
leaq 0x78(%rsp), %rdi
callq 0x16890
movq 0x10(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x10(%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x68(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x2700a
jmp 0x270ed
leaq 0x80(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x60(%rsp), %rdi
callq 0x15540
leaq 0x78(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16a00
leaq 0x80(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x58(%rsp), %rdi
callq 0x15570
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x27062
jmp 0x270d2
leaq 0x78(%rsp), %rdi
callq 0x16ca0
movq %rax, %rsi
leaq 0x38(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x14ea0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movsd 0x88(%rsp), %xmm0
callq 0x1cc20
jmp 0x27098
leaq 0x38(%rsp), %rdi
callq 0x8998
leaq 0x20(%rsp), %rdi
leaq 0x78(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x27033
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x8998
jmp 0x270f5
jmp 0x270d4
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x18(%rsp)
jmp 0x26fd9
addq $0x98, %rsp
retq
movq 0x30(%rsp), %rdi
callq 0x8870
nop
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::getTotalBeadVolume()
double Model::getTotalBeadVolume() {
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;
  double res = 0;
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      res += (4.0/3.0) * util::PI * pow(beaditer->getRadius(),3);
    }
  }
  return res;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
leaq 0x48(%rsp), %rdi
callq 0x27c50
leaq 0x40(%rsp), %rdi
callq 0x16890
movq (%rsp), %rdi
xorps %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x48(%rsp)
movq (%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x28(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x2783b
jmp 0x278f0
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x20(%rsp), %rdi
callq 0x15540
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16a00
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x18(%rsp), %rdi
callq 0x15570
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x2788d
jmp 0x278d8
leaq 0x40(%rsp), %rdi
callq 0x16ca0
movq %rax, %rdi
callq 0x14e60
movl $0x3, %edi
callq 0xbbf0
movsd 0x38(%rsp), %xmm1
movsd 0x28d19(%rip), %xmm2    # 0x505d0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x27861
jmp 0x278da
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x8(%rsp)
jmp 0x2780e
movsd 0x38(%rsp), %xmm0
addq $0x58, %rsp
retq
nopl (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::getTotalGenomeLength()
double Model::getTotalGenomeLength() {
  vector<Chromosome>::iterator chriter;
  boost::container::static_vector<Bead,MAXSIZE>::iterator beaditer;
  double res = 0;
  for(chriter = chromosomes.begin(); chriter != chromosomes.end(); chriter++) {
    for(beaditer=chriter->begin(); beaditer!=chriter->end(); beaditer++) {
      res += beaditer->getBpSpan();
    }
  }
  return res;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
leaq 0x48(%rsp), %rdi
callq 0x27c50
leaq 0x40(%rsp), %rdi
callq 0x16890
movq (%rsp), %rdi
xorps %xmm0, %xmm0
movsd %xmm0, 0x38(%rsp)
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27be0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x48(%rsp)
movq (%rsp), %rdi
addq $0xa78, %rdi            # imm = 0xA78
callq 0x27c10
movq %rax, 0x28(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x27c70
testb $0x1, %al
jne 0x2797b
jmp 0x27a1d
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x20(%rsp), %rdi
callq 0x15540
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x16a00
leaq 0x48(%rsp), %rdi
callq 0x27cb0
movq %rax, %rsi
leaq 0x18(%rsp), %rdi
callq 0x15570
leaq 0x40(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x16b40
testb $0x1, %al
jne 0x279cd
jmp 0x27a05
leaq 0x40(%rsp), %rdi
callq 0x16ca0
movq %rax, %rdi
callq 0x14e70
movl %eax, %eax
cvtsi2sd %rax, %xmm0
addsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
xorl %edx, %edx
callq 0x16b60
jmp 0x279a1
jmp 0x27a07
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x27db0
movq %rax, 0x8(%rsp)
jmp 0x2794e
movsd 0x38(%rsp), %xmm0
addq $0x58, %rsp
retq
nopl (%rax,%rax)
// File: Chrom3D[P]Chrom3D/src/tclap-1.2.1/include/tclap/SwitchArg.h
// Function: TCLAP::SwitchArg::commonProcessing()
inline void SwitchArg::commonProcessing()
{
	if ( _xorSet )
		throw(CmdLineParseException(
		      "Mutually exclusive argument already set!", toString()));

	if ( _alreadySet ) 
		throw(CmdLineParseException("Argument already set!", toString()));

	_alreadySet = true;

	if ( _value == true )
		_value = false;
	else
		_value = true;

	_checkWithVisitor();
}

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0xe0(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x28(%rsp)
testb $0x1, 0xa1(%rax)
je 0x3c888
movb $0x1, 0x87(%rsp)
movl $0x68, %edi
callq 0x8280
movq %rax, 0x18(%rsp)
leaq 0xbf(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x8880
movq 0x20(%rsp), %rdx
leaq 0x154b5(%rip), %rsi     # 0x51c53
leaq 0xc0(%rsp), %rdi
callq 0x1b100
jmp 0x3c7ad
movq 0x28(%rsp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq 0x88(%rsp), %rdi
callq *%rax
jmp 0x3c7c5
movq 0x18(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x3cd50
jmp 0x3c7e1
movq 0x18(%rsp), %rdi
movb $0x0, 0x87(%rsp)
leaq 0x2cc0b(%rip), %rsi     # 0x69400
leaq 0x8a4(%rip), %rdx       # 0x3d0a0
callq 0x8820
jmp 0x3c9ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x3c860
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x3c853
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x8998
leaq 0xc0(%rsp), %rdi
callq 0x8998
leaq 0xbf(%rsp), %rdi
callq 0x8500
testb $0x1, 0x87(%rsp)
jne 0x3c879
jmp 0x3c883
movq 0x18(%rsp), %rdi
callq 0x83a0
jmp 0x3c9dd
movq 0x28(%rsp), %rax
testb $0x1, 0x91(%rax)
je 0x3c995
movb $0x1, 0x37(%rsp)
movl $0x68, %edi
callq 0x8280
movq %rax, 0x8(%rsp)
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x8880
movq 0x10(%rsp), %rdx
leaq 0x14c17(%rip), %rsi     # 0x514e0
leaq 0x60(%rsp), %rdi
callq 0x1b100
jmp 0x3c8d5
movq 0x28(%rsp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq 0x38(%rsp), %rdi
callq *%rax
jmp 0x3c8ea
movq 0x8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x3cd50
jmp 0x3c900
movq 0x8(%rsp), %rdi
movb $0x0, 0x37(%rsp)
leaq 0x2caef(%rip), %rsi     # 0x69400
leaq 0x788(%rip), %rdx       # 0x3d0a0
callq 0x8820
jmp 0x3c9ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x3c976
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x3c96c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x8998
leaq 0x60(%rsp), %rdi
callq 0x8998
leaq 0x5f(%rsp), %rdi
callq 0x8500
testb $0x1, 0x37(%rsp)
jne 0x3c989
jmp 0x3c993
movq 0x8(%rsp), %rdi
callq 0x83a0
jmp 0x3c9dd
movq 0x28(%rsp), %rax
movb $0x1, 0x91(%rax)
movb 0xa3(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x3c9bf
movq 0x28(%rsp), %rax
movb $0x0, 0xa3(%rax)
jmp 0x3c9cb
movq 0x28(%rsp), %rax
movb $0x1, 0xa3(%rax)
movq 0x28(%rsp), %rdi
callq 0x3d260
addq $0xe8, %rsp
retq
movq 0xb0(%rsp), %rdi
callq 0x8870
nopw (%rax,%rax)