// File: lotuskip[P]yuxtapa/server/map.cpp
// Function: (anonymous namespace)::avgDiamondVals(int, int, int, int, int, float const*)
float avgDiamondVals(const int i, const int j, const int stride,
	const int size, const int subSize, const float* const fa)
{
    if(!i)
		return (fa[(i*size) + j-stride] + fa[(i*size) + j+stride]
		+ fa[((subSize-stride)*size) + j] + fa[((i+stride)*size) + j])*.25f;
    if(i == size-1)
		return (fa[(i*size) + j-stride] + fa[(i*size) + j+stride]
		+ fa[((i-stride)*size) + j] + fa[((0+stride)*size) + j])*.25f;
    if(!j)
		return (fa[((i-stride)*size) + j] + fa[((i+stride)*size) + j]
		+ fa[(i*size) + j+stride] +	 fa[(i*size) + subSize-stride])*.25f;
    if(j == size-1)
		return (fa[((i-stride)*size) + j] + fa[((i+stride)*size) + j]
		+ fa[(i*size) + j-stride] + fa[(i*size) + 0+stride])*.25f;
    return float(fa[((i-stride)*size) + j] + fa[((i+stride)*size) + j]
		+ fa[(i*size) + j-stride] + fa[(i*size) + j+stride])*.25f;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq %r9, -0x20(%rbp)
cmpl $0x0, -0x8(%rbp)
jne 0x2d208
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
subl -0x10(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x18(%rbp), %ecx
subl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
addl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movss 0x348e2(%rip), %xmm1    # 0x61adc
mulss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
jmp 0x2d408
movl -0x8(%rbp), %eax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x2d28f
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
subl -0x10(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
subl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x10(%rbp), %ecx
addl $0x0, %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movss 0x3485b(%rip), %xmm1    # 0x61adc
mulss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
jmp 0x2d408
cmpl $0x0, -0xc(%rbp)
jne 0x2d30f
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
subl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
addl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0x18(%rbp), %ecx
subl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movss 0x347db(%rip), %xmm1    # 0x61adc
mulss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
jmp 0x2d408
movl -0xc(%rbp), %eax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x2d393
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
subl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
addl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
subl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl $0x0, %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movss 0x34754(%rip), %xmm1    # 0x61adc
mulss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
jmp 0x2d408
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
subl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
addl -0x10(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
subl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq -0x20(%rbp), %rax
movl -0x8(%rbp), %ecx
imull -0x14(%rbp), %ecx
addl -0xc(%rbp), %ecx
addl -0x10(%rbp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movss 0x346dd(%rip), %xmm1    # 0x61adc
mulss %xmm1, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x4(%rbp), %xmm0
popq %rbp
retq
nop