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

// 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), %xmm1
leaq -0xb8(%rbp), %rdi
xorps %xmm2, %xmm2
movl $0x1, %r8d
xorl %r9d, %r9d
movl %r8d, %ecx
callq 0xfa5d0
jmp 0xfa7d2
movq -0x500(%rbp), %rdi
addq $0x138, %rdi            # imm = 0x138
movslq -0x1c(%rbp), %rsi
callq 0xf090
movq %rax, -0x508(%rbp)
jmp 0xfa7f2
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), %xmm1
leaq -0x1f8(%rbp), %rdi
xorps %xmm2, %xmm2
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0xfa5d0
jmp 0xfa88c
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 0xfa8b0
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), %xmm1
leaq -0x328(%rbp), %rdi
xorps %xmm2, %xmm2
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %r9d, %r9d
movl %r8d, %ecx
callq 0xfa5d0
jmp 0xfa949
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 0xfa96e
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), %xmm1
leaq -0x458(%rbp), %rdi
xorps %xmm2, %xmm2
movl $0x1, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %r9d, %r9d
callq 0xfa5d0
jmp 0xfaa09
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 0xfaa2e
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 0xfaa94
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 0xfab63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfaad7
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 0xfab63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfab17
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 0xfab63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0xfab57
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