	.file	"25137022.c"
	.intel_syntax noprefix
	.text
	.globl	NOTEST
	.type	NOTEST, @function
NOTEST:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	NOTEST, .-NOTEST
	.globl	RETEST
	.type	RETEST, @function
RETEST:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	RETEST, .-RETEST
	.globl	MIGRPH
	.type	MIGRPH, @function
MIGRPH:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	MIGRPH, .-MIGRPH
	.globl	LOCAL
	.type	LOCAL, @function
LOCAL:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	LOCAL, .-LOCAL
	.globl	ATOMICINC
	.type	ATOMICINC, @function
ATOMICINC:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	ATOMICINC, .-ATOMICINC
	.globl	TOUCH
	.type	TOUCH, @function
TOUCH:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	TOUCH, .-TOUCH
	.globl	ISLOCPTR
	.type	ISLOCPTR, @function
ISLOCPTR:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ISLOCPTR, .-ISLOCPTR
	.globl	NONLOCAL
	.type	NONLOCAL, @function
NONLOCAL:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	NONLOCAL, .-NONLOCAL
	.globl	MIGRATE
	.type	MIGRATE, @function
MIGRATE:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	MIGRATE, .-MIGRATE
	.globl	FUTURE
	.type	FUTURE, @function
FUTURE:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	FUTURE, .-FUTURE
	.globl	ALLOC
	.type	ALLOC, @function
ALLOC:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	ALLOC, .-ALLOC
	.globl	__ShutDown
	.type	__ShutDown, @function
__ShutDown:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	__ShutDown, .-__ShutDown
	.globl	SPMDInit
	.type	SPMDInit, @function
SPMDInit:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	SPMDInit, .-SPMDInit
	.globl	__Olden_panic
	.type	__Olden_panic, @function
__Olden_panic:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	__Olden_panic, .-__Olden_panic
	.globl	n_nodes
	.bss
	.align 4
	.type	n_nodes, @object
	.size	n_nodes, 4
n_nodes:
	.zero	4
	.globl	d_nodes
	.align 4
	.type	d_nodes, @object
	.size	d_nodes, 4
d_nodes:
	.zero	4
	.globl	local_p
	.align 4
	.type	local_p, @object
	.size	local_p, 4
local_p:
	.zero	4
	.globl	DebugFlag
	.align 4
	.type	DebugFlag, @object
	.size	DebugFlag, 4
DebugFlag:
	.zero	4
	.globl	stdout
	.align 4
	.type	stdout, @object
	.size	stdout, 4
stdout:
	.zero	4
	.globl	CMMD_independent
	.align 4
	.type	CMMD_independent, @object
	.size	CMMD_independent, 4
CMMD_independent:
	.zero	4
	.globl	F_SETFL
	.align 4
	.type	F_SETFL, @object
	.size	F_SETFL, 4
F_SETFL:
	.zero	4
	.globl	O_APPEND
	.align 4
	.type	O_APPEND, @object
	.size	O_APPEND, 4
O_APPEND:
	.zero	4
	.text
	.globl	CMMD_fset_io_mode
	.type	CMMD_fset_io_mode, @function
CMMD_fset_io_mode:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	CMMD_fset_io_mode, .-CMMD_fset_io_mode
	.globl	CMMD_self_address
	.type	CMMD_self_address, @function
CMMD_self_address:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	CMMD_self_address, .-CMMD_self_address
	.globl	__InitRegs
	.type	__InitRegs, @function
__InitRegs:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	__InitRegs, .-__InitRegs
	.globl	filestuff
	.type	filestuff, @function
filestuff:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	edx, DWORD PTR CMMD_independent[rip]
	mov	eax, DWORD PTR stdout[rip]
	mov	esi, edx
	mov	edi, eax
	call	CMMD_fset_io_mode
	mov	r12d, DWORD PTR O_APPEND[rip]
	mov	ebx, DWORD PTR F_SETFL[rip]
	mov	eax, DWORD PTR stdout[rip]
	mov	edi, eax
	mov	eax, 0
	call	fileno@PLT
	mov	edx, r12d
	mov	esi, ebx
	mov	edi, eax
	mov	eax, 0
	call	fcntl@PLT
	mov	eax, 0
	call	CMMD_self_address
	test	eax, eax
	je	.L31
	mov	edi, 0
	call	exit@PLT
.L31:
	mov	edi, 0
	call	__InitRegs
	nop
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	filestuff, .-filestuff
	.globl	dealwithargs
	.type	dealwithargs, @function
dealwithargs:
.LFB18:
	.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	QWORD PTR -16[rbp], rsi
	cmp	DWORD PTR -4[rbp], 1
	jle	.L33
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	atoi@PLT
	mov	DWORD PTR n_nodes[rip], eax
	jmp	.L34
.L33:
	mov	DWORD PTR n_nodes[rip], 64
.L34:
	cmp	DWORD PTR -4[rbp], 2
	jle	.L35
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	atoi@PLT
	mov	DWORD PTR d_nodes[rip], eax
	jmp	.L36
.L35:
	mov	DWORD PTR d_nodes[rip], 3
.L36:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L37
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	atoi@PLT
	mov	DWORD PTR local_p[rip], eax
	jmp	.L39
.L37:
	mov	DWORD PTR local_p[rip], 75
.L39:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	dealwithargs, .-dealwithargs
	.globl	nonlocals
	.bss
	.align 4
	.type	nonlocals, @object
	.size	nonlocals, 4
nonlocals:
	.zero	4
	.text
	.globl	compute_nodes
	.type	compute_nodes, @function
compute_nodes:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 24
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	rbx, rdi
	mov	eax, 0
	call	NOTEST
	jmp	.L41
