program RecordTest {
	section module {
 
	}
	section data {
		int rax = 0
		int rbx = 0
		int rcx = 0
		int rdx = 0
		int rsi = 0
		float xmm0 = 0.0
		float xmm1 = 0.0
		ptr arg0 = null
		float real_const_0 = 25.0
		string str_0 = "equals: "
		string str_1 = ":"
		string fmt_int = "%lld "
		string fmt_str = "%s "
		string fmt_float = "%.6f "
		string newline = "\n"
		ptr p = null
		int z = 0
		ptr printPoint_pi = null
		ptr printPoint_px = null
	}
	section code {
	start:
		alloc p, 24, 1
		store 5, p, 0, 1
		store 10, p, 8, 1
		mov xmm0, real_const_0
		store xmm0, p, 16, 1
		load rbx, p, 0, 1
		load rcx, p, 8, 1
		mov rdx, rbx
		mul rdx, rcx
		mov z, rdx
		push rbx
		push rcx
		push rdx
		mov arg0, p
		call PROC_printPoint
		pop rdx
		pop rcx
		pop rbx
		print fmt_str, str_0
		print fmt_int, z
		print newline
		load xmm1, p, 16, 1
		print fmt_float, xmm1
		print newline
		free p
		done
	function PROC_printPoint:
		mov printPoint_pi, arg0
		alloc printPoint_px, 24, 1
		store 10, printPoint_px, 0, 1
		store 10, printPoint_px, 8, 1
		load rbx, printPoint_pi, 0, 1
		print fmt_int, rbx
		print fmt_str, str_1
		load rcx, printPoint_pi, 8, 1
		print fmt_int, rcx
		print newline
		load rdx, printPoint_px, 0, 1
		print fmt_int, rdx
		print fmt_str, str_1
		load rsi, printPoint_px, 8, 1
		print fmt_int, rsi
		print newline
	PROC_END_printPoint:
		free printPoint_px
		ret
	}
}