program TestArray {
	section module {
 
	}
	section data {
		int rax = 0
		int rbx = 0
		int rcx = 0
		int rdx = 0
		int rsi = 0
		int rdi = 0
		ptr _tmpptr0 = null
		ptr _tmpptr1 = null
		string str_0 = "value is: "
		string fmt_int = "%lld "
		string fmt_str = "%s "
		string newline = "\n"
		ptr grid = null
		int i = 0
		int z = 0
	}
	section code {
	start:
		alloc grid, 40, 5
		mov z, 0
	FOR_0:
		cmp z, 3
		jg ENDFOR_1
		mov i, 0
	FOR_3:
		cmp i, 3
		jg ENDFOR_4
		mov rbx, i
		mul rbx, z
		mov rcx, rbx
		add rcx, 1
		cmp z, 0
		jl IDX_OOB_7
		cmp z, 4
		jg IDX_OOB_7
		jmp IDX_OK_6
	IDX_OOB_7:
		exit 1
	IDX_OK_6:
		mov rdx, z
		mov rsi, i
		mov rdi, rsi
		mul rdi, 40
		mov _tmpptr0, grid
		add _tmpptr0, rdi
		store rcx, _tmpptr0, rdx, 8
		print fmt_str, str_0
		mov rdx, z
		mov rsi, i
		mov rdi, rsi
		mul rdi, 40
		mov _tmpptr1, grid
		add _tmpptr1, rdi
		load rsi, _tmpptr1, rdx, 8
		print fmt_int, rsi
		print newline
	FOR_CONTINUE_5:
		add i, 1
		jmp FOR_3
	ENDFOR_4:
	FOR_CONTINUE_2:
		add z, 1
		jmp FOR_0
	ENDFOR_1:
		free grid
		done
	}
}