	.file	"688959.c"
	.intel_syntax noprefix
	.text
	.globl	ninput
	.bss
	.align 4
	.type	ninput, @object
	.size	ninput, 4
ninput:
	.zero	4
	.globl	no_node
	.align 4
	.type	no_node, @object
	.size	no_node, 4
no_node:
	.zero	4
	.globl	noutput
	.align 4
	.type	noutput, @object
	.size	noutput, 4
noutput:
	.zero	4
	.globl	m
	.align 4
	.type	m, @object
	.size	m, 4
m:
	.zero	4
	.globl	train
	.align 8
	.type	train, @object
	.size	train, 8
train:
	.zero	8
	.globl	distance_input
	.align 8
	.type	distance_input, @object
	.size	distance_input, 8
distance_input:
	.zero	8
	.globl	distance_node
	.align 8
	.type	distance_node, @object
	.size	distance_node, 8
distance_node:
	.zero	8
	.globl	weights
	.align 8
	.type	weights, @object
	.size	weights, 8
weights:
	.zero	8
	.globl	learningrate
	.align 8
	.type	learningrate, @object
	.size	learningrate, 8
learningrate:
	.zero	8
	.globl	neighbourhood
	.align 8
	.type	neighbourhood, @object
	.size	neighbourhood, 8
neighbourhood:
	.zero	8
	.local	fileindex
	.comm	fileindex,4,4
	.globl	countarr
	.align 8
	.type	countarr, @object
	.size	countarr, 8
countarr:
	.zero	8
	.globl	filename
	.align 32
	.type	filename, @object
	.size	filename, 100
filename:
	.zero	100
	.globl	mean
	.align 8
	.type	mean, @object
	.size	mean, 8
mean:
	.zero	8
	.globl	std
	.align 8
	.type	std, @object
	.size	std, 8
std:
	.zero	8
	.globl	least
	.align 8
	.type	least, @object
	.size	least, 8
least:
	.zero	8
	.globl	secondleast
	.align 8
	.type	secondleast, @object
	.size	secondleast, 8
secondleast:
	.zero	8
	.globl	winpos
	.align 8
	.type	winpos, @object
	.size	winpos, 8
winpos:
	.zero	8
	.globl	classify
	.align 8
	.type	classify, @object
	.size	classify, 8
classify:
	.zero	8
	.text
	.globl	randomcoeff
	.type	randomcoeff, @function
