object StringUtils {
	section module {
 		io
	}
	section data {
		int rax = 0
		int rbx = 0
		float xmm0 = 0.0
		ptr arg0 = null
		string str_0 = "=== "
		string str_1 = " ==="
		string str_2 = "------------------------"
		string str_3 = "  "
		string str_4 = ": "
		string str_5 = "-"
		string fmt_int = "%lld "
		string fmt_str = "%s "
		string fmt_float = "%.6f "
		string newline = "\n"
		ptr PrintHeader_title = null
		ptr PrintLabeledInt_lbl = null
		int PrintLabeledInt_value = 0
		ptr PrintLabeledReal_lbl = null
		float PrintLabeledReal_value = 0.0
		ptr PrintBanner_msg = null
		int PrintBanner_width = 0
		int PrintBanner_i = 0
		ptr PrintRepeat_ch = null
		int PrintRepeat_count = 0
		int PrintRepeat_i = 0
	}
	section code {
	function PROC_UNIT_INIT:
		ret
	function PROC_PrintHeader:
		mov PrintHeader_title, arg0
		print fmt_str, str_0
		print fmt_str, PrintHeader_title
		print fmt_str, str_1
		print newline
	PROC_END_PrintHeader:
		ret
	function PROC_PrintSeparator:
		print fmt_str, str_2
		print newline
	PROC_END_PrintSeparator:
		ret
	function PROC_PrintLabeledInt:
		mov PrintLabeledInt_lbl, arg0
		mov PrintLabeledInt_value, rbx
		print fmt_str, str_3
		print fmt_str, PrintLabeledInt_lbl
		print fmt_str, str_4
		print fmt_int, PrintLabeledInt_value
		print newline
	PROC_END_PrintLabeledInt:
		ret
	function PROC_PrintLabeledReal:
		mov PrintLabeledReal_lbl, arg0
		mov PrintLabeledReal_value, xmm0
		print fmt_str, str_3
		print fmt_str, PrintLabeledReal_lbl
		print fmt_str, str_4
		print fmt_float, PrintLabeledReal_value
		print newline
	PROC_END_PrintLabeledReal:
		ret
	function PROC_PrintBanner:
		mov PrintBanner_msg, arg0
		mov PrintBanner_width, rbx
		mov PrintBanner_i, 1
	FOR_0:
		cmp PrintBanner_i, PrintBanner_width
		jg ENDFOR_1
		print fmt_str, str_5
	FOR_CONTINUE_2:
		add PrintBanner_i, 1
		jmp FOR_0
	ENDFOR_1:
		print newline
		print fmt_str, PrintBanner_msg
		print newline
		mov PrintBanner_i, 1
	FOR_3:
		cmp PrintBanner_i, PrintBanner_width
		jg ENDFOR_4
		print fmt_str, str_5
	FOR_CONTINUE_5:
		add PrintBanner_i, 1
		jmp FOR_3
	ENDFOR_4:
		print newline
	PROC_END_PrintBanner:
		ret
	function PROC_PrintRepeat:
		mov PrintRepeat_ch, arg0
		mov PrintRepeat_count, rbx
		mov PrintRepeat_i, 1
	FOR_6:
		cmp PrintRepeat_i, PrintRepeat_count
		jg ENDFOR_7
		print fmt_str, PrintRepeat_ch
	FOR_CONTINUE_8:
		add PrintRepeat_i, 1
		jmp FOR_6
	ENDFOR_7:
		print newline
	PROC_END_PrintRepeat:
		ret
	}
}