// File: /workspace/github_cpp_makefile_star2_O2/Luthaf[P]zeopp/sphere_approx.cc
// Function: AtomCluster::calc_centerSpheres(double, int)
void AtomCluster::calc_centerSpheres(double shift, int i){

	ATOM new_center;
//Top and bottom 4 (w/ z vertices) 
//Uses existing coordinates from icosidodecahedron 
//Pentagon 1: (0, 0, T), (1/2, +- T/2, (1+T)/2), ((1+T)/2, +-1/2, T/2) 
	new_center = calc_center(atom_vector, i+4, i+6, i+8, i+22, i+24, shift);
	atom_vector.push_back(new_center);
//Pentagon 2: (0, 0, T), (-1/2, +- T/2, (1+T)/2), (-(1+T)/2, +-1/2, T/2) 
	new_center = calc_center(atom_vector, i+4, i+7, i+10, i+23, i+26, shift);
	atom_vector.push_back(new_center);
//Pentagon 3: (0, 0, -T), (1/2, +- T/2, -(1+T)/2), ((1+T)/2, +-1/2, -T/2) 
	new_center = calc_center(atom_vector, i+5, i+9, i+12, i+25, i+28, shift);
	atom_vector.push_back(new_center);
//Pentagon 4: (0, 0, -T), (-1/2, +- T/2, -(1+T)/2), (-(1+T)/2, +-1/2, -T/2) 
	new_center = calc_center(atom_vector, i+5, i+11, i+13, i+27, i+29, shift);
	atom_vector.push_back(new_center);

//mid-top 4 (w/ y vertices)
//Pentagon 5: (+-1/2, T/2, (1+T)/2), (+-T/2, (1+T)/2, 1/2), (0, T, 0)
	new_center = calc_center(atom_vector, i+2, i+6, i+7, i+14, i+15, shift);
	atom_vector.push_back(new_center);
//Pentagon 6: (+-1/2, T/2, -(1+T)/2), (+-T/2, (1+T)/2, -1/2), (0, T, 0)
	new_center = calc_center(atom_vector, i+2, i+9, i+11, i+17, i+19, shift);
	atom_vector.push_back(new_center);
//Pentagon 7: (+-1/2, -T/2, (1+T)/2), (+-T/2, -(1+T)/2, 1/2), (0, -T, 0)
	new_center = calc_center(atom_vector, i+3, i+8, i+10, i+16, i+18, shift);
	atom_vector.push_back(new_center);
//Pentagon 8: (+-1/2, -T/2, -(1+T)/2), (+-T/2, -(1+T)/2, -1/2), (0, -T, 0)
	new_center = calc_center(atom_vector, i+3, i+12, i+13, i+20, i+21, shift);
	atom_vector.push_back(new_center);

//Middle 4 (w/ x vertices) 
//Pentagon 9: (T, 0, 0), (T/2, (1+T)/2, +-1/2), ((1+T)/2, 1/2, +-T/2)
	new_center = calc_center(atom_vector, i, i+14, i+17, i+22, i+25, shift);
	atom_vector.push_back(new_center);
//Pentagon 10: (T, 0, 0), (T/2, -(1+T)/2, +-1/2), ((1+T)/2, -1/2, +-T/2)
	new_center = calc_center(atom_vector, i, i+16, i+20, i+24, i+28, shift);
	atom_vector.push_back(new_center);
//Pentagon 11: (-T, 0, 0), (-T/2, (1+T)/2, +-1/2), (-(1+T)/2, 1/2, +-T/2)
	new_center = calc_center(atom_vector, i+1, i+15, i+19, i+23, i+27, shift);
	atom_vector.push_back(new_center);
//Pentagon 12: (-T, 0, 0), (-T/2, -(1+T)/2, +-1/2), (-(1+T)/2, -1/2, +-T/2)
	new_center = calc_center(atom_vector, i+1, i+18, i+21, i+26, i+29, shift);
	atom_vector.push_back(new_center);
	
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2d8, %rsp            # imm = 0x2D8
movl %esi, %r14d
movsd %xmm0, (%rsp)
movq %rdi, %r15
leaq 0x240(%rsp), %rdi
callq 0x3dc5a
leaq 0x138(%r15), %rbx
leaq 0x190(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x4(%r14), %ebp
leal 0x6(%r14), %r8d
leal 0x8(%r14), %r9d
leal 0x16(%r14), %r10d
leal 0x18(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x190(%rsp), %rdx
movq %r15, %rsi
movl %ebp, %ecx
movl %r8d, 0x30(%rsp)
movl %r9d, 0x20(%rsp)
movsd (%rsp), %xmm0
movq %rax, 0x78(%rsp)
pushq %rax
movq %r10, 0x88(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x6e28e
movq %r13, %rdi
callq 0xa808
leaq 0x190(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0x178(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x7(%r14), %r8d
leal 0xa(%r14), %r9d
leal 0x17(%r14), %r10d
leal 0x1a(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x178(%rsp), %rdx
movq %r15, %rsi
movl %ebp, %ecx
movl %r8d, 0x28(%rsp)
movl %r9d, 0x18(%rsp)
movsd (%rsp), %xmm0
movq %rax, 0x58(%rsp)
pushq %rax
movq %r10, 0x70(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x6e28e
movq %r13, %rdi
callq 0xa808
leaq 0x178(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0x160(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x5(%r14), %r13d
leal 0x9(%r14), %r8d
leal 0xc(%r14), %r9d
leal 0x19(%r14), %r10d
leal 0x1c(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x160(%rsp), %rdx
movq %r15, %rsi
movl %r13d, %ecx
movl %r8d, 0x10(%rsp)
movl %r9d, 0x3c(%rsp)
movsd (%rsp), %xmm0
movq %rax, 0x60(%rsp)
pushq %rax
movq %r10, 0x78(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %rbp
movq %r12, %rdi
movq %rbp, %rsi
callq 0x6e28e
movq %rbp, %rdi
callq 0xa808
leaq 0x160(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0x148(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0xb(%r14), %r12d
leal 0xd(%r14), %r9d
leal 0x1b(%r14), %r10d
leal 0x1d(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x148(%rsp), %rdx
movq %r15, %rsi
movl %r13d, %ecx
movl %r12d, %r8d
movl %r9d, 0x38(%rsp)
movsd (%rsp), %xmm0
movq %rax, 0x48(%rsp)
pushq %rax
movq %r10, 0x58(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r13
leaq 0x1a8(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x6e28e
movq %rbp, %rdi
callq 0xa808
leaq 0x148(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa7d8
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
movl %r12d, 0x8(%rsp)
leal 0x2(%r14), %ebp
leal 0xe(%r14), %r10d
leal 0xf(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x130(%rsp), %rdx
movq %r15, %rsi
movl %ebp, %ecx
movl 0x30(%rsp), %r8d
movl 0x28(%rsp), %r9d
movsd (%rsp), %xmm0
movq %rax, 0x40(%rsp)
pushq %rax
movq %r10, 0x38(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r13
leaq 0x1a8(%rsp), %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x6e28e
movq %r12, %rdi
callq 0xa808
leaq 0x130(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa7d8
movl 0x8(%rsp), %r12d
leaq 0x118(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x11(%r14), %r10d
leal 0x13(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
movq %r15, %rsi
movl %ebp, %ecx
movl 0x10(%rsp), %r8d
movl %r12d, %r9d
movsd (%rsp), %xmm0
movq %rax, 0x10(%rsp)
pushq %rax
movq %r10, 0x30(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x6e28e
movq %r13, %rdi
callq 0xa808
leaq 0x118(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0x100(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x3(%r14), %r13d
leal 0x10(%r14), %r10d
leal 0x12(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0x100(%rsp), %rdx
movq %r15, %rsi
movl %r13d, %ecx
movl 0x20(%rsp), %r8d
movl 0x18(%rsp), %r9d
movsd (%rsp), %xmm0
movq %rax, 0x18(%rsp)
pushq %rax
movq %r10, 0x28(%rsp)
pushq %r10
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %rbp
movq %r12, %rdi
movq %rbp, %rsi
callq 0x6e28e
movq %rbp, %rdi
callq 0xa808
leaq 0x100(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0xe8(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leal 0x14(%r14), %r12d
leal 0x15(%r14), %eax
leaq 0x1a8(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
movq %r15, %rsi
movl %r13d, %ecx
movl 0x3c(%rsp), %r8d
movl 0x38(%rsp), %r9d
movsd (%rsp), %xmm0
movq %rax, 0x8(%rsp)
pushq %rax
pushq %r12
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r13
leaq 0x1a8(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x6e28e
movq %rbp, %rdi
callq 0xa808
leaq 0xe8(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa7d8
leaq 0xd0(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leaq 0x1a8(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
movq %r15, %rsi
movl %r14d, %ecx
movq 0x30(%rsp), %r8
movq 0x28(%rsp), %r9
movsd (%rsp), %xmm0
pushq 0x70(%rsp)
pushq 0x88(%rsp)
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r13
leaq 0x1a8(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x6e28e
movq %rbp, %rdi
callq 0xa808
leaq 0xd0(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r13, %rsi
callq 0xa7d8
leaq 0xb8(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leaq 0x1a8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
movq %r15, %rsi
movl %r14d, %ecx
movq 0x20(%rsp), %r8
movl %r12d, %r9d
movsd (%rsp), %xmm0
pushq 0x60(%rsp)
pushq 0x80(%rsp)
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x6e28e
movq %r13, %rdi
callq 0xa808
leaq 0xb8(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0xa0(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
incl %r14d
leaq 0x1a8(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
movq %r15, %rsi
movl %r14d, %ecx
movq 0x40(%rsp), %r8
movq 0x10(%rsp), %r9
movsd (%rsp), %xmm0
pushq 0x50(%rsp)
pushq 0x70(%rsp)
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r12
leaq 0x1a8(%rsp), %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x6e28e
movq %r13, %rdi
callq 0xa808
leaq 0xa0(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r12, %rsi
callq 0xa7d8
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x6e2f8
leaq 0x1a8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
movq %r15, %rsi
movl %r14d, %ecx
movq 0x18(%rsp), %r8
movq 0x8(%rsp), %r9
movsd (%rsp), %xmm0
pushq 0x48(%rsp)
pushq 0x60(%rsp)
callq 0x6d704
popq %rax
popq %rcx
leaq 0x240(%rsp), %r14
leaq 0x1a8(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x6e28e
movq %r15, %rdi
callq 0xa808
leaq 0x88(%rsp), %rdi
callq 0xb110
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa7d8
leaq 0x240(%rsp), %rdi
callq 0xa808
addq $0x2d8, %rsp            # imm = 0x2D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x160(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
jmp 0x6c320
jmp 0x6c329
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0xb110
jmp 0x6c32c
jmp 0x6c329
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0xa808
movq %rbx, %rdi
callq 0x4780
nop