randomcoeff:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	rand@PLT
	movsx	rcx, eax
	mov	rdx, rcx
	sal	rdx, 30
	add	rdx, rcx
	shr	rdx, 32
	sar	edx, 29
	mov	ecx, eax
	sar	ecx, 31
	sub	edx, ecx
	mov	DWORD PTR -12[rbp], edx
	mov	ecx, DWORD PTR -12[rbp]
	mov	edx, ecx
	sal	edx, 31
	sub	edx, ecx
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -12[rbp]
	movsd	xmm1, QWORD PTR .LC0[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	randomcoeff, .-randomcoeff
	.globl	gaussianFunction
	.type	gaussianFunction, @function
gaussianFunction:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	movsd	QWORD PTR -24[rbp], xmm0
	movsd	QWORD PTR -32[rbp], xmm1
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm0
	movapd	xmm1, xmm0
	mulsd	xmm1, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR -24[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	xmm1, QWORD PTR .LC1[rip]
	xorpd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	gaussianFunction, .-gaussianFunction
	.globl	findMax
	.type	findMax, @function
findMax:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L6
.L11:
	mov	DWORD PTR -16[rbp], 1
	jmp	.L7
.L10:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L8
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
.L8:
	add	DWORD PTR -16[rbp], 1
.L7:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L10
	add	DWORD PTR -12[rbp], 1
.L6:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L11
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	findMax, .-findMax
	.globl	findMin
	.type	findMin, @function
findMin:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L15
.L20:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -16[rbp], 0
	jmp	.L16
.L19:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L17
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
.L17:
	add	DWORD PTR -16[rbp], 1
.L16:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L19
	add	DWORD PTR -12[rbp], 1
.L15:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L20
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	findMin, .-findMin
	.globl	findMean
	.type	findMean, @function
findMean:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR mean[rip], rax
	mov	DWORD PTR -36[rbp], 0
	jmp	.L24
.L29:
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	rcx, QWORD PTR mean[rip]
	mov	edx, DWORD PTR -36[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L25
.L28:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L26
.L27:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR -24[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L26:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L27
	mov	eax, DWORD PTR ninput[rip]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	mov	rdx, QWORD PTR mean[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR -24[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -32[rbp], 1
.L25:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L28
	add	DWORD PTR -36[rbp], 1
.L24:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L29
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	findMean, .-findMean
	.globl	findStd
	.type	findStd, @function
findStd:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR std[rip], rax
	mov	DWORD PTR -36[rbp], 0
	jmp	.L31
.L36:
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	rcx, QWORD PTR std[rip]
	mov	edx, DWORD PTR -36[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L32
.L35:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L33
.L34:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	rdx, QWORD PTR mean[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	rdx, QWORD PTR mean[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	subsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -24[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L33:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L34
	mov	eax, DWORD PTR ninput[rip]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR -24[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	mov	rcx, QWORD PTR std[rip]
	mov	edx, DWORD PTR -36[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	movq	xmm0, rax
	call	sqrt@PLT
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -32[rbp], 1
.L32:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L35
	add	DWORD PTR -36[rbp], 1
.L31:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L36
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	findStd, .-findStd
	.globl	normalise
	.type	normalise, @function
normalise:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	edx, DWORD PTR -48[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	findMax
	mov	QWORD PTR -16[rbp], rax
	mov	edx, DWORD PTR -48[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	findMin
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L38
.L41:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L39
.L40:
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	subsd	xmm1, xmm2
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	divsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -24[rbp], 1
.L39:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L40
	add	DWORD PTR -20[rbp], 1
.L38:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L41
	mov	rax, QWORD PTR -40[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	normalise, .-normalise
	.globl	calcDist
	.type	calcDist, @function
calcDist:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	pxor	xmm0, xmm0
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -12[rbp], 0
	jmp	.L44
.L45:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	movapd	xmm1, xmm0
	subsd	xmm1, xmm2
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	subsd	xmm0, xmm2
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -8[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -12[rbp], 1
.L44:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L45
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	calcDist, .-calcDist
	.section	.rodata
.LC3:
	.string	"r"
	.text
	.globl	countExamples
	.type	countExamples, @function
countExamples:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1840
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rsi, .LC3[rip]
	lea	rdi, filename[rip]
	call	fopen@PLT
	mov	QWORD PTR -10024[rbp], rax
	mov	DWORD PTR -10028[rbp], 0
	jmp	.L48
.L49:
	add	DWORD PTR -10028[rbp], 1
	mov	rdx, QWORD PTR -10024[rbp]
	lea	rax, -10016[rbp]
	mov	esi, 10000
	mov	rdi, rax
	call	fgets@PLT
.L48:
	mov	rax, QWORD PTR -10024[rbp]
	mov	rdi, rax
	call	feof@PLT
	test	eax, eax
	je	.L49
	mov	rax, QWORD PTR -10024[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, DWORD PTR -10028[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L51
	call	__stack_chk_fail@PLT
.L51:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	countExamples, .-countExamples
	.globl	createNeurons
	.type	createNeurons, @function
createNeurons:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR distance_input[rip], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L53
.L54:
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	rcx, QWORD PTR distance_input[rip]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L53:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L54
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR distance_node[rip], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L55
.L56:
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	rcx, QWORD PTR distance_node[rip]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L55:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L56
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	createNeurons, .-createNeurons
	.globl	initweights
	.type	initweights, @function
initweights:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR weights[rip], rax
	mov	DWORD PTR -28[rbp], 0
	jmp	.L58
.L63:
	mov	eax, DWORD PTR no_node[rip]
	cdqe
	mov	rcx, QWORD PTR weights[rip]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -24[rbp], 0
	jmp	.L59
.L62:
	mov	eax, DWORD PTR ninput[rip]
	cdqe
	mov	rcx, QWORD PTR weights[rip]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L60
.L61:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	eax, 0
	call	randomcoeff
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -20[rbp], 1
.L60:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L61
	add	DWORD PTR -24[rbp], 1
.L59:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L62
	add	DWORD PTR -28[rbp], 1
.L58:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L63
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	initweights, .-initweights
	.section	.rodata
.LC4:
	.string	"hello"
.LC5:
	.string	"%lf"
.LC6:
	.string	"%c"
.LC7:
	.string	"helloHI"
	.text
	.globl	read
	.type	read, @function
read:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 152
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -148[rbp], 12700
	mov	eax, DWORD PTR -148[rbp]
	sub	eax, 1
	mov	DWORD PTR m[rip], eax
	lea	rsi, .LC3[rip]
	lea	rdi, filename[rip]
	call	fopen@PLT
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR m[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR train[rip], rax
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -156[rbp], 0
	jmp	.L65
.L68:
	mov	eax, DWORD PTR ninput[rip]
	cdqe
	mov	rcx, QWORD PTR train[rip]
	mov	edx, DWORD PTR -156[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	mov	DWORD PTR -152[rbp], 0
	jmp	.L66
.L67:
	lea	rdx, -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_fscanf@PLT
	lea	rdx, -157[rbp]
	mov	rax, QWORD PTR -136[rbp]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	mov	eax, 0
	call	__isoc99_fscanf@PLT
	mov	rdx, QWORD PTR train[rip]
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR -144[rbp]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -152[rbp], 1
.L66:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -152[rbp], eax
	jl	.L67
	add	DWORD PTR -156[rbp], 1
.L65:
	mov	eax, DWORD PTR m[rip]
	cmp	DWORD PTR -156[rbp], eax
	jl	.L68
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L69
	call	__stack_chk_fail@PLT
.L69:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	read, .-read
	.globl	findDist
	.type	findDist, @function
findDist:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -32[rbp], rdi
	mov	DWORD PTR -16[rbp], 0
	jmp	.L71
.L74:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L72
.L73:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR distance_input[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rcx+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	calcDist
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -12[rbp], 1
.L72:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L73
	add	DWORD PTR -16[rbp], 1
.L71:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L74
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	findDist, .-findDist
	.globl	winningNode
	.type	winningNode, @function
winningNode:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR distance_input[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -16[rbp], 0
	jmp	.L76
.L81:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L77
.L80:
	mov	rdx, QWORD PTR distance_input[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR -8[rbp]
	comisd	xmm0, xmm1
	jbe	.L78
	mov	rdx, QWORD PTR distance_input[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
.L78:
	add	DWORD PTR -12[rbp], 1
.L77:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L80
	add	DWORD PTR -16[rbp], 1
.L76:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L81
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	winningNode, .-winningNode
	.globl	change
	.type	change, @function
change:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -44[rbp], edx
	mov	DWORD PTR -48[rbp], ecx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L84
.L85:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR learningrate[rip]
	movapd	xmm2, xmm0
	mulsd	xmm2, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm3, QWORD PTR [rax]
	subsd	xmm0, xmm3
	mulsd	xmm0, xmm2
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -4[rbp], 1
.L84:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L85
	mov	rax, QWORD PTR -24[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	change, .-change
	.globl	changeWeights
	.type	changeWeights, @function
changeWeights:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	lea	rdx, -52[rbp]
	lea	rax, -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	winningNode
	mov	DWORD PTR -48[rbp], 0
	jmp	.L88
.L93:
	mov	DWORD PTR -44[rbp], 0
	jmp	.L89
.L92:
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -48[rbp]
	mov	ecx, edx
	imul	ecx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	imul	eax, edx
	add	ecx, eax
	mov	rdx, QWORD PTR distance_node[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, ecx
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR neighbourhood[rip]
	movsd	QWORD PTR -40[rbp], xmm0
	mov	rdx, QWORD PTR distance_node[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR -40[rbp]
	mulsd	xmm0, xmm0
	comisd	xmm0, xmm1
	jbe	.L90
	mov	rdx, QWORD PTR distance_node[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR -40[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	gaussianFunction
	movq	rax, xmm0
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR weights[rip]
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rcx+rdx]
	mov	ecx, DWORD PTR -44[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	rdi, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	movq	xmm0, rdi
	mov	rdi, rax
	call	change
	mov	QWORD PTR [rbx], rax
.L90:
	add	DWORD PTR -44[rbp], 1
.L89:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -44[rbp], eax
	jl	.L92
	add	DWORD PTR -48[rbp], 1
.L88:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -48[rbp], eax
	jl	.L93
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L94
	call	__stack_chk_fail@PLT
.L94:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	changeWeights, .-changeWeights
	.globl	changeparam
	.type	changeparam, @function
changeparam:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1759218605
	shr	rdx, 32
	sar	edx, 12
	sar	eax, 31
	sub	eax, edx
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movq	rax, xmm2
	movq	xmm0, rax
	call	exp@PLT
	movsd	xmm1, QWORD PTR .LC8[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR learningrate[rip], xmm0
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1759218605
	shr	rdx, 32
	sar	edx, 12
	sar	eax, 31
	sub	eax, edx
	pxor	xmm3, xmm3
	cvtsi2sd	xmm3, eax
	movq	rax, xmm3
	movq	xmm0, rax
	call	exp@PLT
	movsd	xmm1, QWORD PTR .LC9[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR neighbourhood[rip], xmm0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	changeparam, .-changeparam
	.section	.rodata
.LC10:
	.string	"MAX ITERS %d"
	.text
	.globl	trainingphase
	.type	trainingphase, @function
trainingphase:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], 12700
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	mov	DWORD PTR m[rip], eax
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L98
.L100:
	mov	eax, DWORD PTR m[rip]
	cmp	DWORD PTR -8[rbp], eax
	jne	.L99
	mov	DWORD PTR -8[rbp], 0
	add	DWORD PTR -12[rbp], 1
.L99:
	mov	rdx, QWORD PTR train[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	findDist
	mov	rdx, QWORD PTR train[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	changeWeights
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	changeparam
	add	DWORD PTR -8[rbp], 1
.L98:
	cmp	DWORD PTR -12[rbp], 9999
	jle	.L100
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	trainingphase, .-trainingphase
	.section	.rodata
.LC11:
	.string	"%f "
	.text
	.globl	printweights
	.type	printweights, @function
printweights:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -12[rbp], 0
	jmp	.L102
.L107:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L103
.L106:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L104
.L105:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movq	xmm0, rax
	lea	rdi, .LC11[rip]
	mov	eax, 1
	call	printf@PLT
	add	DWORD PTR -4[rbp], 1
.L104:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L105
	mov	edi, 10
	call	putchar@PLT
	add	DWORD PTR -8[rbp], 1
.L103:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L106
	mov	edi, 10
	call	putchar@PLT
	add	DWORD PTR -12[rbp], 1
.L102:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L107
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	printweights, .-printweights
	.globl	findLeast
	.type	findLeast, @function
findLeast:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L129
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR [rax]
	jmp	.L111
.L129:
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 8[rax]
.L111:
	movsd	QWORD PTR least[rip], xmm0
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	comisd	xmm0, xmm1
	jbe	.L130
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR [rax]
	jmp	.L114
.L130:
	mov	rax, QWORD PTR std[rip]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 8[rax]
.L114:
	movsd	QWORD PTR secondleast[rip], xmm0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L115
.L123:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L116
.L122:
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR least[rip]
	comisd	xmm0, xmm1
	jbe	.L131
	movsd	xmm0, QWORD PTR least[rip]
	movsd	QWORD PTR secondleast[rip], xmm0
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR least[rip], xmm0
	jmp	.L119
.L131:
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR secondleast[rip]
	comisd	xmm0, xmm1
	jbe	.L119
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR least[rip]
	comisd	xmm0, xmm1
	jbe	.L119
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR secondleast[rip], xmm0
.L119:
	add	DWORD PTR -4[rbp], 1
.L116:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L122
	add	DWORD PTR -8[rbp], 1
.L115:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L123
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	findLeast, .-findLeast
	.section	.rodata
.LC12:
	.string	"%d %d "
.LC13:
	.string	"a+"
	.align 8
.LC14:
	.string	"StoreBollywood12700AtoO50X5010000iters.txt"
.LC15:
	.string	"Next Classification"
.LC16:
	.string	"%d %d"
	.text
	.globl	findClass
	.type	findClass, @function
findClass:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	eax, DWORD PTR m[rip]
	cdqe
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR winpos[rip], rax
	mov	eax, DWORD PTR m[rip]
	cdqe
	mov	esi, 4
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR classify[rip], rax
	mov	DWORD PTR -40[rbp], 0
	jmp	.L133
.L134:
	mov	rdx, QWORD PTR winpos[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	esi, 4
	mov	edi, 2
	call	calloc@PLT
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -40[rbp], 1
.L133:
	mov	eax, DWORD PTR m[rip]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L134
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	jmp	.L135
.L141:
	mov	rdx, QWORD PTR train[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	findDist
	lea	rdx, -44[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	winningNode
	mov	rdx, QWORD PTR winpos[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR winpos[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rdx, QWORD PTR winpos[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rcx, QWORD PTR winpos[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 10
	call	putchar@PLT
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR least[rip]
	ucomisd	xmm0, xmm1
	jp	.L145
	ucomisd	xmm0, xmm1
	je	.L136
.L145:
	mov	rdx, QWORD PTR std[rip]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR secondleast[rip]
	ucomisd	xmm0, xmm1
	jp	.L138
	ucomisd	xmm0, xmm1
	jne	.L138
.L136:
	mov	rdx, QWORD PTR classify[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 1
	jmp	.L140
.L138:
	mov	rdx, QWORD PTR classify[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], 0
.L140:
	add	DWORD PTR -40[rbp], 1
.L135:
	mov	eax, DWORD PTR m[rip]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L141
	lea	rsi, .LC13[rip]
	lea	rdi, .LC14[rip]
	call	fopen@PLT
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, rax
	mov	edx, 19
	mov	esi, 1
	lea	rdi, .LC15[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	DWORD PTR -40[rbp], 0
	jmp	.L142
.L143:
	mov	eax, DWORD PTR -40[rbp]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR classify[rip]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	add	DWORD PTR -40[rbp], 1
.L142:
	mov	eax, DWORD PTR m[rip]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L143
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L144
	call	__stack_chk_fail@PLT
.L144:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	findClass, .-findClass
	.section	.rodata
	.align 8
.LC17:
	.string	"SOM_MusicAtoO50X5010000iters.txt"
.LC18:
	.string	"%d"
.LC19:
	.string	"No of hidden nodes"
.LC20:
	.string	"Weights"
.LC21:
	.string	"\t"
.LC22:
	.string	"%lf %s"
	.text
	.globl	writeToFile
	.type	writeToFile, @function
writeToFile:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	lea	rsi, .LC13[rip]
	lea	rdi, .LC17[rip]
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	edx, DWORD PTR fileindex[rip]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 18
	mov	esi, 1
	lea	rdi, .LC19[rip]
	call	fwrite@PLT
	mov	edx, DWORD PTR no_node[rip]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 7
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
	mov	DWORD PTR -20[rbp], 0
	jmp	.L147
.L152:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L148
.L151:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L149
.L150:
	mov	rdx, QWORD PTR weights[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, .LC21[rip]
	movq	xmm0, rcx
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	DWORD PTR -12[rbp], 1
.L149:
	mov	eax, DWORD PTR ninput[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L150
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 9
	call	fputc@PLT
	add	DWORD PTR -16[rbp], 1
.L148:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L151
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	add	DWORD PTR -20[rbp], 1
.L147:
	mov	eax, DWORD PTR no_node[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L152
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 7
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, DWORD PTR fileindex[rip]
	add	eax, 1
	mov	DWORD PTR fileindex[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	writeToFile, .-writeToFile
	.section	.rodata
.LC23:
	.string	"Enter filename "
.LC24:
	.string	"%s"
.LC25:
	.string	"Enter no of input "
.LC26:
	.string	"Enter no of nodes "
	.align 8
.LC27:
	.string	"Enter no of output nodes in file"
.LC28:
	.string	"SUP"
.LC29:
	.string	"ESSENTIAL"
	.text
	.globl	main
	.type	main, @function
main:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 0
	mov	eax, 0
	call	time@PLT
	mov	edi, eax
	call	srand@PLT
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, filename[rip]
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, ninput[rip]
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, no_node[rip]
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rsi, noutput[rip]
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, 0
	call	read
	mov	edx, DWORD PTR ninput[rip]
	mov	ecx, DWORD PTR m[rip]
	mov	rax, QWORD PTR train[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	normalise
	mov	eax, 0
	call	createNeurons
	mov	eax, 0
	call	initweights
	mov	eax, 0
	call	printweights
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	trainingphase
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	printweights
	mov	eax, 0
	call	writeToFile
	mov	eax, 0
	call	findMean
	mov	eax, 0
	call	findStd
	mov	eax, 0
	call	findLeast
	mov	eax, 0
	call	findClass
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC0:
	.long	-4194304
	.long	1105199103
	.align 16
.LC1:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.align 8
.LC8:
	.long	858993459
	.long	1070805811
	.align 8
.LC9:
	.long	0
	.long	1077149696
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"688959.c"
	.text
	.comm	ninput,4,4
	.comm	no_node,4,4
	.comm	noutput,4,4
	.comm	m,4,4
	.comm	train,4,4
	.comm	distance_input,4,4
	.comm	distance_node,4,4
	.comm	weights,4,4
	.comm	learningrate,8,8
	.comm	neighbourhood,8,8
	.local	fileindex
	.comm	fileindex,4,4
	.comm	countarr,4,4
	.comm	filename,100,4
	.comm	mean,4,4
	.comm	std,4,4
	.comm	least,8,8
	.comm	secondleast,8,8
	.comm	winpos,4,4
	.comm	classify,4,4
	.global	__aeabi_i2d
	.global	__aeabi_ddiv
	.align	2
	.global	randomcoeff
	.syntax unified
	.arm
	.fpu softvfp
	.type	randomcoeff, %function
randomcoeff:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	bl	rand
	mov	r2, r0
	mov	r3, #1073741825
	smull	r1, r3, r2, r3
	asr	r1, r3, #29
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #31
	sub	r3, r3, r1
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2d
	ldr	r2, .L3
	ldr	r3, .L3+4
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4:
	.align	2
.L3:
	.word	-4194304
	.word	1105199103
	.size	randomcoeff, .-randomcoeff
	.global	__aeabi_dadd
	.global	__aeabi_dmul
	.align	2
	.global	gaussianFunction
	.syntax unified
	.arm
	.fpu softvfp
	.type	gaussianFunction, %function
gaussianFunction:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r4, [fp, #-20]
	ldr	r3, [fp, #-16]
	eor	r5, r3, #-2147483648
	mov	r0, r4
	mov	r1, r5
	bl	exp
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	gaussianFunction, .-gaussianFunction
	.global	__aeabi_dcmpgt
	.align	2
	.global	findMax
	.syntax unified
	.arm
	.fpu softvfp
	.type	findMax, %function
findMax:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-32]
	mov	r1, #8
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L8
.L13:
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L9
.L12:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L10
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-8]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L10:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L9:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L12
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L8:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L13
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	findMax, .-findMax
	.global	__aeabi_dcmplt
	.align	2
	.global	findMin
	.syntax unified
	.arm
	.fpu softvfp
	.type	findMin, %function
findMin:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-32]
	mov	r1, #8
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L17
.L22:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-8]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L18
.L21:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-8]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L19:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L18:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L21
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L17:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L22
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	findMin, .-findMin
	.align	2
	.global	findMean
	.syntax unified
	.arm
	.fpu softvfp
	.type	findMean, %function
findMean:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, .L32
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L32+4
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L26
.L31:
	ldr	r3, .L32
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L32+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L27
.L30:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L28
.L29:
	ldr	r3, .L32+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L28:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L29
	ldr	r3, .L32+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L32+4
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	lsl	r1, r1, #2
	add	r1, r0, r1
	ldr	r0, [r1]
	ldr	r1, [fp, #-28]
	lsl	r1, r1, #3
	add	r4, r0, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L27:
	ldr	r3, .L32
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L30
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L26:
	ldr	r3, .L32
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L31
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L33:
	.align	2
.L32:
	.word	no_node
	.word	mean
	.word	weights
	.word	ninput
	.size	findMean, .-findMean
	.global	__aeabi_dsub
	.align	2
	.global	findStd
	.syntax unified
	.arm
	.fpu softvfp
	.type	findStd, %function
findStd:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, .L41
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L41+4
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L35
.L40:
	ldr	r3, .L41
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L41+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L36
.L39:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L37
.L38:
	ldr	r3, .L41+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L41+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, .L41+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L41+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L37:
	ldr	r3, .L41+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L38
	ldr	r3, .L41+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L41+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r4, r2, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L36:
	ldr	r3, .L41
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L39
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L35:
	ldr	r3, .L41
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L40
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L42:
	.align	2
.L41:
	.word	no_node
	.word	std
	.word	weights
	.word	mean
	.word	ninput
	.size	findStd, .-findStd
	.align	2
	.global	normalise
	.syntax unified
	.arm
	.fpu softvfp
	.type	normalise, %function
normalise:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	findMax
	str	r0, [fp, #-28]
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	findMin
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L44
.L47:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L45
.L46:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	ip, [fp, #-36]
	lsl	ip, ip, #2
	ldr	lr, [fp, #-40]
	add	ip, lr, ip
	ldr	lr, [ip]
	ldr	ip, [fp, #-32]
	lsl	ip, ip, #3
	add	r4, lr, ip
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L45:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L46
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L44:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	blt	.L47
	ldr	r3, [fp, #-40]
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	normalise, .-normalise
	.align	2
	.global	calcDist
	.syntax unified
	.arm
	.fpu softvfp
	.type	calcDist, %function
calcDist:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L50
.L51:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L50:
	ldr	r3, .L53
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L51
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L54:
	.align	2
.L53:
	.word	ninput
	.size	calcDist, .-calcDist
	.section	.rodata
	.align	2
.LC0:
	.ascii	"r\000"
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	countExamples
	.syntax unified
	.arm
	.fpu softvfp
	.type	countExamples, %function
countExamples:
	@ args = 0, pretend = 0, frame = 10016
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #9984
	sub	sp, sp, #36
	ldr	r3, .L60
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r1, .L60+4
	ldr	r0, .L60+8
	bl	fopen
	str	r0, [r4, #-1816]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1820]
	b	.L56
.L57:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	add	r3, r3, #1
	str	r3, [r2, #-1820]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #9984
	sub	r3, r3, #12
	sub	r3, r3, #20
	ldr	r2, [r2, #-1816]
	ldr	r1, .L60+12
	mov	r0, r3
	bl	fgets
.L56:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-1816]
	bl	feof
	mov	r3, r0
	cmp	r3, #0
	beq	.L57
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-1816]
	bl	fclose
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	ldr	r2, .L60
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L59
	bl	__stack_chk_fail
.L59:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L61:
	.align	2
.L60:
	.word	.LC1
	.word	.LC0
	.word	filename
	.word	10000
	.size	countExamples, .-countExamples
	.align	2
	.global	createNeurons
	.syntax unified
	.arm
	.fpu softvfp
	.type	createNeurons, %function
createNeurons:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	ldr	r3, .L67
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L67+4
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L63
.L64:
	ldr	r3, .L67
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L67+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L63:
	ldr	r3, .L67
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L64
	ldr	r3, .L67
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L67+8
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L65
.L66:
	ldr	r3, .L67
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L67+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L65:
	ldr	r3, .L67
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L66
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L68:
	.align	2
.L67:
	.word	no_node
	.word	distance_input
	.word	distance_node
	.size	createNeurons, .-createNeurons
	.align	2
	.global	initweights
	.syntax unified
	.arm
	.fpu softvfp
	.type	initweights, %function
initweights:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	ldr	r3, .L76
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L76+4
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L70
.L75:
	ldr	r3, .L76
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L76+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #4
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L71
.L74:
	ldr	r3, .L76+8
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L76+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L72
.L73:
	ldr	r3, .L76+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	add	r4, r2, r3
	bl	randomcoeff
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L72:
	ldr	r3, .L76+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L73
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L71:
	ldr	r3, .L76
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L74
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L70:
	ldr	r3, .L76
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L75
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L77:
	.align	2
.L76:
	.word	no_node
	.word	weights
	.word	ninput
	.size	initweights, .-initweights
	.section	.rodata
	.align	2
.LC2:
	.ascii	"hello\000"
	.align	2
.LC3:
	.ascii	"%lf\000"
	.align	2
.LC4:
	.ascii	"%c\000"
	.align	2
.LC5:
	.ascii	"helloHI\000"
	.align	2
.LC6:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read
	.syntax unified
	.arm
	.fpu softvfp
	.type	read, %function
read:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #140
	ldr	r3, .L84
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L84+4
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	sub	r3, r3, #1
	ldr	r2, .L84+8
	str	r3, [r2]
	ldr	r1, .L84+12
	ldr	r0, .L84+16
	bl	fopen
	str	r0, [fp, #-128]
	ldr	r3, .L84+8
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L84+20
	str	r2, [r3]
	ldr	r0, .L84+24
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-140]
	b	.L79
.L82:
	ldr	r3, .L84+28
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L84+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #8
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-136]
	b	.L80
.L81:
	sub	r3, fp, #124
	mov	r2, r3
	ldr	r1, .L84+32
	ldr	r0, [fp, #-128]
	bl	__isoc99_fscanf
	sub	r3, fp, #141
	mov	r2, r3
	ldr	r1, .L84+36
	ldr	r0, [fp, #-128]
	bl	__isoc99_fscanf
	ldr	r3, .L84+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #3
	add	r1, r2, r3
	sub	r3, fp, #124
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-136]
	add	r3, r3, #1
	str	r3, [fp, #-136]
.L80:
	ldr	r3, .L84+28
	ldr	r3, [r3]
	ldr	r2, [fp, #-136]
	cmp	r2, r3
	blt	.L81
	ldr	r3, [fp, #-140]
	add	r3, r3, #1
	str	r3, [fp, #-140]
.L79:
	ldr	r3, .L84+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	blt	.L82
	ldr	r0, .L84+40
	bl	printf
	ldr	r0, [fp, #-128]
	bl	fclose
	nop
	ldr	r3, .L84
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L83
	bl	__stack_chk_fail
.L83:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L85:
	.align	2
.L84:
	.word	.LC6
	.word	12700
	.word	m
	.word	.LC0
	.word	filename
	.word	train
	.word	.LC2
	.word	ninput
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.size	read, .-read
	.align	2
	.global	findDist
	.syntax unified
	.arm
	.fpu softvfp
	.type	findDist, %function
findDist:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L87
.L90:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L88
.L89:
	ldr	r3, .L91
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, .L91+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	calcDist
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L88:
	ldr	r3, .L91+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L89
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L87:
	ldr	r3, .L91+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L90
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L92:
	.align	2
.L91:
	.word	weights
	.word	distance_input
	.word	no_node
	.size	findDist, .-findDist
	.align	2
	.global	winningNode
	.syntax unified
	.arm
	.fpu softvfp
	.type	winningNode, %function
winningNode:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L101
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L94
.L99:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L95
.L98:
	ldr	r3, .L101
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L96
	ldr	r3, .L101
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
.L96:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L95:
	ldr	r3, .L101+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L98
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L94:
	ldr	r3, .L101+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L99
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	distance_input
	.word	no_node
	.size	winningNode, .-winningNode
	.align	2
	.global	change
	.syntax unified
	.arm
	.fpu softvfp
	.type	change, %function
change:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #24
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L104
.L105:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r3, .L107
	ldmia	r3, {r0-r1}
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L107+4
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L104:
	ldr	r3, .L107+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L105
	ldr	r3, [fp, #-32]
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L108:
	.align	2
.L107:
	.word	learningrate
	.word	weights
	.word	ninput
	.size	change, .-change
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	changeWeights
	.syntax unified
	.arm
	.fpu softvfp
	.type	changeWeights, %function
changeWeights:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, .L118
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-48]
	sub	r2, fp, #48
	sub	r3, fp, #52
	mov	r1, r2
	mov	r0, r3
	bl	winningNode
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L110
.L115:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L111
.L114:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	ldr	r1, [fp, #-52]
	ldr	r2, [fp, #-44]
	sub	r2, r1, r2
	mul	r2, r3, r2
	ldr	r1, [fp, #-48]
	ldr	r3, [fp, #-40]
	sub	r3, r1, r3
	ldr	r0, [fp, #-48]
	ldr	r1, [fp, #-40]
	sub	r1, r0, r1
	mul	r3, r1, r3
	add	r1, r2, r3
	ldr	r3, .L118+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #3
	add	r4, r2, r3
	mov	r0, r1
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, .L118+8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, .L118+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L112
	ldr	r3, .L118+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	gaussianFunction
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	ldr	r3, .L118+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, .L118+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r3, [fp, #-40]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-44]
	str	r3, [sp]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-56]
	bl	change
	mov	r3, r0
	str	r3, [r4]
.L112:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L111:
	ldr	r3, .L118+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L114
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L110:
	ldr	r3, .L118+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L115
	nop
	ldr	r3, .L118
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L116
	bl	__stack_chk_fail
.L116:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L119:
	.align	2
.L118:
	.word	.LC7
	.word	distance_node
	.word	neighbourhood
	.word	weights
	.word	no_node
	.size	changeWeights, .-changeWeights
	.align	2
	.global	changeparam
	.syntax unified
	.arm
	.fpu softvfp
	.type	changeparam, %function
changeparam:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L121
	smull	r1, r2, r3, r2
	asr	r2, r2, #12
	asr	r3, r3, #31
	sub	r3, r3, r2
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	ldr	r2, .L121+4
	ldr	r3, .L121+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L121+12
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-8]
	ldr	r2, .L121
	smull	r1, r2, r3, r2
	asr	r2, r2, #12
	asr	r3, r3, #31
	sub	r3, r3, r2
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, #0
	ldr	r3, .L121+16
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L121+20
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L122:
	.align	2
.L121:
	.word	1759218605
	.word	858993459
	.word	1070805811
	.word	learningrate
	.word	1077149696
	.word	neighbourhood
	.size	changeparam, .-changeparam
	.section	.rodata
	.align	2
.LC8:
	.ascii	"MAX ITERS %d\000"
	.text
	.align	2
	.global	trainingphase
	.syntax unified
	.arm
	.fpu softvfp
	.type	trainingphase, %function
trainingphase:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L127
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	ldr	r2, .L127+4
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L124
.L126:
	ldr	r3, .L127+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L125
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L125:
	ldr	r3, .L127+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	findDist
	ldr	r3, .L127+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	changeWeights
	ldr	r0, [fp, #-16]
	bl	changeparam
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L124:
	ldr	r3, [fp, #-16]
	ldr	r2, .L127+12
	cmp	r3, r2
	ble	.L126
	ldr	r1, [fp, #-16]
	ldr	r0, .L127+16
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L128:
	.align	2
.L127:
	.word	12700
	.word	m
	.word	train
	.word	9999
	.word	.LC8
	.size	trainingphase, .-trainingphase
	.section	.rodata
	.align	2
.LC9:
	.ascii	"%f \000"
	.text
	.align	2
	.global	printweights
	.syntax unified
	.arm
	.fpu softvfp
	.type	printweights, %function
printweights:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L130
.L135:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L131
.L134:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L132
.L133:
	ldr	r3, .L136
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r0, .L136+4
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L132:
	ldr	r3, .L136+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L133
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L131:
	ldr	r3, .L136+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L134
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L130:
	ldr	r3, .L136+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L135
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L137:
	.align	2
.L136:
	.word	weights
	.word	.LC9
	.word	ninput
	.word	no_node
	.size	printweights, .-printweights
	.align	2
	.global	findLeast
	.syntax unified
	.arm
	.fpu softvfp
	.type	findLeast, %function
findLeast:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldmia	r3, {r0-r1}
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L159
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldmia	r3, {r2-r3}
	b	.L141
.L159:
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
.L141:
	ldr	r1, .L162+4
	stm	r1, {r2-r3}
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldmia	r3, {r0-r1}
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L160
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldmia	r3, {r2-r3}
	b	.L144
.L160:
	ldr	r3, .L162
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
.L144:
	ldr	r1, .L162+8
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L145
.L153:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L146
.L152:
	ldr	r3, .L162
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L162+4
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L161
	ldr	r3, .L162+4
	ldmia	r3, {r2-r3}
	ldr	r1, .L162+8
	stm	r1, {r2-r3}
	ldr	r3, .L162
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, .L162+4
	stm	r1, {r2-r3}
	b	.L149
.L161:
	ldr	r3, .L162
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L162+8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L149
	ldr	r3, .L162
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L162+4
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L149
	ldr	r3, .L162
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, .L162+8
	stm	r1, {r2-r3}
.L149:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L146:
	ldr	r3, .L162+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L152
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L145:
	ldr	r3, .L162+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L153
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L163:
	.align	2
.L162:
	.word	std
	.word	least
	.word	secondleast
	.word	no_node
	.size	findLeast, .-findLeast
	.section	.rodata
	.align	2
.LC10:
	.ascii	"%d %d \000"
	.global	__aeabi_dcmpeq
	.align	2
.LC11:
	.ascii	"a+\000"
	.align	2
.LC12:
	.ascii	"StoreBollywood12700AtoO50X5010000iters.txt\000"
	.align	2
.LC13:
	.ascii	"Next Classification\000"
	.align	2
.LC14:
	.ascii	"%d %d\000"
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	findClass
	.syntax unified
	.arm
	.fpu softvfp
	.type	findClass, %function
findClass:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	ldr	r3, .L177
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L177+4
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L177+8
	str	r2, [r3]
	ldr	r3, .L177+4
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L177+12
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L165
.L166:
	ldr	r3, .L177+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, #4
	mov	r0, #2
	bl	calloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L165:
	ldr	r3, .L177+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L166
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L167
.L172:
	ldr	r3, .L177+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	findDist
	sub	r2, fp, #32
	sub	r3, fp, #36
	mov	r1, r2
	mov	r0, r3
	bl	winningNode
	ldr	r3, .L177+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, .L177+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #4
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, .L177+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L177+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, .L177+20
	bl	printf
	mov	r0, #10
	bl	putchar
	ldr	r3, .L177+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L177+28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L168
	ldr	r3, .L177+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, .L177+32
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L176
.L168:
	ldr	r3, .L177+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3]
	b	.L171
.L176:
	ldr	r3, .L177+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
.L171:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L167:
	ldr	r3, .L177+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L172
	ldr	r1, .L177+36
	ldr	r0, .L177+40
	bl	fopen
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r2, #19
	mov	r1, #1
	ldr	r0, .L177+44
	bl	fwrite
	ldr	r1, [fp, #-20]
	mov	r0, #10
	bl	fputc
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L173
.L174:
	ldr	r3, .L177+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r1, .L177+48
	ldr	r0, [fp, #-20]
	bl	fprintf
	ldr	r1, [fp, #-20]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L173:
	ldr	r3, .L177+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L174
	ldr	r0, [fp, #-20]
	bl	fclose
	nop
	ldr	r3, .L177
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L175
	bl	__stack_chk_fail
.L175:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L178:
	.align	2
.L177:
	.word	.LC15
	.word	m
	.word	winpos
	.word	classify
	.word	train
	.word	.LC10
	.word	std
	.word	least
	.word	secondleast
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.size	findClass, .-findClass
	.section	.rodata
	.align	2
.LC16:
	.ascii	"SOM_MusicAtoO50X5010000iters.txt\000"
	.align	2
.LC17:
	.ascii	"%d\000"
	.align	2
.LC18:
	.ascii	"No of hidden nodes\000"
	.align	2
.LC19:
	.ascii	"Weights\000"
	.align	2
.LC20:
	.ascii	"%lf %s\000"
	.align	2
.LC21:
	.ascii	"\011\000"
	.text
	.align	2
	.global	writeToFile
	.syntax unified
	.arm
	.fpu softvfp
	.type	writeToFile, %function
writeToFile:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r1, .L186
	ldr	r0, .L186+4
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, .L186+8
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L186+12
	ldr	r0, [fp, #-8]
	bl	fprintf
	ldr	r1, [fp, #-8]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-8]
	mov	r2, #18
	mov	r1, #1
	ldr	r0, .L186+16
	bl	fwrite
	ldr	r3, .L186+20
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L186+12
	ldr	r0, [fp, #-8]
	bl	fprintf
	ldr	r1, [fp, #-8]
	mov	r0, #10
	bl	fputc
	ldr	r1, [fp, #-8]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-8]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, .L186+24
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L180
.L185:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L181
.L184:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L182
.L183:
	ldr	r3, .L186+28
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, .L186+32
	str	r1, [sp]
	ldr	r1, .L186+36
	ldr	r0, [fp, #-8]
	bl	fprintf
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L182:
	ldr	r3, .L186+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L183
	ldr	r1, [fp, #-8]
	mov	r0, #9
	bl	fputc
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L181:
	ldr	r3, .L186+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L184
	ldr	r1, [fp, #-8]
	mov	r0, #10
	bl	fputc
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L180:
	ldr	r3, .L186+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L185
	ldr	r3, [fp, #-8]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, .L186+24
	bl	fwrite
	ldr	r1, [fp, #-8]
	mov	r0, #10
	bl	fputc
	ldr	r0, [fp, #-8]
	bl	fclose
	ldr	r3, .L186+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L186+8
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L187:
	.align	2
.L186:
	.word	.LC11
	.word	.LC16
	.word	fileindex
	.word	.LC17
	.word	.LC18
	.word	no_node
	.word	.LC19
	.word	weights
	.word	.LC21
	.word	.LC20
	.word	ninput
	.size	writeToFile, .-writeToFile
	.section	.rodata
	.align	2
.LC22:
	.ascii	"Enter filename \000"
	.align	2
.LC23:
	.ascii	"%s\000"
	.align	2
.LC24:
	.ascii	"Enter no of input \000"
	.align	2
.LC25:
	.ascii	"Enter no of nodes \000"
	.align	2
.LC26:
	.ascii	"Enter no of output nodes in file\000"
	.align	2
.LC27:
	.ascii	"SUP\000"
	.align	2
.LC28:
	.ascii	"ESSENTIAL\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #0
	bl	time
	mov	r3, r0
	mov	r0, r3
	bl	srand
	ldr	r0, .L190
	bl	printf
	ldr	r1, .L190+4
	ldr	r0, .L190+8
	bl	__isoc99_scanf
	ldr	r0, .L190+12
	bl	printf
	ldr	r1, .L190+16
	ldr	r0, .L190+20
	bl	__isoc99_scanf
	ldr	r0, .L190+24
	bl	printf
	ldr	r1, .L190+28
	ldr	r0, .L190+20
	bl	__isoc99_scanf
	ldr	r0, .L190+32
	bl	printf
	ldr	r1, .L190+36
	ldr	r0, .L190+20
	bl	__isoc99_scanf
	bl	read
	ldr	r3, .L190+40
	ldr	r3, [r3]
	ldr	r2, .L190+44
	ldr	r1, [r2]
	ldr	r2, .L190+16
	ldr	r2, [r2]
	mov	r0, r3
	bl	normalise
	bl	createNeurons
	bl	initweights
	bl	printweights
	ldr	r0, .L190+48
	bl	printf
	bl	trainingphase
	ldr	r0, .L190+52
	bl	printf
	bl	printweights
	bl	writeToFile
	bl	findMean
	bl	findStd
	bl	findLeast
	bl	findClass
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
.L191:
	.align	2
.L190:
	.word	.LC22
	.word	filename
	.word	.LC23
	.word	.LC24
	.word	ninput
	.word	.LC17
	.word	.LC25
	.word	no_node
	.word	.LC26
	.word	noutput
	.word	train
	.word	m
	.word	.LC27
	.word	.LC28
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