.L48:
	mov	rax, rbx
	mov	edi, eax
	call	LOCAL
	cdqe
	mov	rbx, rax
	mov	rax, QWORD PTR [rbx]
	movsd	xmm4, QWORD PTR [rax]
	movsd	QWORD PTR -40[rbp], xmm4
	mov	eax, DWORD PTR 40[rbx]
	lea	r14d, -1[rax]
	mov	r13d, 0
	jmp	.L42
.L45:
	mov	rdx, QWORD PTR 24[rbx]
	movsx	rax, r13d
	sal	rax, 3
	add	rax, rdx
	mov	r12, QWORD PTR [rax]
	mov	rdx, QWORD PTR 32[rbx]
	movsx	rax, r13d
	sal	rax, 3
	add	rax, rdx
	movsd	xmm5, QWORD PTR [rax]
	movsd	QWORD PTR -48[rbp], xmm5
	mov	rax, r12
	mov	edi, eax
	call	ISLOCPTR
	test	eax, eax
	jne	.L43
	mov	eax, DWORD PTR nonlocals[rip]
	add	eax, 1
	mov	DWORD PTR nonlocals[rip], eax
.L43:
	mov	eax, 0
	call	RETEST
	movsd	xmm6, QWORD PTR [r12]
	movsd	QWORD PTR -56[rbp], xmm6
	mov	eax, 0
	call	NOTEST
	movsd	xmm0, QWORD PTR -48[rbp]
	mulsd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm1, QWORD PTR -40[rbp]
	subsd	xmm1, xmm0
	movsd	QWORD PTR -40[rbp], xmm1
	mov	rdx, QWORD PTR 24[rbx]
	movsx	rax, r13d
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	r12, QWORD PTR [rax]
	mov	rdx, QWORD PTR 32[rbx]
	movsx	rax, r13d
	sal	rax, 3
	add	rax, rdx
	movsd	xmm7, QWORD PTR [rax]
	movsd	QWORD PTR -48[rbp], xmm7
	mov	rax, r12
	mov	edi, eax
	call	ISLOCPTR
	test	eax, eax
	jne	.L44
	mov	eax, DWORD PTR nonlocals[rip]
	add	eax, 1
	mov	DWORD PTR nonlocals[rip], eax
.L44:
	mov	eax, 0
	call	RETEST
	movsd	xmm4, QWORD PTR [r12]
	movsd	QWORD PTR -56[rbp], xmm4
	mov	eax, 0
	call	NOTEST
	movsd	xmm0, QWORD PTR -48[rbp]
	mulsd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -40[rbp]
	subsd	xmm2, xmm0
	movsd	QWORD PTR -40[rbp], xmm2
	add	r13d, 2
.L42:
	cmp	r13d, r14d
	jl	.L45
	cmp	r13d, r14d
	jne	.L46
	mov	rdx, QWORD PTR 24[rbx]
	movsx	rax, r13d
	sal	rax, 3
	add	rax, rdx
	mov	r12, QWORD PTR [rax]
	mov	rdx, QWORD PTR 32[rbx]
	movsx	rax, r13d
	sal	rax, 3
	add	rax, rdx
	movsd	xmm5, QWORD PTR [rax]
	movsd	QWORD PTR -48[rbp], xmm5
	mov	rax, r12
	mov	edi, eax
	call	ISLOCPTR
	test	eax, eax
	jne	.L47
	mov	eax, DWORD PTR nonlocals[rip]
	add	eax, 1
	mov	DWORD PTR nonlocals[rip], eax
.L47:
	mov	eax, 0
	call	RETEST
	movsd	xmm7, QWORD PTR [r12]
	movsd	QWORD PTR -56[rbp], xmm7
	mov	eax, 0
	call	NOTEST
	movsd	xmm0, QWORD PTR -48[rbp]
	mulsd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm3, QWORD PTR -40[rbp]
	subsd	xmm3, xmm0
	movsd	QWORD PTR -40[rbp], xmm3
.L46:
	mov	rax, QWORD PTR [rbx]
	movsd	xmm1, QWORD PTR -40[rbp]
	movsd	QWORD PTR [rax], xmm1
	mov	rbx, QWORD PTR 8[rbx]
.L41:
	test	rbx, rbx
	jne	.L48
	mov	eax, 0
	call	RETEST
	nop
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	compute_nodes, .-compute_nodes
	.globl	print_graph
	.type	print_graph, @function
print_graph:
.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	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L50
.L51:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L50:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L51
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L52
.L53:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L52:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L53
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	print_graph, .-print_graph
	.globl	do_all_compute
	.type	do_all_compute, @function
do_all_compute:
.LFB21:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	NONLOCAL
	test	eax, eax
	je	.L55
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	MIGRATE
.L55:
	cmp	DWORD PTR -48[rbp], 1
	jle	.L56
	lea	rax, -20[rbp]
	mov	r8d, eax
	lea	rax, do_all_compute[rip]
	mov	ecx, eax
	mov	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	esi, eax
	mov	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -40[rbp]
	mov	edi, edx
	mov	edx, esi
	mov	esi, eax
	call	FUTURE
	mov	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	edx, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	do_all_compute
	lea	rax, -20[rbp]
	mov	edi, eax
	call	TOUCH
	jmp	.L59
.L56:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	compute_nodes
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	compute_nodes
.L59:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L58
	call	__stack_chk_fail@PLT
.L58:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	do_all_compute, .-do_all_compute
	.globl	__NumNodes
	.bss
	.align 4
	.type	__NumNodes, @object
	.size	__NumNodes, 4
__NumNodes:
	.zero	4
	.text
	.globl	main
	.type	main, @function
main:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, edx
	mov	edi, eax
	call	SPMDInit
	mov	eax, 0
	call	initialize_graph
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR DebugFlag[rip]
	test	eax, eax
	je	.L61
	mov	DWORD PTR -12[rbp], 0
	jmp	.L62
.L63:
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	MIGRATE
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	print_graph
	add	DWORD PTR -12[rbp], 1
