// File: /workspace/github_cpp_makefile_star2_O3/Luthaf[P]zeopp/cycle.cc
// Function: face_center(ATOM_NETWORK*, std::vector<XYZ, std::allocator<XYZ>>*)
void face_center(ATOM_NETWORK* atmnet, vector<XYZ>* face_centers)
{
    VORONOI_NETWORK vornet;
    vector<VOR_CELL> vcell;
    vector<BASIC_VCELL> bvcell;
    performVoronoiDecomp(true, atmnet, &vornet, &vcell, true, &bvcell);

    vector<VOR_CELL>::iterator vc_it;
    vector<VOR_FACE>::iterator vf_it;

    int vor_face_count = 0;
    int vor_cell_count = 0;

    for (vc_it = vcell.begin(); vc_it != vcell.end(); ++vc_it){
        for (vf_it = vc_it->faces.begin(); vf_it != vc_it->faces.end(); ++vf_it){
            ++vor_face_count;
            vector<int>::iterator iit;
            if (vf_it->nodeIDs.size() > 4) {
                continue;
            }
            vector<Point>::iterator ip_it;
            cout << "Orderd vertices in the face: " << endl;
            for (ip_it = vf_it->orderedVertices.begin(); ip_it != vf_it->orderedVertices.end(); ++ip_it){;
                //cout << "(";
                //ip_it->print(cout);
                //cout << ")  " ;
            }
            //cout <<  endl;
        }
    }
    cout << "VOR_FACE_COUNT " << vor_face_count << endl;
    vcell.clear();
    bvcell.clear();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movq %rdi, %r14
leaq 0x38(%rsp), %r15
movq %r15, %rdi
callq 0x55288
xorl %ebx, %ebx
movq %rsp, %rcx
movq %rbx, 0x10(%rcx)
xorps %xmm0, %xmm0
movaps %xmm0, (%rcx)
leaq 0x20(%rsp), %r9
movq %rbx, 0x10(%r9)
movaps %xmm0, (%r9)
movl $0x1, %edi
movq %r14, %rsi
movq %r15, %rdx
movl $0x1, %r8d
callq 0x7952
movq (%rsp), %r12
movq 0x8(%rsp), %rax
cmpq %rax, %r12
je 0x109233
xorl %ebx, %ebx
movq 0x8be08(%rip), %r14     # 0x194fc0
leaq 0x4e151(%rip), %r15     # 0x157310
movq (%r12), %r13
movq 0x8(%r12), %rcx
cmpq %rcx, %r13
je 0x109227
movq 0x20(%r13), %rax
subq 0x18(%r13), %rax
cmpq $0x10, %rax
ja 0x109217
movl $0x1d, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x44e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
movq 0x8(%r12), %rcx
addq $0x30, %r13
incl %ebx
cmpq %rcx, %r13
jne 0x1091cd
movq 0x8(%rsp), %rax
addq $0xf8, %r12
cmpq %rax, %r12
jne 0x1091bf
movq 0x8bd86(%rip), %rdi     # 0x194fc0
leaq 0x4e0ed(%rip), %rsi     # 0x15732e
movl $0xf, %edx
callq 0x44e0
movq 0x8bd6e(%rip), %rdi     # 0x194fc0
movl %ebx, %esi
callq 0x4750
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
movq %rsp, %rbx
movq (%rbx), %rsi
movq %rbx, %rdi
callq 0xfad6
leaq 0x20(%rsp), %r14
movq (%r14), %rsi
movq %r14, %rdi
callq 0xfaa6
movq %r14, %rdi
callq 0xec64
movq %rbx, %rdi
callq 0xec34
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x1092ce
movq 0xa8(%rsp), %rsi
subq %rdi, %rsi
callq 0x4470
leaq 0x80(%rsp), %rdi
callq 0xf256
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x1092f0
jmp 0x1092f0
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xec64
movq %rsp, %rdi
callq 0xec34
leaq 0x38(%rsp), %rdi
callq 0xeb2a
movq %rbx, %rdi
callq 0x4780
nop