// File: /workspace/github_c_makefile_star2_O0/CerfVert94[P]lenet_cnn/neural_network.c
// Function: calculateLayer3
void calculateLayer3(float* Layer2_Neurons_CPU, WEIGHT_TYPE* Layer2_Weights_CPU, float* Layer3_Neurons_CPU){
	float somme;
	int i,j,k,m,n;
	for( i=0;i<50;i++)
		for(j=0;j<5;j++)
			for(k=0;k<5;k++){
				somme = Layer2_Weights_CPU[26*6*i];

				for( m=0;m<5;m++)
					for( n=0;n<5;n++){
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)	] * Layer2_Neurons_CPU[13*13*0+13*(2*j+m)+(2*k+n)];
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)+1] * Layer2_Neurons_CPU[13*13*1+13*(2*j+m)+(2*k+n)];
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)+2] * Layer2_Neurons_CPU[13*13*2+13*(2*j+m)+(2*k+n)];
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)+3] * Layer2_Neurons_CPU[13*13*3+13*(2*j+m)+(2*k+n)];
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)+4] * Layer2_Neurons_CPU[13*13*4+13*(2*j+m)+(2*k+n)];
						somme += Layer2_Weights_CPU[26*6*i+1+6*(n+5*m)+5] * Layer2_Neurons_CPU[13*13*5+13*(2*j+m)+(2*k+n)];

					}
				Layer3_Neurons_CPU[5*5*i+5*j+k] = SIGMOID(CONV(somme));
				
			}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x20(%rbp)
cmpl $0x32, -0x20(%rbp)
jge 0x1e4d
movl $0x0, -0x24(%rbp)
cmpl $0x5, -0x24(%rbp)
jge 0x1e3d
movl $0x0, -0x28(%rbp)
cmpl $0x5, -0x28(%rbp)
jge 0x1e2d
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x1c(%rbp)
movl $0x0, -0x2c(%rbp)
cmpl $0x5, -0x2c(%rbp)
jge 0x1dd9
movl $0x0, -0x30(%rbp)
cmpl $0x5, -0x30(%rbp)
jge 0x1dc9
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0x0, %ecx
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0xa9, %ecx
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0x152, %ecx            # imm = 0x152
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0x1fb, %ecx            # imm = 0x1FB
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0x2a4, %ecx            # imm = 0x2A4
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0x9c, -0x20(%rbp), %ecx
addl $0x1, %ecx
movl -0x30(%rbp), %edx
imull $0x5, -0x2c(%rbp), %esi
addl %esi, %edx
imull $0x6, %edx, %edx
addl %edx, %ecx
addl $0x5, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq -0x8(%rbp), %rax
movl -0x24(%rbp), %ecx
shll %ecx
addl -0x2c(%rbp), %ecx
imull $0xd, %ecx, %ecx
addl $0x34d, %ecx            # imm = 0x34D
movl -0x28(%rbp), %edx
shll %edx
addl -0x30(%rbp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm2
movss -0x1c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x1b77
jmp 0x1dcb
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x1b66
movss -0x1c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x13de(%rip), %xmm0     # 0x31c8
mulsd %xmm1, %xmm0
callq 0x10e0
movaps %xmm0, %xmm1
movsd 0x13c2(%rip), %xmm0     # 0x31c0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq -0x18(%rbp), %rax
imull $0x19, -0x20(%rbp), %ecx
imull $0x5, -0x24(%rbp), %edx
addl %edx, %ecx
addl -0x28(%rbp), %ecx
movslq %ecx, %rcx
movss %xmm0, (%rax,%rcx,4)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x1b3d
jmp 0x1e2f
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1b2c
jmp 0x1e3f
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1b1b
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)