.L62:
	mov	eax, DWORD PTR __NumNodes[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L63
.L61:
	mov	edi, 0
	call	MIGRATE
	mov	edx, DWORD PTR __NumNodes[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	do_all_compute
	mov	eax, 0
	call	printstats
	mov	edi, 0
	call	MIGRATE
	mov	edi, 0
	call	__ShutDown
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	main, .-main
	.section	.rodata
.LC0:
	.string	"Assertion failure"
	.text
	.globl	make_table
	.type	make_table, @function
make_table:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L66
	lea	rdi, .LC0[rip]
	call	puts@PLT
	mov	edi, -1
	call	exit@PLT
.L66:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	make_table, .-make_table
	.globl	fill_table
	.type	fill_table, @function
fill_table:
.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, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	DWORD PTR -56[rbp], ecx
	mov	eax, DWORD PTR -56[rbp]
	mov	esi, 48
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
	call	gen_uniform_double
	movq	rax, xmm0
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 8[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 40[rax], 0
	mov	DWORD PTR -20[rbp], 1
	jmp	.L69
.L70:
	mov	eax, DWORD PTR -56[rbp]
	mov	esi, 48
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	eax, 0
	call	gen_uniform_double
	movq	rax, xmm0
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 8[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 40[rax], 0
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	add	DWORD PTR -20[rbp], 1
.L69:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L70
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	fill_table, .-fill_table
	.globl	__MyNodeId
	.bss
	.align 4
	.type	__MyNodeId, @object
	.size	__MyNodeId, 4
__MyNodeId:
	.zero	4
	.globl	IDMASK
	.align 4
	.type	IDMASK, @object
	.size	IDMASK, 4
IDMASK:
	.zero	4
	.text
	.globl	make_neighbors
	.type	make_neighbors, @function
make_neighbors:
.LFB25:
	.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, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -84[rbp], edx
	mov	DWORD PTR -88[rbp], ecx
	mov	DWORD PTR -92[rbp], r8d
	mov	DWORD PTR -96[rbp], r9d
	mov	edx, DWORD PTR __MyNodeId[rip]
	mov	eax, DWORD PTR IDMASK[rip]
	and	eax, edx
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L72
.L86:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L73
	mov	edi, 0
	call	__ShutDown
.L73:
	mov	DWORD PTR -60[rbp], 0
	jmp	.L74
.L82:
	mov	eax, DWORD PTR -84[rbp]
	mov	edi, eax
	call	gen_number
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	check_percent
	test	eax, eax
	jne	.L75
	mov	eax, DWORD PTR -96[rbp]
	lea	ebx, 64[rax]
	mov	edi, 1
	call	gen_signed_number
	sal	eax, 2
	add	eax, ebx
	cdq
	shr	edx, 26
	add	eax, edx
	and	eax, 63
	sub	eax, edx
	jmp	.L76
.L75:
	mov	eax, DWORD PTR -96[rbp]
.L76:
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L77
	mov	edi, 0
	call	__ShutDown
.L77:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L78
.L81:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	cmp	QWORD PTR -24[rbp], rax
	je	.L87
	add	DWORD PTR -56[rbp], 1
.L78:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L81
	jmp	.L80
.L87:
	nop
.L80:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L82
	cmp	QWORD PTR -40[rbp], 0
	je	.L83
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L84
.L83:
	mov	edi, 0
	call	__ShutDown
.L84:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	shr	eax, 7
	cmp	eax, 2047
	ja	.L85
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 40
	mov	edi, eax
	call	ATOMICINC
.L85:
	add	DWORD PTR -60[rbp], 1
.L74:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jl	.L82
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
.L72:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L86
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	make_neighbors, .-make_neighbors
	.globl	update_from_coeffs
	.type	update_from_coeffs, @function
update_from_coeffs:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	edx, DWORD PTR __MyNodeId[rip]
	mov	eax, DWORD PTR IDMASK[rip]
	and	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L89
.L91:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jg	.L90
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
.L90:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 44[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L89:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L91
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	update_from_coeffs, .-update_from_coeffs
	.section	.rodata
.LC1:
	.string	"No from list!! 0x%x\n"
.LC2:
	.string	"yipes!\n"
	.text
	.globl	fill_from_fields
	.type	fill_from_fields, @function
fill_from_fields:
.LFB27:
	.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 -72[rbp]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L93
.L99:
	mov	DWORD PTR -60[rbp], 0
	jmp	.L94
.L98:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 44
	mov	edi, eax
	call	ATOMICINC
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	DWORD PTR -52[rbp], eax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L95
	mov	eax, 0
	call	MIGRPH
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, eax
	lea	rax, .LC1[rip]
	mov	esi, edx
	mov	edi, eax
	call	__Olden_panic
.L95:
	mov	eax, 0
	call	CMMD_self_address
	mov	edx, DWORD PTR __NumNodes[rip]
	cmp	eax, edx
	jle	.L96
	lea	rax, .LC2[rip]
	mov	esi, 0
	mov	edi, eax
	call	__Olden_panic
.L96:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 0
	call	CMMD_self_address
	mov	edx, DWORD PTR __NumNodes[rip]
	cmp	eax, edx
	jle	.L97
	lea	rax, .LC2[rip]
	mov	esi, 0
	mov	edi, eax
	call	__Olden_panic
.L97:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	eax, 0
	call	gen_uniform_double
	movq	rax, xmm0
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -60[rbp], 1
.L94:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jl	.L98
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -48[rbp], rax
.L93:
	cmp	QWORD PTR -48[rbp], 0
	jne	.L99
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	fill_from_fields, .-fill_from_fields
	.globl	localize_local
	.type	localize_local, @function
localize_local:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, 0
	call	NOTEST
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L101
.L102:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	edi, eax
	call	LOCAL
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	edi, eax
	call	LOCAL
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edi, eax
	call	LOCAL
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
.L101:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L102
	mov	eax, 0
	call	RETEST
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	localize_local, .-localize_local
	.globl	make_tables
	.type	make_tables, @function
make_tables:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	edx, DWORD PTR __MyNodeId[rip]
	mov	eax, DWORD PTR IDMASK[rip]
	and	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, eax, 793
	mov	edi, eax
	call	init_random
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, edx
	call	make_table
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	edi, eax
	mov	edx, DWORD PTR -36[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, edx
	mov	edx, edi
	mov	rdi, rax
	call	fill_table
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	ALLOC
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, edx
	call	make_table
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	mov	edi, eax
	mov	edx, DWORD PTR -36[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, edx
	mov	edx, edi
	mov	rdi, rax
	call	fill_table
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -60[rbp]
	movsx	rdx, edx
	mov	rcx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -60[rbp]
	movsx	rdx, edx
	lea	rcx, 64[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax+rcx*8], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	make_tables, .-make_tables
	.globl	make_all_neighbors
	.type	make_all_neighbors, @function
make_all_neighbors:
.LFB30:
	.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	eax, DWORD PTR -44[rbp]
	imul	eax, eax, 39
	mov	edi, eax
	call	init_random
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	edi, DWORD PTR local_p[rip]
	mov	edx, DWORD PTR d_nodes[rip]
	mov	eax, DWORD PTR n_nodes[rip]
	lea	ecx, 63[rax]
	test	eax, eax
	cmovs	eax, ecx
	sar	eax, 6
	mov	r10d, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r9d, ecx
	mov	r8d, edi
	mov	ecx, edx
	mov	edx, r10d
	mov	rdi, rax
	call	make_neighbors
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 512
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	edi, DWORD PTR local_p[rip]
	mov	edx, DWORD PTR d_nodes[rip]
	mov	eax, DWORD PTR n_nodes[rip]
	lea	ecx, 63[rax]
	test	eax, eax
	cmovs	eax, ecx
	sar	eax, 6
	mov	r10d, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r9d, ecx
	mov	r8d, edi
	mov	ecx, edx
	mov	edx, r10d
	mov	rdi, rax
	call	make_neighbors
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	make_all_neighbors, .-make_all_neighbors
	.globl	update_all_from_coeffs
	.type	update_all_from_coeffs, @function
update_all_from_coeffs:
.LFB31:
	.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	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	update_from_coeffs
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	update_from_coeffs
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	update_all_from_coeffs, .-update_all_from_coeffs
	.globl	fill_all_from_fields
	.type	fill_all_from_fields, @function
fill_all_from_fields:
.LFB32:
	.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	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	sal	edx, 4
	add	eax, edx
	mov	edi, eax
	call	init_random
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	edx, DWORD PTR d_nodes[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	fill_from_fields
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	edx, DWORD PTR d_nodes[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	fill_from_fields
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	fill_all_from_fields, .-fill_all_from_fields
	.globl	localize
	.type	localize, @function
localize:
.LFB33:
	.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	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	localize_local
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	localize_local
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	localize, .-localize
	.globl	clear_nummiss
	.type	clear_nummiss, @function
clear_nummiss:
.LFB34:
	.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	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -4[rbp], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	clear_nummiss, .-clear_nummiss
	.globl	do_all
	.type	do_all, @function
do_all:
.LFB35:
	.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 -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	QWORD PTR -40[rbp], rcx
	mov	DWORD PTR -44[rbp], r8d
	mov	eax, DWORD PTR -28[rbp]
	cdq
	idiv	DWORD PTR -44[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -32[rbp], 1
	jle	.L110
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	edi, eax
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	lea	esi, [rdx+rax]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, edi
	mov	rdi, rax
	call	do_all
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	edi, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, edi
	mov	rdi, rax
	call	do_all
	jmp	.L112
.L110:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rcx
.L112:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	do_all, .-do_all
	.globl	initialize_graph
	.type	initialize_graph, @function
initialize_graph:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	esi, 1024
	mov	edi, 0
	call	ALLOC
	cdqe
	mov	QWORD PTR -40[rbp], rax
	mov	esi, 1024
	mov	edi, 0
	call	ALLOC
	cdqe
	mov	QWORD PTR -32[rbp], rax
	mov	esi, DWORD PTR __NumNodes[rip]
	mov	eax, 64
	cdq
	idiv	esi
	mov	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, make_tables[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, make_all_neighbors[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, update_all_from_coeffs[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, fill_all_from_fields[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, localize[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	edi, DWORD PTR __NumNodes[rip]
	mov	eax, 64
	cdq
	idiv	edi
	mov	DWORD PTR -44[rbp], eax
	mov	DWORD PTR -56[rbp], 0
	jmp	.L114
.L117:
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -56[rbp]
	movsx	rdx, edx
	mov	rcx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -56[rbp]
	movsx	rdx, edx
	lea	rcx, 64[rdx]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax+rcx*8], rdx
	mov	DWORD PTR -52[rbp], 1
	jmp	.L115
.L116:
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR n_nodes[rip]
	lea	edx, 63[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 6
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -56[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	add	rdx, 64
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	add	DWORD PTR -52[rbp], 1
.L115:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L116
	add	DWORD PTR -56[rbp], 1
.L114:
	mov	eax, DWORD PTR __NumNodes[rip]
	cmp	DWORD PTR -56[rbp], eax
	jl	.L117
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edx
	lea	rcx, clear_nummiss[rip]
	mov	edx, 64
	mov	esi, 0
	mov	rdi, rax
	call	do_all
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	initialize_graph, .-initialize_graph
	.local	percentcheck
	.comm	percentcheck,4,4
	.local	numlocal
	.comm	numlocal,4,4
	.globl	init_random
	.type	init_random, @function
init_random:
.LFB37:
	.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]
	mov	edi, eax
	mov	eax, 0
	call	srand48@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	init_random, .-init_random
	.globl	gen_number
	.type	gen_number, @function
gen_number:
.LFB38:
	.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, 0
	call	lrand48@PLT
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	cqo
	idiv	rcx
	mov	rax, rdx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	gen_number, .-gen_number
	.globl	gen_signed_number
	.type	gen_signed_number, @function
gen_signed_number:
.LFB39:
	.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	DWORD PTR -20[rbp], edi
	mov	eax, 0
	call	lrand48@PLT
	mov	edx, DWORD PTR -20[rbp]
	add	edx, edx
	movsx	rcx, edx
	cqo
	idiv	rcx
	mov	rax, rdx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sub	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L123
	add	DWORD PTR -4[rbp], 1
.L123:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	gen_signed_number, .-gen_signed_number
	.globl	gen_uniform_double
	.type	gen_uniform_double, @function
gen_uniform_double:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	call	drand48@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	gen_uniform_double, .-gen_uniform_double
	.globl	check_percent
	.type	check_percent, @function
check_percent:
.LFB41:
	.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	DWORD PTR -20[rbp], edi
	mov	eax, 0
	call	drand48@PLT
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	movsd	xmm2, QWORD PTR .LC3[rip]
	divsd	xmm1, xmm2
	comisd	xmm1, xmm0
	seta	al
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR percentcheck[rip]
	add	eax, 1
	mov	DWORD PTR percentcheck[rip], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L128
	mov	eax, DWORD PTR numlocal[rip]
	add	eax, 1
	mov	DWORD PTR numlocal[rip], eax
.L128:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	check_percent, .-check_percent
	.globl	printstats
	.type	printstats, @function
printstats:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	printstats, .-printstats
	.section	.rodata
	.align 8
.LC3:
	.long	0
	.long	1079574528
	.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	"25137022.c"
	.text
	.align	2
	.global	NOTEST
	.syntax unified
	.arm
	.fpu softvfp
	.type	NOTEST, %function
NOTEST:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	NOTEST, .-NOTEST
	.align	2
	.global	RETEST
	.syntax unified
	.arm
	.fpu softvfp
	.type	RETEST, %function
RETEST:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	RETEST, .-RETEST
	.align	2
	.global	MIGRPH
	.syntax unified
	.arm
	.fpu softvfp
	.type	MIGRPH, %function
MIGRPH:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	MIGRPH, .-MIGRPH
	.align	2
	.global	LOCAL
	.syntax unified
	.arm
	.fpu softvfp
	.type	LOCAL, %function
LOCAL:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	LOCAL, .-LOCAL
	.align	2
	.global	ATOMICINC
	.syntax unified
	.arm
	.fpu softvfp
	.type	ATOMICINC, %function
ATOMICINC:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ATOMICINC, .-ATOMICINC
	.align	2
	.global	TOUCH
	.syntax unified
	.arm
	.fpu softvfp
	.type	TOUCH, %function
TOUCH:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	TOUCH, .-TOUCH
	.align	2
	.global	ISLOCPTR
	.syntax unified
	.arm
	.fpu softvfp
	.type	ISLOCPTR, %function
ISLOCPTR:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ISLOCPTR, .-ISLOCPTR
	.align	2
	.global	NONLOCAL
	.syntax unified
	.arm
	.fpu softvfp
	.type	NONLOCAL, %function
NONLOCAL:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	NONLOCAL, .-NONLOCAL
	.align	2
	.global	MIGRATE
	.syntax unified
	.arm
	.fpu softvfp
	.type	MIGRATE, %function
MIGRATE:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	MIGRATE, .-MIGRATE
	.align	2
	.global	FUTURE
	.syntax unified
	.arm
	.fpu softvfp
	.type	FUTURE, %function
FUTURE:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	FUTURE, .-FUTURE
	.align	2
	.global	ALLOC
	.syntax unified
	.arm
	.fpu softvfp
	.type	ALLOC, %function
ALLOC:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ALLOC, .-ALLOC
	.align	2
	.global	__ShutDown
	.syntax unified
	.arm
	.fpu softvfp
	.type	__ShutDown, %function
__ShutDown:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	__ShutDown, .-__ShutDown
	.align	2
	.global	SPMDInit
	.syntax unified
	.arm
	.fpu softvfp
	.type	SPMDInit, %function
SPMDInit:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	SPMDInit, .-SPMDInit
	.align	2
	.global	__Olden_panic
	.syntax unified
	.arm
	.fpu softvfp
	.type	__Olden_panic, %function
__Olden_panic:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	__Olden_panic, .-__Olden_panic
	.comm	n_nodes,4,4
	.comm	d_nodes,4,4
	.comm	local_p,4,4
	.comm	DebugFlag,4,4
	.comm	stdout,4,4
	.comm	CMMD_independent,4,4
	.comm	F_SETFL,4,4
	.comm	O_APPEND,4,4
	.align	2
	.global	CMMD_fset_io_mode
	.syntax unified
	.arm
	.fpu softvfp
	.type	CMMD_fset_io_mode, %function
CMMD_fset_io_mode:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	CMMD_fset_io_mode, .-CMMD_fset_io_mode
	.align	2
	.global	CMMD_self_address
	.syntax unified
	.arm
	.fpu softvfp
	.type	CMMD_self_address, %function
CMMD_self_address:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	CMMD_self_address, .-CMMD_self_address
	.align	2
	.global	__InitRegs
	.syntax unified
	.arm
	.fpu softvfp
	.type	__InitRegs, %function
__InitRegs:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	__InitRegs, .-__InitRegs
	.align	2
	.global	filestuff
	.syntax unified
	.arm
	.fpu softvfp
	.type	filestuff, %function
filestuff:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L32
	ldr	r3, [r3]
	ldr	r2, .L32+4
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	CMMD_fset_io_mode
	ldr	r3, .L32
	ldr	r3, [r3]
	mov	r0, r3
	bl	fileno
	ldr	r3, .L32+8
	ldr	r3, [r3]
	ldr	r2, .L32+12
	ldr	r2, [r2]
	mov	r1, r3
	bl	fcntl
	bl	CMMD_self_address
	mov	r3, r0
	cmp	r3, #0
	beq	.L31
	mov	r0, #0
	bl	exit
.L31:
	mov	r0, #0
	bl	__InitRegs
	nop
	pop	{fp, pc}
.L33:
	.align	2
.L32:
	.word	stdout
	.word	CMMD_independent
	.word	F_SETFL
	.word	O_APPEND
	.size	filestuff, .-filestuff
	.align	2
	.global	dealwithargs
	.syntax unified
	.arm
	.fpu softvfp
	.type	dealwithargs, %function
dealwithargs:
	@ 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]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L35
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L42
	str	r3, [r2]
	b	.L36
.L35:
	ldr	r3, .L42
	mov	r2, #64
	str	r2, [r3]
.L36:
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	ble	.L37
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L42+4
	str	r3, [r2]
	b	.L38
.L37:
	ldr	r3, .L42+4
	mov	r2, #3
	str	r2, [r3]
.L38:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L39
	ldr	r3, [fp, #-12]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L42+8
	str	r3, [r2]
	b	.L41
.L39:
	ldr	r3, .L42+8
	mov	r2, #75
	str	r2, [r3]
.L41:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L43:
	.align	2
.L42:
	.word	n_nodes
	.word	d_nodes
	.word	local_p
	.size	dealwithargs, .-dealwithargs
	.global	nonlocals
	.bss
	.align	2
	.type	nonlocals, %object
	.size	nonlocals, 4
nonlocals:
	.space	4
	.global	__aeabi_dmul
	.global	__aeabi_dsub
	.text
	.align	2
	.global	compute_nodes
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_nodes, %function
compute_nodes:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #20
	mov	r4, r0
	bl	NOTEST
	b	.L45
.L52:
	mov	r3, r4
	mov	r0, r3
	bl	LOCAL
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [r4]
	ldmia	r3, {r6-r7}
	ldr	r3, [r4, #20]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	mov	r10, #0
	b	.L46
.L49:
	ldr	r2, [r4, #12]
	mov	r3, r10
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r2, [r4, #16]
	mov	r3, r10
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r8-r9}
	mov	r3, r5
	mov	r0, r3
	bl	ISLOCPTR
	mov	r3, r0
	cmp	r3, #0
	bne	.L47
	ldr	r3, .L53
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L53
	str	r3, [r2]
.L47:
	bl	RETEST
	ldmia	r5, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	bl	NOTEST
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r2, [r4, #12]
	mov	r3, r10
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r2, [r4, #16]
	mov	r3, r10
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r8-r9}
	mov	r3, r5
	mov	r0, r3
	bl	ISLOCPTR
	mov	r3, r0
	cmp	r3, #0
	bne	.L48
	ldr	r3, .L53
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L53
	str	r3, [r2]
.L48:
	bl	RETEST
	ldmia	r5, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	bl	NOTEST
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	add	r10, r10, #2
.L46:
	ldr	r3, [fp, #-48]
	cmp	r10, r3
	blt	.L49
	cmp	r10, r3
	bne	.L50
	ldr	r2, [r4, #12]
	mov	r3, r10
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r5, [r3]
	ldr	r2, [r4, #16]
	mov	r3, r10
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r8-r9}
	mov	r3, r5
	mov	r0, r3
	bl	ISLOCPTR
	mov	r3, r0
	cmp	r3, #0
	bne	.L51
	ldr	r3, .L53
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L53
	str	r3, [r2]
.L51:
	bl	RETEST
	ldmia	r5, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	bl	NOTEST
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
.L50:
	ldr	r3, [r4]
	stm	r3, {r6-r7}
	ldr	r4, [r4, #4]
.L45:
	cmp	r4, #0
	bne	.L52
	bl	RETEST
	nop
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L54:
	.align	2
.L53:
	.word	nonlocals
	.size	compute_nodes, .-compute_nodes
	.align	2
	.global	print_graph
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_graph, %function
print_graph:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-8]
	b	.L56
.L57:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L56:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L57
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-8]
	b	.L58
.L59:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L58:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L59
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	print_graph, .-print_graph
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	do_all_compute
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_all_compute, %function
do_all_compute:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L66
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-28]
	bl	NONLOCAL
	mov	r3, r0
	cmp	r3, #0
	beq	.L61
	ldr	r0, [fp, #-28]
	bl	MIGRATE
.L61:
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	ble	.L62
	ldr	r0, [fp, #-24]
	ldr	r3, [fp, #-32]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-28]
	add	r1, r2, r3
	ldr	r3, [fp, #-32]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	ip, r3
	ldr	r2, .L66+4
	sub	r3, fp, #16
	str	r3, [sp]
	mov	r3, r2
	mov	r2, ip
	bl	FUTURE
	ldr	r3, [fp, #-32]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	do_all_compute
	sub	r3, fp, #16
	mov	r0, r3
	bl	TOUCH
	b	.L65
.L62:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	compute_nodes
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	compute_nodes
.L65:
	nop
	ldr	r3, .L66
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L64
	bl	__stack_chk_fail
.L64:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L67:
	.align	2
.L66:
	.word	.LC0
	.word	do_all_compute
	.size	do_all_compute, .-do_all_compute
	.comm	__NumNodes,4,4
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	SPMDInit
	bl	initialize_graph
	str	r0, [fp, #-8]
	ldr	r3, .L73
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L69
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L70
.L71:
	ldr	r0, [fp, #-12]
	bl	MIGRATE
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	print_graph
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L70:
	ldr	r3, .L73+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L71
.L69:
	mov	r0, #0
	bl	MIGRATE
	ldr	r3, .L73+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	do_all_compute
	bl	printstats
	mov	r0, #0
	bl	MIGRATE
	mov	r0, #0
	bl	__ShutDown
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L74:
	.align	2
.L73:
	.word	DebugFlag
	.word	__NumNodes
	.size	main, .-main
	.section	.rodata
	.align	2
.LC1:
	.ascii	"Assertion failure\000"
	.text
	.align	2
	.global	make_table
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_table, %function
make_table:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L76
	ldr	r0, .L78
	bl	puts
	mvn	r0, #0
	bl	exit
.L76:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L79:
	.align	2
.L78:
	.word	.LC1
	.size	make_table, .-make_table
	.align	2
	.global	fill_table
	.syntax unified
	.arm
	.fpu softvfp
	.type	fill_table, %function
fill_table:
	@ 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]
	str	r3, [fp, #-36]
	mov	r1, #28
	ldr	r0, [fp, #-36]
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	bl	gen_uniform_double
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-28]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-28]
	add	r2, r3, #8
	str	r2, [fp, #-28]
	ldr	r2, [fp, #-12]
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #20]
	mov	r3, #1
	str	r3, [fp, #-8]
	b	.L81
.L82:
	mov	r1, #28
	ldr	r0, [fp, #-36]
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-16]
	bl	gen_uniform_double
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-28]
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-28]
	add	r2, r3, #8
	str	r2, [fp, #-28]
	ldr	r2, [fp, #-16]
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L81:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L82
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fill_table, .-fill_table
	.comm	__MyNodeId,4,4
	.comm	IDMASK,4,4
	.align	2
	.global	make_neighbors
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_neighbors, %function
make_neighbors:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, .L100
	ldr	r2, [r3]
	ldr	r3, .L100+4
	ldr	r3, [r3]
	and	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	b	.L84
.L98:
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	ALLOC
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L85
	mov	r0, #0
	bl	__ShutDown
.L85:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L86
.L94:
	ldr	r0, [fp, #-56]
	bl	gen_number
	str	r0, [fp, #-28]
	ldr	r0, [fp, #4]
	bl	check_percent
	mov	r3, r0
	cmp	r3, #0
	bne	.L87
	ldr	r3, [fp, #8]
	add	r4, r3, #64
	mov	r0, #1
	bl	gen_signed_number
	mov	r3, r0
	lsl	r3, r3, #2
	add	r3, r4, r3
	rsbs	r2, r3, #0
	and	r3, r3, #63
	and	r2, r2, #63
	rsbpl	r3, r2, #0
	b	.L88
.L87:
	ldr	r3, [fp, #8]
.L88:
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L89
	mov	r0, #0
	bl	__ShutDown
.L89:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L90
.L93:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L99
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L90:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L93
	b	.L92
.L99:
	nop
.L92:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L94
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L95
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L96
.L95:
	mov	r0, #0
	bl	__ShutDown
.L96:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #7
	cmp	r3, #2048
	bcs	.L97
	ldr	r3, [fp, #-16]
	add	r3, r3, #20
	mov	r0, r3
	bl	ATOMICINC
.L97:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L86:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L94
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-44]
.L84:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L98
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L101:
	.align	2
.L100:
	.word	__MyNodeId
	.word	IDMASK
	.size	make_neighbors, .-make_neighbors
	.align	2
	.global	update_from_coeffs
	.syntax unified
	.arm
	.fpu softvfp
	.type	update_from_coeffs, %function
update_from_coeffs:
	@ 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]
	ldr	r3, .L106
	ldr	r2, [r3]
	ldr	r3, .L106+4
	ldr	r3, [r3]
	and	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	b	.L103
.L105:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bgt	.L104
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	ALLOC
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
.L104:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	ALLOC
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
.L103:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L105
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L107:
	.align	2
.L106:
	.word	__MyNodeId
	.word	IDMASK
	.size	update_from_coeffs, .-update_from_coeffs
	.section	.rodata
	.align	2
.LC2:
	.ascii	"No from list!! 0x%x\012\000"
	.align	2
.LC3:
	.ascii	"yipes!\012\000"
	.text
	.align	2
	.global	fill_from_fields
	.syntax unified
	.arm
	.fpu softvfp
	.type	fill_from_fields, %function
fill_from_fields:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-40]
	b	.L109
.L115:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L110
.L114:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #24
	mov	r0, r3
	bl	ATOMICINC
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L111
	bl	MIGRPH
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-32]
	ldr	r2, .L116
	ldr	r3, [fp, #-32]
	mov	r1, r3
	mov	r0, r2
	bl	__Olden_panic
.L111:
	bl	CMMD_self_address
	mov	r2, r0
	ldr	r3, .L116+4
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L112
	ldr	r3, .L116+8
	mov	r1, #0
	mov	r0, r3
	bl	__Olden_panic
.L112:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	bl	CMMD_self_address
	mov	r2, r0
	ldr	r3, .L116+4
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L113
	ldr	r3, .L116+8
	mov	r1, #0
	mov	r0, r3
	bl	__Olden_panic
.L113:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	add	r4, r2, r3
	bl	gen_uniform_double
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L110:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L114
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-40]
.L109:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L115
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L117:
	.align	2
.L116:
	.word	.LC2
	.word	__NumNodes
	.word	.LC3
	.size	fill_from_fields, .-fill_from_fields
	.align	2
	.global	localize_local
	.syntax unified
	.arm
	.fpu softvfp
	.type	localize_local, %function
localize_local:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	NOTEST
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	b	.L119
.L120:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	LOCAL
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	LOCAL
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	LOCAL
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
.L119:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L120
	bl	RETEST
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	localize_local, .-localize_local
	.align	2
	.global	make_tables
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_tables, %function
make_tables:
	@ 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, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L122
	ldr	r2, [r3]
	ldr	r3, .L122+4
	ldr	r3, [r3]
	and	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r1, r3, #5
	add	r3, r3, r1
	lsl	r3, r3, #3
	add	r3, r3, r2
	mov	r0, r3
	bl	init_random
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	make_table
	str	r0, [fp, #-16]
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	fill_table
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	make_table
	str	r0, [fp, #-8]
	ldr	r3, .L122+8
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	fill_table
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-8]
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	add	r2, r2, #64
	ldr	r1, [fp, #-16]
	str	r1, [r3, r2, lsl #2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L123:
	.align	2
.L122:
	.word	__MyNodeId
	.word	IDMASK
	.word	n_nodes
	.size	make_tables, .-make_tables
	.align	2
	.global	make_all_neighbors
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_all_neighbors, %function
make_all_neighbors:
	@ args = 0, pretend = 0, frame = 24
	@ 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]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	mov	r0, r3
	bl	init_random
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L125
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	mov	r0, r3
	ldr	r3, .L125+4
	ldr	r1, [r3]
	ldr	r3, .L125+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	mov	r2, r0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	make_neighbors
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #256
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L125
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	mov	r0, r3
	ldr	r3, .L125+4
	ldr	r1, [r3]
	ldr	r3, .L125+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	mov	r2, r0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	make_neighbors
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L126:
	.align	2
.L125:
	.word	n_nodes
	.word	d_nodes
	.word	local_p
	.size	make_all_neighbors, .-make_all_neighbors
	.align	2
	.global	update_all_from_coeffs
	.syntax unified
	.arm
	.fpu softvfp
	.type	update_all_from_coeffs, %function
update_all_from_coeffs:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	update_from_coeffs
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	update_from_coeffs
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	update_all_from_coeffs, .-update_all_from_coeffs
	.align	2
	.global	fill_all_from_fields
	.syntax unified
	.arm
	.fpu softvfp
	.type	fill_all_from_fields, %function
fill_all_from_fields:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	mov	r0, r3
	bl	init_random
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L129
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	fill_from_fields
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L129
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	fill_from_fields
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L130:
	.align	2
.L129:
	.word	d_nodes
	.size	fill_all_from_fields, .-fill_all_from_fields
	.align	2
	.global	localize
	.syntax unified
	.arm
	.fpu softvfp
	.type	localize, %function
localize:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	localize_local
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	localize_local
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	localize, .-localize
	.align	2
	.global	clear_nummiss
	.syntax unified
	.arm
	.fpu softvfp
	.type	clear_nummiss, %function
clear_nummiss:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	clear_nummiss, .-clear_nummiss
	.global	__aeabi_idiv
	.align	2
	.global	do_all
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_all, %function
do_all:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-20]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	ble	.L134
	ldr	r3, [fp, #-24]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r1, r2, r3
	ldr	r3, [fp, #-24]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	do_all
	ldr	r3, [fp, #-24]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	do_all
	b	.L136
.L134:
	ldr	r3, [fp, #-28]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	blx	r3
.L136:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	do_all, .-do_all
	.align	2
	.global	initialize_graph
	.syntax unified
	.arm
	.fpu softvfp
	.type	initialize_graph, %function
initialize_graph:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	mov	r1, #512
	mov	r0, #0
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-32]
	mov	r1, #512
	mov	r0, #0
	bl	ALLOC
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, .L143
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #64
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+4
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+8
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+12
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+16
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+20
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, .L143
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #64
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L138
.L141:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-12]
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-40]
	add	r2, r2, #64
	ldr	r1, [fp, #-12]
	str	r1, [r3, r2, lsl #2]
	mov	r3, #1
	str	r3, [fp, #-36]
	b	.L139
.L140:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, .L143+24
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-32]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, .L143+24
	ldr	r3, [r3]
	add	r2, r3, #63
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #6
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-20]
	mul	r2, r3, r2
	ldr	r3, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	add	r2, r2, #64
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L139:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L140
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L138:
	ldr	r3, .L143
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L141
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, .L143+28
	mov	r2, #64
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	do_all
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L144:
	.align	2
.L143:
	.word	__NumNodes
	.word	make_tables
	.word	make_all_neighbors
	.word	update_all_from_coeffs
	.word	fill_all_from_fields
	.word	localize
	.word	n_nodes
	.word	clear_nummiss
	.size	initialize_graph, .-initialize_graph
	.local	percentcheck
	.comm	percentcheck,4,4
	.local	numlocal
	.comm	numlocal,4,4
	.align	2
	.global	init_random
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_random, %function
init_random:
	@ 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	r0, [fp, #-8]
	bl	srand48
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	init_random, .-init_random
	.global	__aeabi_idivmod
	.align	2
	.global	gen_number
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_number, %function
gen_number:
	@ 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]
	bl	lrand48
	mov	r3, r0
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_number, .-gen_number
	.align	2
	.global	gen_signed_number
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_signed_number, %function
gen_signed_number:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	lrand48
	mov	r2, r0
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L149
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L149:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_signed_number, .-gen_signed_number
	.align	2
	.global	gen_uniform_double
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_uniform_double, %function
gen_uniform_double:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	drand48
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	pop	{fp, pc}
	.size	gen_uniform_double, .-gen_uniform_double
	.global	__aeabi_i2d
	.global	__aeabi_ddiv
	.global	__aeabi_dcmplt
	.align	2
	.global	check_percent
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_percent, %function
check_percent:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #20
	str	r0, [fp, #-32]
	bl	drand48
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L157
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L154
	mov	r3, #0
	mov	r6, r3
.L154:
	and	r3, r6, #255
	str	r3, [fp, #-24]
	ldr	r3, .L157+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L157+4
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L155
	ldr	r3, .L157+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L157+8
	str	r3, [r2]
.L155:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L158:
	.align	2
.L157:
	.word	1079574528
	.word	percentcheck
	.word	numlocal
	.size	check_percent, .-check_percent
	.align	2
	.global	printstats
	.syntax unified
	.arm
	.fpu softvfp
	.type	printstats, %function
printstats:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	printstats, .-printstats
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
