// File: /workspace/github_cpp_makefile_star2_O1/Luthaf[P]zeopp/networkanalysis.cc
// Function: TRAVERSAL_NETWORK::findMaxFreeSphere(std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int>>>*, std::set<int, std::less<int>, std::allocator<int>>*)
pair<bool,PATH> TRAVERSAL_NETWORK::findMaxFreeSphere(map<int,int> *idAliases, set<int> *sourceNodes){
  PATH bestPath; bestPath.max_radius = -1;
  vector<bool> haveVisited = vector<bool> (dnet->nodes.size(), false);
  HEAP<PATH> heap (hasLowerMaxR);
  bool NtoN = false;
  
  // Initialize the stack with all nodes connected to the source nodes
  for(unsigned int i = 0; i < sourceNodeIDs.size(); i++){
    DIJKSTRA_NODE sourceNode = dnet->nodes.at(sourceNodeIDs.at(i));
    vector<CONN> viableConns = connectToSink.at(sourceNode.id);
    for(unsigned int j = 0; j <  viableConns.size(); j++){
      CONN nextConn = viableConns.at(j);
      DIJKSTRA_NODE nextNode = dnet->nodes.at(nextConn.to);
      PATH newPath = PATH(nextNode, nextConn.max_radius, max(sourceNode.max_radius, nextNode.max_radius), nextConn.length);
      newPath.visitedIDs.push_back(sourceNode.id);
      newPath.visitedSourceIDs.insert(idAliases->find(sourceNode.id)->second);
      heap.insert(newPath);
    }
  }
  
  while(heap.size() != 0){
    PATH best = heap.pop();
    
    //Done searching if max radius path leads to sink node
    if(best.toSink){
      best.visitedIDs.push_back(best.currentNode.id);
      bestPath = best;
      break;
    }
    
    // Mark nodes that have been visited or abandon current path if node
    // already visited
    if(haveVisited.at(best.currentNode.id))
      continue;
    else
      haveVisited.at(best.currentNode.id) = true;
    
    if(sourceNodes->find(best.currentNode.id) != sourceNodes->end()){
      int origID = idAliases->find(best.currentNode.id)->second;
      if(best.visitedSourceIDs.find(origID) != best.visitedSourceIDs.end()){
	best.visitedIDs.push_back(best.currentNode.id);
	bestPath = best;
	NtoN = true;
	break;
      }
      else{
	best.visitedSourceIDs.insert(origID);
      }	
    }
    best.visitedIDs.push_back(best.currentNode.id);
    
    // Add all nodes that are connected within the unit cell to the stack
    vector<CONN> regConns = regConnections.at(best.currentNode.id);
    for(unsigned int i = 0; i < regConns.size(); i++){
      CONN nextConn = regConns.at(i);
      if(!haveVisited.at(nextConn.to)){
	DIJKSTRA_NODE nextNode = dnet->nodes[nextConn.to];
	PATH nextPath = PATH(nextNode,min(best.max_radius,nextConn.max_radius), max(best.max_inc_radius, nextNode.max_radius), best.length + nextConn.length);
	nextPath.visitedSourceIDs = best.visitedSourceIDs;
	nextPath.visitedIDs = best.visitedIDs;
	heap.insert(nextPath);
      }
    }

    // Add all nodes that are connected in the sink to the stack
    vector<CONN> sinkConns = connectToSink.at(best.currentNode.id);
    for(unsigned int i = 0; i < sinkConns.size(); i++){
      CONN nextConn = sinkConns.at(i);
      DIJKSTRA_NODE nextNode = dnet->nodes[nextConn.to];
      PATH nextPath = PATH(nextNode, min(best.max_radius, nextConn.max_radius), max(best.max_inc_radius, nextNode.max_radius), best.length + nextConn.length);
      nextPath.toSink = true;
      nextPath.visitedIDs = best.visitedIDs;
      nextPath.visitedSourceIDs = best.visitedSourceIDs;
      heap.insert(nextPath);
    }
    
  }
  return pair<bool,PATH> (NtoN,bestPath);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6f8, %rsp            # imm = 0x6F8
movq %rcx, 0x100(%rsp)
movq %rdx, 0x50(%rsp)
movq %rsi, %r15
movq %rdi, 0xf8(%rsp)
leaq 0x3d8(%rsp), %rbx
movq %rbx, %rdi
callq 0x31174
movabsq $-0x4010000000000000, %rax # imm = 0xBFF0000000000000
movq %rax, 0x60(%rbx)
movq 0x70(%r15), %rax
movq 0x8(%rax), %rsi
subq (%rax), %rsi
sarq $0x3, %rsi
movabsq $-0x71c71c71c71c71c7, %rax # imm = 0x8E38E38E38E38E39
imulq %rax, %rsi
leaq 0x138(%rsp), %rdx
movb $0x0, (%rdx)
leaq 0x88(%rsp), %rdi
leaq 0x220(%rsp), %rcx
callq 0x383b0
leaq -0xe96(%rip), %rsi      # 0x318ed
leaq 0x60(%rsp), %rdi
callq 0x38418
movb $0x0, 0x7(%rsp)
movq (%r15), %rax
cmpq %rax, 0x8(%r15)
movq %r15, 0x28(%rsp)
je 0x32c79
leaq 0x240(%rsp), %r13
movl $0x80, %edx
leaq 0x138(%rsp), %rsi
leaq (%rsi,%rdx), %rcx
movq %rcx, 0x18(%rsp)
movq 0x50(%rsp), %rcx
addq $0x8, %rcx
movq %rcx, 0x20(%rsp)
movl $0x98, %ebp
leaq (%rsi,%rbp), %rbx
leaq 0x630(%rsp), %rcx
addq %rcx, %rdx
movq %rdx, 0x8(%rsp)
addq %rcx, %rbp
xorl %edx, %edx
movq 0x70(%r15), %rcx
movq %rdx, 0x48(%rsp)
movslq (%rax,%rdx,4), %rsi
movq (%rcx), %r14
movq 0x8(%rcx), %rdx
subq %r14, %rdx
sarq $0x3, %rdx
movabsq $-0x71c71c71c71c71c7, %rax # imm = 0x8E38E38E38E38E39
imulq %rax, %rdx
cmpq %rsi, %rdx
jbe 0x33968
leaq (%rsi,%rsi,8), %r12
leaq (%r14,%r12,8), %rsi
addq $0x20, %rsi
movupd -0x20(%rsi), %xmm0
movupd -0x10(%rsi), %xmm1
movapd %xmm1, 0x230(%rsp)
movapd %xmm0, 0x220(%rsp)
movq %r13, %rdi
callq 0x38318
leaq (%r14,%r12,8), %rax
movb 0x40(%rax), %cl
movb %cl, 0x20(%r13)
movq 0x38(%rax), %rax
movq %rax, 0x18(%r13)
movslq 0x220(%rsp), %rsi
movq 0x48(%r15), %rax
movq 0x50(%r15), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq %rsi, %rdx
jbe 0x3395a
leaq (%rsi,%rsi,2), %rcx
leaq (%rax,%rcx,8), %rsi
leaq 0x30(%rsp), %rdi
callq 0x38318
movq 0x30(%rsp), %rdi
cmpq %rdi, 0x38(%rsp)
je 0x32c24
xorl %r12d, %r12d
leaq (%r12,%r12,4), %rax
movslq 0x4(%rdi,%rax,8), %rsi
movq 0x70(%r15), %rcx
movq (%rcx), %r14
movq 0x8(%rcx), %rdx
subq %r14, %rdx
sarq $0x3, %rdx
movabsq $-0x71c71c71c71c71c7, %rcx # imm = 0x8E38E38E38E38E39
imulq %rcx, %rdx
cmpq %rsi, %rdx
jbe 0x3394c
movq %rbx, %r15
movsd 0x8(%rdi,%rax,8), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rdi,%rax,8), %xmm0
movsd %xmm0, 0x58(%rsp)
leaq (%rsi,%rsi,8), %r13
leaq 0x20(%r14,%r13,8), %rsi
movupd -0x20(%rsi), %xmm0
movupd -0x10(%rsi), %xmm1
movapd %xmm1, 0xc0(%rsp)
movapd %xmm0, 0xb0(%rsp)
leaq 0xd0(%rsp), %rbx
movq %rbx, %rdi
callq 0x38318
leaq (%r14,%r13,8), %rax
movb 0x40(%rax), %cl
movb %cl, 0x20(%rbx)
movq 0x38(%rax), %rax
movq %rax, 0x18(%rbx)
movapd 0xb0(%rsp), %xmm0
movapd 0xc0(%rsp), %xmm1
movapd %xmm0, 0x390(%rsp)
movapd %xmm1, 0x3a0(%rsp)
leaq 0x3b0(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x38318
movb 0x20(%rbx), %al
movb %al, 0x20(%r14)
movq 0x18(%rbx), %rax
movq %rax, 0x18(%r14)
movsd 0xe8(%rsp), %xmm1
maxsd 0x258(%rsp), %xmm1
leaq 0x138(%rsp), %rdi
leaq 0x390(%rsp), %rsi
movsd 0x58(%rsp), %xmm0
movsd 0x10(%rsp), %xmm2
callq 0x3131e
movq 0x3b0(%rsp), %rdi
testq %rdi, %rdi
je 0x329e0
movq 0x3c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x1c0(%rsp), %rsi
cmpq 0x1c8(%rsp), %rsi
movq 0x28(%rsp), %r14
movq 0x20(%rsp), %r13
je 0x32a16
movl 0x220(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1c0(%rsp)
movq %r15, %rbx
jmp 0x32a2b
movq 0x18(%rsp), %rdi
leaq 0x220(%rsp), %rdx
callq 0xf7b4
movq %r15, %rbx
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rcx
movq %r13, %rax
testq %rcx, %rcx
je 0x32a5d
movl 0x220(%rsp), %edx
movq %r13, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setl %sil
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x32a46
movq %r13, %rsi
cmpq %r13, %rax
je 0x32a76
movl 0x220(%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovlq %r13, %rax
movq %rax, %rsi
addq $0x24, %rsi
movq %rbx, %rdi
callq 0x132f6
leaq 0x630(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x38ec6
leaq 0x150(%rsp), %r13
movupd (%r13), %xmm0
movupd 0x10(%r13), %xmm1
leaq 0x648(%rsp), %r15
movupd %xmm1, 0x10(%r15)
movupd %xmm0, (%r15)
leaq 0x668(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x38318
movb 0x40(%r13), %al
movb %al, 0x40(%r15)
movq 0x38(%r13), %rax
movq %rax, 0x38(%r15)
movupd 0x48(%r13), %xmm0
movupd 0x51(%r13), %xmm1
movupd %xmm1, 0x51(%r15)
movupd %xmm0, 0x48(%r15)
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xe886
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x11076
leaq 0x60(%rsp), %rdi
leaq 0x630(%rsp), %rsi
callq 0x39b82
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0x78(%rsp), %rdx
callq 0x39bae
movq %rbp, %rdi
callq 0xf168
movq 0x6b0(%rsp), %rdi
testq %rdi, %rdi
je 0x32b60
movq 0x6c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x668(%rsp), %rdi
testq %rdi, %rdi
movq %r14, %r15
je 0x32b80
movq 0x678(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x630(%rsp), %rdi
callq 0xf07c
movq %rbx, %rdi
callq 0xf168
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x32bb2
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x32bcf
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x138(%rsp), %rdi
callq 0xf07c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x32bf9
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
incl %r12d
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rax
subq %rdi, %rax
sarq $0x3, %rax
movabsq $-0x3333333333333333, %rcx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rcx, %rax
cmpq %r12, %rax
ja 0x328b6
testq %rdi, %rdi
je 0x32c36
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x240(%rsp), %rdi
testq %rdi, %rdi
je 0x32c53
movq 0x250(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x48(%rsp), %rdx
incl %edx
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %rdx, %rcx
leaq 0x240(%rsp), %r13
ja 0x327ee
movq 0x100(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x208(%rsp)
movl $0x98, %ecx
leaq 0x138(%rsp), %rsi
leaq (%rsi,%rcx), %rax
movq %rax, 0x10(%rsp)
movl $0x80, %edx
leaq (%rsi,%rdx), %rax
movq %rax, 0x8(%rsp)
leaq 0x3d8(%rsp), %rax
leaq (%rax,%rdx), %rsi
movq %rsi, 0x110(%rsp)
leaq (%rax,%rcx), %rax
movq %rax, 0x108(%rsp)
leaq 0x220(%rsp), %rax
leaq (%rax,%rcx), %rbp
addq %rdx, %rax
movq %rax, 0x48(%rsp)
leaq 0x568(%rsp), %rax
leaq (%rax,%rdx), %rsi
movq %rsi, 0x210(%rsp)
addq %rcx, %rax
movq %rax, 0x118(%rsp)
leaq 0x4a0(%rsp), %rax
addq %rax, %rdx
movq %rdx, 0x218(%rsp)
addq %rax, %rcx
movq %rcx, 0x58(%rsp)
movq 0x50(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x200(%rsp)
leaq 0xd0(%rsp), %r13
movq %rbp, 0x80(%rsp)
movq 0x68(%rsp), %rax
subq 0x60(%rsp), %rax
shrq $0x3, %rax
imull $0xc28f5c29, %eax, %eax # imm = 0xC28F5C29
testl %eax, %eax
je 0x33876
leaq 0x138(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x384e6
cmpb $0x1, 0x1b0(%rsp)
jne 0x32da8
movq 0x1c0(%rsp), %rsi
cmpq 0x1c8(%rsp), %rsi
je 0x32f1d
movl 0x150(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1c0(%rsp)
jmp 0x32f2f
movslq 0x150(%rsp), %rsi
leaq 0x88(%rsp), %rdi
callq 0xedb6
movl $0x8, %r15d
testq %rdx, (%rax)
jne 0x32fe3
movslq 0x150(%rsp), %rsi
leaq 0x88(%rsp), %rdi
callq 0xedb6
orq %rdx, (%rax)
movq 0x100(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x208(%rsp), %rdi
movq %rdi, %rax
testq %rcx, %rcx
je 0x32e21
movl 0x150(%rsp), %edx
movq %rdi, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setl %sil
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x32e0a
movq %rdi, %rcx
cmpq %rdi, %rax
je 0x32e3a
movl 0x150(%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovlq %rdi, %rax
movq %rax, %rcx
cmpq %rdi, %rcx
je 0x33139
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x200(%rsp), %rdi
movq %rdi, %rax
testq %rcx, %rcx
je 0x32e7d
movl 0x150(%rsp), %edx
movq %rdi, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setl %sil
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x32e66
movq %rdi, %rcx
cmpq %rdi, %rax
leaq 0x1d8(%rsp), %r8
je 0x32e9e
movl 0x150(%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovlq %rdi, %rax
movq %rax, %rcx
movl 0x24(%rcx), %eax
movl %eax, 0x220(%rsp)
movq 0x1e0(%rsp), %rdx
movq %r8, %rcx
testq %rdx, %rdx
je 0x32ed2
movq %r8, %rcx
xorl %esi, %esi
cmpl %eax, 0x20(%rdx)
setl %sil
cmovgeq %rdx, %rcx
movq 0x10(%rdx,%rsi,8), %rdx
testq %rdx, %rdx
jne 0x32ebb
movq %r8, %r14
cmpq %r8, %rcx
je 0x32ee4
cmpl 0x20(%rcx), %eax
cmovlq %r8, %rcx
movq %rcx, %r14
cmpq %r8, %r14
je 0x33043
movq 0x1c0(%rsp), %rsi
cmpq 0x1c8(%rsp), %rsi
je 0x3305d
movl 0x150(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1c0(%rsp)
jmp 0x3306f
movq 0x8(%rsp), %rdi
leaq 0x150(%rsp), %rdx
callq 0xf7b4
leaq 0x3d8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x39036
leaq 0x150(%rsp), %rax
movupd (%rax), %xmm0
movupd 0x10(%rax), %xmm1
leaq 0x3f0(%rsp), %rax
movupd %xmm1, 0x10(%rax)
movupd %xmm0, (%rax)
leaq 0x410(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x38d5a
leaq 0x188(%rsp), %rdx
movb 0x8(%rdx), %al
leaq 0x428(%rsp), %rcx
movb %al, 0x8(%rcx)
movq (%rdx), %rax
movq %rax, (%rcx)
leaq 0x198(%rsp), %rax
movupd (%rax), %xmm0
movupd 0x9(%rax), %xmm1
leaq 0x438(%rsp), %rax
movupd %xmm1, 0x9(%rax)
movupd %xmm0, (%rax)
movq 0x110(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x1005e
movl $0x9, %r15d
movq 0x108(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x127ec
movq 0x10(%rsp), %rdi
callq 0xf168
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x3300a
movq 0x1c8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x33027
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x138(%rsp), %rdi
callq 0xf07c
cmpl $0x9, %r15d
jne 0x32d40
jmp 0x33876
xorl %r15d, %r15d
movq 0x10(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x132f6
jmp 0x33128
movq 0x8(%rsp), %rdi
leaq 0x150(%rsp), %rdx
callq 0xf7b4
leaq 0x3d8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x39036
leaq 0x150(%rsp), %rax
movupd (%rax), %xmm0
movupd 0x10(%rax), %xmm1
leaq 0x3f0(%rsp), %rax
movupd %xmm1, 0x10(%rax)
movupd %xmm0, (%rax)
leaq 0x410(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x38d5a
leaq 0x188(%rsp), %rdx
movb 0x8(%rdx), %al
leaq 0x428(%rsp), %rcx
movb %al, 0x8(%rcx)
movq (%rdx), %rax
movq %rax, (%rcx)
leaq 0x198(%rsp), %rax
movupd (%rax), %xmm0
movupd 0x9(%rax), %xmm1
leaq 0x438(%rsp), %rax
movupd %xmm1, 0x9(%rax)
movupd %xmm0, (%rax)
movq 0x110(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x1005e
movq 0x108(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x127ec
movb $0x1, 0x7(%rsp)
movl $0x9, %r15d
leaq 0x1d8(%rsp), %rax
cmpq %rax, %r14
jne 0x32fe3
movq 0x1c0(%rsp), %rsi
cmpq 0x1c8(%rsp), %rsi
je 0x33162
movl 0x150(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1c0(%rsp)
jmp 0x33174
movq 0x8(%rsp), %rdi
leaq 0x150(%rsp), %rdx
callq 0xf7b4
movslq 0x150(%rsp), %rsi
movq 0x28(%rsp), %rcx
movq 0x18(%rcx), %rax
movq 0x20(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq %rsi, %rdx
jbe 0x33984
leaq (%rsi,%rsi,2), %rcx
leaq (%rax,%rcx,8), %rsi
leaq 0x30(%rsp), %rdi
callq 0x38318
movq 0x30(%rsp), %rax
cmpq %rax, 0x38(%rsp)
je 0x334e6
movl $0x1, %r14d
xorl %ecx, %ecx
leaq (%rcx,%rcx,4), %rcx
movslq 0x4(%rax,%rcx,8), %r15
movsd 0x8(%rax,%rcx,8), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x10(%rax,%rcx,8), %xmm0
movsd %xmm0, 0x20(%rsp)
leaq 0x88(%rsp), %rdi
movq %r15, %rsi
callq 0xedb6
testq %rdx, (%rax)
jne 0x334b8
movq 0x28(%rsp), %rax
movq 0x70(%rax), %rax
movq (%rax), %r12
leaq (%r15,%r15,8), %r15
leaq (%r12,%r15,8), %rsi
addq $0x20, %rsi
movupd -0x20(%rsi), %xmm0
movupd -0x10(%rsi), %xmm1
movapd %xmm1, 0xc0(%rsp)
movapd %xmm0, 0xb0(%rsp)
movq %r13, %rdi
callq 0x38318
leaq (%r12,%r15,8), %rax
movb 0x40(%rax), %cl
movb %cl, 0x20(%r13)
movq 0x38(%rax), %rax
movq %rax, 0x18(%r13)
movapd 0xb0(%rsp), %xmm0
movapd 0xc0(%rsp), %xmm1
movapd %xmm0, 0x340(%rsp)
movapd %xmm1, 0x350(%rsp)
leaq 0x360(%rsp), %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x38318
movb 0x20(%r13), %al
movb %al, 0x20(%r15)
movq 0x18(%r13), %rax
movq %rax, 0x18(%r15)
movsd 0x20(%rsp), %xmm0
minsd 0x198(%rsp), %xmm0
movsd 0xe8(%rsp), %xmm1
maxsd 0x1a0(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
addsd 0x1a8(%rsp), %xmm2
leaq 0x220(%rsp), %r15
movq %r15, %rdi
leaq 0x340(%rsp), %rsi
callq 0x3131e
movq 0x48(%rsp), %r12
movq 0x360(%rsp), %rdi
testq %rdi, %rdi
je 0x3330b
movq 0x370(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq %r13, %rbx
movq 0x80(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x127ec
movq %r12, %rdi
movq 0x8(%rsp), %rsi
callq 0x1005e
leaq 0x568(%rsp), %rdi
movq %r15, %rsi
callq 0x38ec6
movq %r15, %rbp
leaq 0x238(%rsp), %r15
movupd (%r15), %xmm0
movupd 0x10(%r15), %xmm1
leaq 0x580(%rsp), %r13
movupd %xmm1, 0x10(%r13)
movupd %xmm0, (%r13)
leaq 0x5a0(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x38318
movb 0x40(%r15), %al
movb %al, 0x40(%r13)
movq 0x38(%r15), %rax
movq %rax, 0x38(%r13)
movupd 0x48(%r15), %xmm0
movupd 0x51(%r15), %xmm1
movupd %xmm1, 0x51(%r13)
movupd %xmm0, 0x48(%r13)
movq 0x210(%rsp), %rdi
movq %r12, %rsi
callq 0xe886
movq 0x118(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x11076
movq %rbx, %r13
movq %rbp, %r15
leaq 0x60(%rsp), %rdi
leaq 0x568(%rsp), %rsi
callq 0x39b82
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0x78(%rsp), %rdx
callq 0x39bae
movq 0x118(%rsp), %rdi
callq 0xf168
movq 0x5e8(%rsp), %rdi
testq %rdi, %rdi
movq 0x80(%rsp), %rbp
je 0x33427
movq 0x5f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x5a0(%rsp), %rdi
testq %rdi, %rdi
je 0x33444
movq 0x5b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x568(%rsp), %rdi
callq 0xf07c
movq %rbp, %rdi
callq 0xf168
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0x33476
movq 0x2b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x258(%rsp), %rdi
testq %rdi, %rdi
je 0x33493
movq 0x268(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq %r15, %rdi
callq 0xf07c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x334b8
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movl %r14d, %ecx
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rsi # imm = 0xCCCCCCCCCCCCCCCD
imulq %rsi, %rdx
incl %r14d
cmpq %rcx, %rdx
ja 0x331d1
movslq 0x150(%rsp), %rsi
movq 0x28(%rsp), %rcx
movq 0x48(%rcx), %rax
movq 0x50(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq %rsi, %rdx
jbe 0x33976
leaq (%rsi,%rsi,2), %rcx
leaq (%rax,%rcx,8), %rsi
leaq 0x120(%rsp), %rdi
callq 0x38318
movq 0x120(%rsp), %rdi
cmpq %rdi, 0x128(%rsp)
je 0x33842
movl $0x1, %r14d
xorl %eax, %eax
leaq (%rax,%rax,4), %rax
movslq 0x4(%rdi,%rax,8), %rcx
movsd 0x8(%rdi,%rax,8), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x10(%rdi,%rax,8), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x70(%rax), %rax
movq (%rax), %r15
leaq (%rcx,%rcx,8), %r12
leaq 0x20(%r15,%r12,8), %rsi
movupd -0x20(%rsi), %xmm0
movupd -0x10(%rsi), %xmm1
movapd %xmm1, 0xc0(%rsp)
movapd %xmm0, 0xb0(%rsp)
leaq 0xd0(%rsp), %rbx
movq %rbx, %rdi
callq 0x38318
leaq (%r15,%r12,8), %rax
movb 0x40(%rax), %cl
movb %cl, 0x20(%r13)
movq 0x38(%rax), %rax
movq %rax, 0x18(%r13)
movapd 0xb0(%rsp), %xmm0
movapd 0xc0(%rsp), %xmm1
movapd %xmm0, 0x2f0(%rsp)
movapd %xmm1, 0x300(%rsp)
leaq 0x310(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x38318
movb 0x20(%r13), %al
movb %al, 0x20(%r15)
movq 0x18(%r13), %rax
movq %rax, 0x18(%r15)
movsd 0x20(%rsp), %xmm0
minsd 0x198(%rsp), %xmm0
movsd 0xe8(%rsp), %xmm1
maxsd 0x1a0(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
addsd 0x1a8(%rsp), %xmm2
leaq 0x220(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x3131e
movq 0x48(%rsp), %r12
movq %rbp, %rbx
movq 0x310(%rsp), %rdi
testq %rdi, %rdi
je 0x33672
movq 0x320(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq %r13, %r15
movb $0x1, 0x298(%rsp)
movq %r12, %rdi
movq 0x8(%rsp), %rsi
callq 0x1005e
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0x127ec
leaq 0x4a0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x38ec6
leaq 0x238(%rsp), %r13
movupd (%r13), %xmm0
movupd 0x10(%r13), %xmm1
leaq 0x4b8(%rsp), %rbx
movupd %xmm1, 0x10(%rbx)
movupd %xmm0, (%rbx)
leaq 0x4d8(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x38318
movb 0x40(%r13), %al
movb %al, 0x40(%rbx)
movq 0x38(%r13), %rax
movq %rax, 0x38(%rbx)
movupd 0x48(%r13), %xmm0
movupd 0x51(%r13), %xmm1
movupd %xmm1, 0x51(%rbx)
movupd %xmm0, 0x48(%rbx)
movq 0x218(%rsp), %rdi
movq %r12, %rsi
callq 0xe886
movq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x11076
movq %r15, %r13
leaq 0x60(%rsp), %rdi
leaq 0x4a0(%rsp), %rsi
callq 0x39b82
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rsi
movq 0x78(%rsp), %rdx
callq 0x39bae
movq 0x58(%rsp), %rdi
callq 0xf168
movq 0x520(%rsp), %rdi
testq %rdi, %rdi
je 0x33778
movq 0x530(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x4d8(%rsp), %rdi
testq %rdi, %rdi
je 0x33795
movq 0x4e8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x4a0(%rsp), %rdi
callq 0xf07c
movq %rbp, %rdi
callq 0xf168
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0x337c7
movq 0x2b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x258(%rsp), %rdi
testq %rdi, %rdi
je 0x337e4
movq 0x268(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x220(%rsp), %rdi
callq 0xf07c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x3380e
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movl %r14d, %eax
movq 0x120(%rsp), %rdi
movq 0x128(%rsp), %rcx
subq %rdi, %rcx
sarq $0x3, %rcx
movabsq $-0x3333333333333333, %rdx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rdx, %rcx
incl %r14d
cmpq %rax, %rcx
ja 0x3354c
testq %rdi, %rdi
je 0x33857
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x3386e
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
xorl %r15d, %r15d
jmp 0x32fe3
leaq 0x7(%rsp), %rsi
leaq 0x3d8(%rsp), %rdx
movq 0xf8(%rsp), %rdi
callq 0x38628
leaq 0x60(%rsp), %rdi
callq 0x39340
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x338df
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
xorl %eax, %eax
movq %rax, 0x88(%rsp)
movl %eax, 0x90(%rsp)
movq %rax, 0x98(%rsp)
movl %eax, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
leaq 0x470(%rsp), %rbx
movq %rbx, %rdi
callq 0xf168
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x33908
movq 0x468(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x410(%rsp), %rdi
testq %rdi, %rdi
je 0x33925
movq 0x420(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x3d8(%rsp), %rdi
callq 0xf07c
movq 0xf8(%rsp), %rax
addq $0x6f8, %rsp            # imm = 0x6F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x11bd52(%rip), %rdi    # 0x14f6a5
xorl %eax, %eax
callq 0x4630
leaq 0x11bd44(%rip), %rdi    # 0x14f6a5
xorl %eax, %eax
callq 0x4630
leaq 0x11bd36(%rip), %rdi    # 0x14f6a5
xorl %eax, %eax
callq 0x4630
leaq 0x11bd28(%rip), %rdi    # 0x14f6a5
xorl %eax, %eax
callq 0x4630
leaq 0x11bd1a(%rip), %rdi    # 0x14f6a5
xorl %eax, %eax
callq 0x4630
jmp 0x33a55
movq %rax, %rbx
jmp 0x33d16
jmp 0x33a7c
jmp 0x33a7c
jmp 0x33b10
jmp 0x33b10
jmp 0x33a7c
jmp 0x33a7c
jmp 0x33a7c
movq %rax, %rbx
jmp 0x339f4
movq %rax, %rbx
jmp 0x33b28
jmp 0x33b10
movq %rax, %rbx
movq 0x5e8(%rsp), %rdi
testq %rdi, %rdi
je 0x339f4
movq 0x5f8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x5a0(%rsp), %rdi
testq %rdi, %rdi
je 0x33a16
movq 0x5b0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33a16
movq %rax, %rbx
leaq 0x568(%rsp), %rdi
callq 0xf07c
jmp 0x33b1b
movq %rax, %rbx
movq 0x360(%rsp), %rdi
testq %rdi, %rdi
je 0x33b28
movq 0x370(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33b28
jmp 0x33a55
jmp 0x33a55
movq %rax, %rbx
jmp 0x33cc7
jmp 0x33a5f
movq %rax, %rbx
jmp 0x33caa
movq %rax, %rbx
leaq 0x568(%rsp), %rdi
callq 0x3849c
jmp 0x33b1b
movq %rax, %rbx
jmp 0x33bb2
movq %rax, %rbx
movq 0x520(%rsp), %rdi
testq %rdi, %rdi
je 0x33adf
movq 0x530(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33adf
movq %rax, %rbx
jmp 0x33afc
movq %rax, %rbx
movq 0x310(%rsp), %rdi
testq %rdi, %rdi
je 0x33b61
movq 0x320(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33b61
movq %rax, %rbx
jmp 0x33b7e
movq %rax, %rbx
movq 0x4d8(%rsp), %rdi
testq %rdi, %rdi
je 0x33afc
movq 0x4e8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x4a0(%rsp), %rdi
callq 0xf07c
jmp 0x33b54
movq %rax, %rbx
jmp 0x33b61
movq %rax, %rbx
jmp 0x33b9b
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0x3849c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x33b9b
movq 0xe0(%rsp), %rsi
jmp 0x33b93
movq %rax, %rbx
leaq 0x4a0(%rsp), %rdi
callq 0x3849c
jmp 0x33b54
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0x3849c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x33b7e
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0x33b9b
movq 0x130(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x33bb2
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x138(%rsp), %rdi
callq 0x3849c
jmp 0x33cc7
jmp 0x33bc6
movq %rax, %rbx
jmp 0x33c93
jmp 0x33c54
movq %rax, %rbx
movq 0x3b0(%rsp), %rdi
testq %rdi, %rdi
je 0x33c76
movq 0x3c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33c76
movq %rax, %rbx
jmp 0x33c76
movq %rax, %rbx
jmp 0x33c45
movq %rax, %rbx
movq 0x6b0(%rsp), %rdi
testq %rdi, %rdi
je 0x33c28
movq 0x6c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
jmp 0x33c28
movq %rax, %rbx
movq 0x668(%rsp), %rdi
testq %rdi, %rdi
je 0x33c45
movq 0x678(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x630(%rsp), %rdi
callq 0xf07c
jmp 0x33c69
movq %rax, %rbx
jmp 0x33c69
movq %rax, %rbx
leaq 0x630(%rsp), %rdi
callq 0x3849c
leaq 0x138(%rsp), %rdi
callq 0x3849c
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x33c93
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x33caa
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
movq 0x240(%rsp), %rdi
testq %rdi, %rdi
je 0x33cc7
movq 0x250(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x60(%rsp), %rdi
callq 0x39340
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x33d16
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
xorl %eax, %eax
movq %rax, 0x88(%rsp)
movl %eax, 0x90(%rsp)
movq %rax, 0x98(%rsp)
movl %eax, 0xa0(%rsp)
movq %rax, 0xa8(%rsp)
leaq 0x3d8(%rsp), %rdi
callq 0x3849c
movq %rbx, %rdi
callq 0x4780
nop