// File: Luthaf[P]zeopp/sphere_approx.cc
// Function: AtomCluster::plusMinus_xz(double, double, int)
void AtomCluster::plusMinus_xz(double x, double z, int i){
	atom_vector.at(i) = translate_sphere(atom_vector.at(i), x, 0, z, 1, 0, 1);
	atom_vector.at(i+1) = translate_sphere(atom_vector.at(i+1), x, 0, z, -1, 0, 1);
	atom_vector.at(i+2) = translate_sphere(atom_vector.at(i+2), x, 0, z, -1, 0, -1);
	atom_vector.at(i+3) = translate_sphere(atom_vector.at(i+3), x, 0, z, 1, 0, -1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x550, %rsp            # imm = 0x550
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movsd %xmm1, -0x18(%rbp)
movl %esi, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x500(%rbp)
addq $0x138, %rdi            # imm = 0x138
movslq -0x1c(%rbp), %rsi
callq 0xf090
movq %rax, %rsi
leaq -0x150(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0xf0d0
movq -0x500(%rbp), %rsi
movq -0x4f8(%rbp), %rdx
movsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm2
leaq -0xb8(%rbp), %rdi
xorps %xmm1, %xmm1
xorl %r8d, %r8d
movl $0x1, %r9d
movl %r9d, %ecx
callq 0xfa5d0
jmp 0xfabf2
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movslq -0x1c(%rbp), %rsi
callq 0xf090
movq %rax, -0x508(%rbp)
jmp 0xfac12
movq -0x508(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
movq %rsi, -0x518(%rbp)
callq 0xfcef0
movq -0x518(%rbp), %rdi
callq 0xf200
leaq -0x150(%rbp), %rdi
callq 0xf200
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
incl %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, %rsi
leaq -0x290(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0xf0d0
movq -0x500(%rbp), %rsi
movq -0x510(%rbp), %rdx
movsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm2
leaq -0x1f8(%rbp), %rdi
xorps %xmm1, %xmm1
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0xfa5d0
jmp 0xfacac
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
incl %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, -0x520(%rbp)
jmp 0xfacd0
movq -0x520(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
movq %rsi, -0x530(%rbp)
callq 0xfcef0
movq -0x530(%rbp), %rdi
callq 0xf200
leaq -0x290(%rbp), %rdi
callq 0xf200
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, %rsi
leaq -0x3c0(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0xf0d0
movq -0x500(%rbp), %rsi
movq -0x528(%rbp), %rdx
movsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm2
leaq -0x328(%rbp), %rdi
xorps %xmm1, %xmm1
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movl %r9d, %ecx
callq 0xfa5d0
jmp 0xfad69
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, -0x538(%rbp)
jmp 0xfad8e
movq -0x538(%rbp), %rdi
leaq -0x328(%rbp), %rsi
movq %rsi, -0x548(%rbp)
callq 0xfcef0
movq -0x548(%rbp), %rdi
callq 0xf200
leaq -0x3c0(%rbp), %rdi
callq 0xf200
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
addl $0x3, %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, %rsi
leaq -0x4f0(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0xf0d0
movq -0x500(%rbp), %rsi
movq -0x540(%rbp), %rdx
movsd -0x10(%rbp), %xmm0
movsd -0x18(%rbp), %xmm2
leaq -0x458(%rbp), %rdi
xorps %xmm1, %xmm1
movl $0x1, %ecx
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
callq 0xfa5d0
jmp 0xfae29
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movl -0x1c(%rbp), %eax
addl $0x3, %eax
movslq %eax, %rsi
callq 0xf090
movq %rax, -0x550(%rbp)
jmp 0xfae4e
movq -0x550(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0xfcef0
leaq -0x458(%rbp), %rdi
callq 0xf200
leaq -0x4f0(%rbp), %rdi
callq 0xf200
addq $0x550, %rsp            # imm = 0x550
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfaeb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xf200
leaq -0x150(%rbp), %rdi
callq 0xf200
jmp 0xfaf83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfaef7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xf200
leaq -0x290(%rbp), %rdi
callq 0xf200
jmp 0xfaf83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfaf37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x328(%rbp), %rdi
callq 0xf200
leaq -0x3c0(%rbp), %rdi
callq 0xf200
jmp 0xfaf83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfaf77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x458(%rbp), %rdi
callq 0xf200
leaq -0x4f0(%rbp), %rdi
callq 0xf200
movq -0x158(%rbp), %rdi
callq 0x58f0
nop