// File: Luthaf[P]zeopp/networkanalysis.cc
// Function: simplifyCageNetwork(ATOM_NETWORK*, VORONOI_NETWORK*, DIJKSTRA_NETWORK*, double)
void simplifyCageNetwork(ATOM_NETWORK *atmnet, VORONOI_NETWORK *vornet, DIJKSTRA_NETWORK *dnet, double probe_radius){
  fstream output;
  output.open("testing.cage", fstream::out);
  vector<CAGE> cages;
  identifyCages(atmnet, vornet, dnet, probe_radius, true, output, cages);
   
  vector<Point> cageCenters;
  for(unsigned int i = 0; i < cages.size(); i++){
    cageCenters.push_back(cages[i].getCenter());
  }

  vector<int> nodeCageIDs = vector<int>(vornet->nodes.size(), -1);

  for(unsigned int i = 0; i < cages.size(); i++){
    vector<int> ids = cages[i].getNodeIDs();
    for(unsigned int j = 0; j < ids.size(); j++){
      nodeCageIDs[ids[j]] = i;
    }
  }

  set<DELTA_POS, bool(*)(DELTA_POS,DELTA_POS)> emptySet (deltaPosLessThan);
  vector< vector< set<DELTA_POS, bool(*)(DELTA_POS,DELTA_POS)> > > cageConnections = vector< vector< set<DELTA_POS, bool(*)(DELTA_POS,DELTA_POS)> > >(cages.size(), 
											   vector< set<DELTA_POS, bool(*)(DELTA_POS,DELTA_POS)> >(cages.size(), emptySet));
  for(unsigned int i = 0; i < dnet->nodes.size(); i++){
    int nodeID = nodeCageIDs[i];
    if(nodeID != -1){
      vector<CONN>::iterator connIter = dnet->nodes[i].connections.begin();
      while(connIter != dnet->nodes[i].connections.end()){
	int fromID = nodeCageIDs[connIter->from];
	int toID   = nodeCageIDs[connIter->to];
	if((fromID != -1) && (toID != -1)){
	  if(fromID != toID){
	    cageConnections[fromID][toID].insert(connIter->deltaPos);
	  }
	  else{
	    DELTA_POS cageDeltaPos = cages[toID].getNodeOffset(connIter->to) - (cages[fromID].getNodeOffset(i));
	    if(!cageDeltaPos.equals(connIter->deltaPos)){
	      cageConnections[fromID][toID].insert(connIter->deltaPos);
	    }
	  }
	}
	connIter++;
      }
    }
  }

  output << "set vornets(0) {" << "\n"
	 << "{color red} " << "\n";
  for(unsigned int i = 0; i < cageConnections.size(); i++){
    cout << i << "\n";
    for(unsigned int j = 0; j < cageConnections[i].size(); j++){
      if(cageConnections[i][j].size() > 0){
	cout << "\t ->" << j << "\n";
	set<DELTA_POS, bool(*)(DELTA_POS,DELTA_POS)>::iterator iter = cageConnections[i][j].begin();
	while(iter != cageConnections[i][j].end()){
	  DELTA_POS dp = *iter;
	  if((i != j) || (dp.x != 0) || (dp.y != 0) || (dp.z != 0)){
	    cout << "\t\t" <<  dp.x << " " << dp.y << " " << dp.z << "\n";
	    Point other = Point(cageCenters[j][0], cageCenters[j][1], cageCenters[j][2]);
	    atmnet->translatePoint(&other, dp.x, dp.y, dp.z);
	    output << "{line {" << cageCenters[i][0] << " " << cageCenters[i][1] << " " << cageCenters[i][2] << "} " 
		   <<       "{" << other[0] << " " << other[1] << " " << other[2] << "} }" << "\n";
	  }
	  iter++;
	}
      }
    }
  }
  output << "}" << "\n";
  output.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x680, %rsp            # imm = 0x680
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
leaq -0x230(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x5660
movq -0x468(%rbp), %rdi
leaq 0x19326b(%rip), %rsi    # 0x1f6588
movl $0x10, %edx
callq 0x54b0
jmp 0x63329
leaq -0x258(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x65a50
movq -0x470(%rbp), %r9
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movsd -0x20(%rbp), %xmm0
movl $0x1, %ecx
leaq -0x230(%rbp), %r8
callq 0x62050
jmp 0x63367
leaq -0x270(%rbp), %rdi
callq 0xed40
movl $0x0, -0x274(%rbp)
movl -0x274(%rbp), %eax
movq %rax, -0x478(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x659d0
movq %rax, %rcx
movq -0x478(%rbp), %rax
cmpq %rcx, %rax
jae 0x6343b
movl -0x274(%rbp), %eax
movl %eax, %esi
leaq -0x258(%rbp), %rdi
callq 0x659f0
movq %rax, %rsi
leaq -0x290(%rbp), %rdi
callq 0x61e80
jmp 0x633ce
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0xed80
jmp 0x633e3
jmp 0x633e5
movl -0x274(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x274(%rbp)
jmp 0x6337d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x642ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x642de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x642d2
movq -0x10(%rbp), %rdi
addq $0x48, %rdi
callq 0xf270
movq %rax, -0x488(%rbp)
movl $0xffffffff, -0x2ac(%rbp) # imm = 0xFFFFFFFF
leaq -0x2ad(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x10960
movq -0x488(%rbp), %rsi
movq -0x480(%rbp), %rcx
leaq -0x2a8(%rbp), %rdi
leaq -0x2ac(%rbp), %rdx
callq 0x65a70
jmp 0x6348f
leaq -0x2ad(%rbp), %rdi
callq 0x13030
movl $0x0, -0x2b4(%rbp)
movl -0x2b4(%rbp), %eax
movq %rax, -0x490(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x659d0
movq %rax, %rcx
movq -0x490(%rbp), %rax
cmpq %rcx, %rax
jae 0x635ce
movl -0x2b4(%rbp), %eax
movl %eax, %esi
leaq -0x258(%rbp), %rdi
callq 0x659f0
movq %rax, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x61ec0
jmp 0x634f6
movl $0x0, -0x2d4(%rbp)
movl -0x2d4(%rbp), %eax
movq %rax, -0x498(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x10090
movq %rax, %rcx
movq -0x498(%rbp), %rax
cmpq %rcx, %rax
jae 0x635ae
movl -0x2b4(%rbp), %eax
movl %eax, -0x49c(%rbp)
movl -0x2d4(%rbp), %eax
movl %eax, %esi
leaq -0x2d0(%rbp), %rdi
callq 0xed60
movslq (%rax), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0xed60
movl -0x49c(%rbp), %ecx
movl %ecx, (%rax)
movl -0x2d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2d4(%rbp)
jmp 0x63500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x2ad(%rbp), %rdi
callq 0x13030
jmp 0x642d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x642c6
leaq -0x2d0(%rbp), %rdi
callq 0xec80
movl -0x2b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b4(%rbp)
jmp 0x634a5
leaq 0x30d9b(%rip), %rax     # 0x94370
movq %rax, -0x310(%rbp)
leaq -0x311(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x65af0
movq -0x4a8(%rbp), %rdx
leaq -0x308(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x65b10
jmp 0x6360b
leaq -0x311(%rbp), %rdi
callq 0x14e70
leaq -0x258(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x659d0
movq -0x4c8(%rbp), %rdi
movq %rax, -0x4c0(%rbp)
callq 0x659d0
movq %rax, -0x4b8(%rbp)
leaq -0x349(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x65b90
movq -0x4b8(%rbp), %rsi
movq -0x4b0(%rbp), %rcx
leaq -0x348(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0x65bb0
jmp 0x6367a
leaq -0x34a(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x65c30
movq -0x4c0(%rbp), %rsi
movq -0x4d0(%rbp), %rcx
leaq -0x330(%rbp), %rdi
leaq -0x348(%rbp), %rdx
callq 0x65c50
jmp 0x636b0
leaq -0x34a(%rbp), %rdi
callq 0x65cd0
leaq -0x348(%rbp), %rdi
callq 0x65cf0
leaq -0x349(%rbp), %rdi
callq 0x65d50
movl $0x0, -0x350(%rbp)
movl -0x350(%rbp), %eax
movq %rax, -0x4d8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x10100
movq %rax, %rcx
movq -0x4d8(%rbp), %rax
cmpq %rcx, %rax
jae 0x63b52
movl -0x350(%rbp), %eax
movl %eax, %esi
leaq -0x2a8(%rbp), %rdi
callq 0xed60
movl (%rax), %eax
movl %eax, -0x354(%rbp)
cmpl $-0x1, -0x354(%rbp)
je 0x63b3c
movq -0x18(%rbp), %rdi
movl -0x350(%rbp), %eax
movl %eax, %esi
callq 0x2a4c0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x2a8e0
movq %rax, -0x360(%rbp)
movq -0x18(%rbp), %rdi
movl -0x350(%rbp), %eax
movl %eax, %esi
callq 0x2a4c0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x2a710
movq %rax, -0x368(%rbp)
leaq -0x360(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x65370
testb $0x1, %al
jne 0x63794
jmp 0x63b3a
leaq -0x360(%rbp), %rdi
callq 0x653b0
movslq (%rax), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0xed60
movl (%rax), %eax
movl %eax, -0x36c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x653b0
movslq 0x4(%rax), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0xed60
movl (%rax), %eax
movl %eax, -0x370(%rbp)
cmpl $-0x1, -0x36c(%rbp)
je 0x63b20
cmpl $-0x1, -0x370(%rbp)
je 0x63b20
movl -0x36c(%rbp), %eax
cmpl -0x370(%rbp), %eax
je 0x63912
movslq -0x36c(%rbp), %rsi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
movslq -0x370(%rbp), %rsi
callq 0x65d90
movq %rax, -0x4f0(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x653b0
movq -0x4f0(%rbp), %rdi
movq %rax, %rsi
addq $0x18, %rsi
callq 0x65db0
movb %dl, -0x4e1(%rbp)
movq %rax, -0x4e0(%rbp)
jmp 0x6385e
movb -0x4e1(%rbp), %al
movq -0x4e0(%rbp), %rcx
movq %rcx, -0x380(%rbp)
movb %al, -0x378(%rbp)
jmp 0x63b1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x311(%rbp), %rdi
callq 0x14e70
jmp 0x642c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x638de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x34a(%rbp), %rdi
callq 0x65cd0
leaq -0x348(%rbp), %rdi
callq 0x65cf0
leaq -0x349(%rbp), %rdi
callq 0x65d50
jmp 0x642ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x65f70
jmp 0x642ba
movslq -0x370(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x659f0
movq %rax, -0x508(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x653b0
movq -0x508(%rbp), %rdi
movl 0x4(%rax), %esi
callq 0x61d60
movl %edx, -0x4fc(%rbp)
movq %rax, -0x4f8(%rbp)
jmp 0x63956
movl -0x4fc(%rbp), %eax
movq -0x4f8(%rbp), %rcx
movq %rcx, -0x3b0(%rbp)
movl %eax, -0x3a8(%rbp)
movl -0x3a8(%rbp), %eax
movl %eax, -0x398(%rbp)
movq -0x3b0(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movslq -0x36c(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x659f0
movq %rax, %rdi
movl -0x350(%rbp), %esi
callq 0x61d60
movl %edx, -0x514(%rbp)
movq %rax, -0x510(%rbp)
jmp 0x639ba
movl -0x514(%rbp), %eax
movq -0x510(%rbp), %rcx
movq %rcx, -0x3d0(%rbp)
movl %eax, -0x3c8(%rbp)
movl -0x3c8(%rbp), %eax
movl %eax, -0x3b8(%rbp)
movq -0x3d0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x941b0
movl %edx, -0x524(%rbp)
movq %rax, -0x520(%rbp)
jmp 0x63a10
movl -0x524(%rbp), %eax
movq -0x520(%rbp), %rcx
movq %rcx, -0x3e0(%rbp)
movl %eax, -0x3d8(%rbp)
movl -0x3d8(%rbp), %eax
movl %eax, -0x388(%rbp)
movq -0x3e0(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x653b0
movl 0x20(%rax), %ecx
movl %ecx, -0x3e8(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x3f0(%rbp)
movl -0x3e8(%rbp), %eax
movl %eax, -0x3f8(%rbp)
movq -0x3f0(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0x400(%rbp), %rsi
movl -0x3f8(%rbp), %edx
leaq -0x390(%rbp), %rdi
callq 0x94040
movb %al, -0x525(%rbp)
jmp 0x63a9f
movb -0x525(%rbp), %al
testb $0x1, %al
jne 0x63b1c
jmp 0x63aab
movslq -0x36c(%rbp), %rsi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
movslq -0x370(%rbp), %rsi
callq 0x65d90
movq %rax, -0x540(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x653b0
movq -0x540(%rbp), %rdi
movq %rax, %rsi
addq $0x18, %rsi
callq 0x65db0
movb %dl, -0x531(%rbp)
movq %rax, -0x530(%rbp)
jmp 0x63b02
movb -0x531(%rbp), %al
movq -0x530(%rbp), %rcx
movq %rcx, -0x410(%rbp)
movb %al, -0x408(%rbp)
jmp 0x63b1e
jmp 0x63b20
leaq -0x360(%rbp), %rdi
xorl %esi, %esi
callq 0x654d0
movq %rax, -0x418(%rbp)
jmp 0x63754
jmp 0x63b3c
jmp 0x63b3e
movl -0x350(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x350(%rbp)
jmp 0x636de
leaq -0x220(%rbp), %rdi
leaq 0x192a35(%rip), %rsi    # 0x1f6595
callq 0x5540
movq %rax, -0x548(%rbp)
jmp 0x63b6e
movq -0x548(%rbp), %rdi
leaq 0x195aa9(%rip), %rsi    # 0x1f9625
callq 0x5540
movq %rax, -0x550(%rbp)
jmp 0x63b8a
movq -0x550(%rbp), %rdi
leaq 0x192a0e(%rip), %rsi    # 0x1f65a6
callq 0x5540
movq %rax, -0x558(%rbp)
jmp 0x63ba6
movq -0x558(%rbp), %rdi
leaq 0x195a71(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x63bbb
movl $0x0, -0x41c(%rbp)
movl -0x41c(%rbp), %eax
movq %rax, -0x560(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x65e00
movq %rax, %rcx
movq -0x560(%rbp), %rax
cmpq %rcx, %rax
jae 0x6422a
movl -0x41c(%rbp), %esi
movq 0x20f3c2(%rip), %rdi    # 0x272fc0
callq 0x56f0
movq %rax, -0x568(%rbp)
jmp 0x63c0c
movq -0x568(%rbp), %rdi
leaq 0x195a0b(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x63c21
movl $0x0, -0x420(%rbp)
movl -0x420(%rbp), %eax
movq %rax, -0x570(%rbp)
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
callq 0x65e30
movq %rax, %rcx
movq -0x570(%rbp), %rax
cmpq %rcx, %rax
jae 0x64214
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
movl -0x420(%rbp), %eax
movl %eax, %esi
callq 0x65d90
movq %rax, %rdi
callq 0x65e60
cmpq $0x0, %rax
jbe 0x641fe
movq 0x20f31c(%rip), %rdi    # 0x272fc0
leaq 0x192908(%rip), %rsi    # 0x1f65b3
callq 0x5540
movq %rax, -0x578(%rbp)
jmp 0x63cb9
movq -0x578(%rbp), %rdi
movl -0x420(%rbp), %esi
callq 0x56f0
movq %rax, -0x580(%rbp)
jmp 0x63cd4
movq -0x580(%rbp), %rdi
leaq 0x195943(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x63ce9
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
movl -0x420(%rbp), %eax
movl %eax, %esi
callq 0x65d90
movq %rax, %rdi
callq 0x65e80
movq %rax, -0x428(%rbp)
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x330(%rbp), %rdi
callq 0x65d70
movq %rax, %rdi
movl -0x420(%rbp), %eax
movl %eax, %esi
callq 0x65d90
movq %rax, %rdi
callq 0x65ee0
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x65eb0
testb $0x1, %al
jne 0x63d6b
jmp 0x641fc
leaq -0x428(%rbp), %rdi
callq 0x65f10
movq (%rax), %rcx
movq %rcx, -0x43c(%rbp)
movl 0x8(%rax), %eax
movl %eax, -0x434(%rbp)
movl -0x41c(%rbp), %eax
cmpl -0x420(%rbp), %eax
jne 0x63db7
cmpl $0x0, -0x43c(%rbp)
jne 0x63db7
cmpl $0x0, -0x438(%rbp)
jne 0x63db7
cmpl $0x0, -0x434(%rbp)
je 0x641e2
movq 0x20f202(%rip), %rdi    # 0x272fc0
leaq 0x18f805(%rip), %rsi    # 0x1f35ca
callq 0x5540
movq %rax, -0x588(%rbp)
jmp 0x63dd3
movq -0x588(%rbp), %rdi
movl -0x43c(%rbp), %esi
callq 0x58d0
movq %rax, -0x590(%rbp)
jmp 0x63dee
movq -0x590(%rbp), %rdi
leaq 0x1984b2(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x598(%rbp)
jmp 0x63e0a
movq -0x598(%rbp), %rdi
movl -0x438(%rbp), %esi
callq 0x58d0
movq %rax, -0x5a0(%rbp)
jmp 0x63e25
movq -0x5a0(%rbp), %rdi
leaq 0x19847b(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x5a8(%rbp)
jmp 0x63e41
movq -0x5a8(%rbp), %rdi
movl -0x434(%rbp), %esi
callq 0x58d0
movq %rax, -0x5b0(%rbp)
jmp 0x63e5c
movq -0x5b0(%rbp), %rdi
leaq 0x1957bb(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x63e71
movl -0x420(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
xorl %esi, %esi
callq 0xe9d70
movq %rax, -0x5b8(%rbp)
jmp 0x63e98
movq -0x5b8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x5c8(%rbp)
movl -0x420(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
movl $0x1, %esi
callq 0xe9d70
movq %rax, -0x5c0(%rbp)
jmp 0x63ed5
movq -0x5c0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x5d8(%rbp)
movl -0x420(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
movl $0x2, %esi
callq 0xe9d70
movq %rax, -0x5d0(%rbp)
jmp 0x63f12
movsd -0x5d8(%rbp), %xmm1
movsd -0x5c8(%rbp), %xmm0
movq -0x5d0(%rbp), %rax
movsd (%rax), %xmm2
leaq -0x458(%rbp), %rdi
callq 0xe9c70
jmp 0x63f3b
movq -0x8(%rbp), %rdi
cvtsi2sdl -0x43c(%rbp), %xmm0
cvtsi2sdl -0x438(%rbp), %xmm1
cvtsi2sdl -0x434(%rbp), %xmm2
leaq -0x458(%rbp), %rsi
callq 0x97d20
jmp 0x63f65
leaq -0x220(%rbp), %rdi
leaq 0x192645(%rip), %rsi    # 0x1f65b8
callq 0x5540
movq %rax, -0x5e0(%rbp)
jmp 0x63f81
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
xorl %esi, %esi
callq 0xe9d70
movq %rax, -0x5e8(%rbp)
jmp 0x63fa8
movq -0x5e0(%rbp), %rdi
movq -0x5e8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x5f0(%rbp)
jmp 0x63fc8
movq -0x5f0(%rbp), %rdi
leaq 0x1982d8(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x5f8(%rbp)
jmp 0x63fe4
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
movl $0x1, %esi
callq 0xe9d70
movq %rax, -0x600(%rbp)
jmp 0x6400e
movq -0x5f8(%rbp), %rdi
movq -0x600(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x608(%rbp)
jmp 0x6402e
movq -0x608(%rbp), %rdi
leaq 0x198272(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x610(%rbp)
jmp 0x6404a
movl -0x41c(%rbp), %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x5c150
movq %rax, %rdi
movl $0x2, %esi
callq 0xe9d70
movq %rax, -0x618(%rbp)
jmp 0x64074
movq -0x610(%rbp), %rdi
movq -0x618(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x620(%rbp)
jmp 0x64094
movq -0x620(%rbp), %rdi
leaq 0x19250e(%rip), %rsi    # 0x1f65b0
callq 0x5540
movq %rax, -0x628(%rbp)
jmp 0x640b0
movq -0x628(%rbp), %rdi
leaq 0x196fd9(%rip), %rsi    # 0x1fb097
callq 0x5540
movq %rax, -0x630(%rbp)
jmp 0x640cc
leaq -0x458(%rbp), %rdi
xorl %esi, %esi
callq 0xe9d70
movq %rax, -0x638(%rbp)
jmp 0x640e3
movq -0x630(%rbp), %rdi
movq -0x638(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x640(%rbp)
jmp 0x64103
movq -0x640(%rbp), %rdi
leaq 0x19819d(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x648(%rbp)
jmp 0x6411f
leaq -0x458(%rbp), %rdi
movl $0x1, %esi
callq 0xe9d70
movq %rax, -0x650(%rbp)
jmp 0x64139
movq -0x648(%rbp), %rdi
movq -0x650(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x658(%rbp)
jmp 0x64159
movq -0x658(%rbp), %rdi
leaq 0x198147(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x660(%rbp)
jmp 0x64175
leaq -0x458(%rbp), %rdi
movl $0x2, %esi
callq 0xe9d70
movq %rax, -0x668(%rbp)
jmp 0x6418f
movq -0x660(%rbp), %rdi
movq -0x668(%rbp), %rax
movsd (%rax), %xmm0
callq 0x5980
movq %rax, -0x670(%rbp)
jmp 0x641af
movq -0x670(%rbp), %rdi
leaq 0x192403(%rip), %rsi    # 0x1f65c0
callq 0x5540
movq %rax, -0x678(%rbp)
jmp 0x641cb
movq -0x678(%rbp), %rdi
leaq 0x19544c(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x641e0
jmp 0x641e2
leaq -0x428(%rbp), %rdi
xorl %esi, %esi
callq 0x65f30
movq %rax, -0x460(%rbp)
jmp 0x63d1c
jmp 0x641fe
jmp 0x64200
movl -0x420(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x420(%rbp)
jmp 0x63c2b
jmp 0x64216
movl -0x41c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x41c(%rbp)
jmp 0x63bc5
leaq -0x220(%rbp), %rdi
leaq 0x196dc3(%rip), %rsi    # 0x1faffb
callq 0x5540
movq %rax, -0x680(%rbp)
jmp 0x64246
movq -0x680(%rbp), %rdi
leaq 0x1953d1(%rip), %rsi    # 0x1f9625
callq 0x5540
jmp 0x6425b
leaq -0x230(%rbp), %rdi
callq 0x50a0
jmp 0x64269
leaq -0x330(%rbp), %rdi
callq 0x65f70
leaq -0x308(%rbp), %rdi
callq 0x65fd0
leaq -0x2a8(%rbp), %rdi
callq 0xec80
leaq -0x270(%rbp), %rdi
callq 0xefe0
leaq -0x258(%rbp), %rdi
callq 0x65ff0
leaq -0x230(%rbp), %rdi
callq 0x5150
addq $0x680, %rsp            # imm = 0x680
popq %rbp
retq
leaq -0x308(%rbp), %rdi
callq 0x65fd0
leaq -0x2a8(%rbp), %rdi
callq 0xec80
leaq -0x270(%rbp), %rdi
callq 0xefe0
leaq -0x258(%rbp), %rdi
callq 0x65ff0
leaq -0x230(%rbp), %rdi
callq 0x5150
movq -0x238(%rbp), %rdi
callq 0x58f0
nopw %cs:(%rax,%rax)
nopl (%rax)