let (global print_string : (char*) -> int)(v_847) = let print_string_848 = $external(%print_string : (char*) -> int, v_847) in $return print_string_848 in let make_var_defs_expr_849 : int = 0 in let (global print_int : (int) -> int)(v_850) = let print_int_851 = $external(%print_int : (int) -> int, v_850) in $return print_int_851 in let make_var_defs_expr_852 : int = 0 in let type item_853 = struct { int index; char[10] data; } in let (global qsort : (item_853*, ((item_853, item_853) -> int)*, int) -> int)( a_854, compare_855, len_856) = let (make_seq_rest_fun_857 : (int) -> int)(make_seq_expr_858) = $return make_seq_expr_858 in let (global partition_859 : (int, int) -> int)(low_860, high_861) = let (make_seq_rest_fun_862 : (int) -> int)(make_seq_expr_863) = $return make_seq_expr_863 in let subscript_expr_864 : item_853 = a_854[low_860] in let x_865 : item_853 = copy(subscript_expr_864) in let make_var_defs_expr_866 : int = 0 in let make_scalar_867 : int = 1 in let binop_expr_868 : int = low_860 - make_scalar_867 in let i_869 : int = copy(binop_expr_868) in let make_var_defs_expr_870 : int = 0 in let make_scalar_871 : int = 1 in let binop_expr_872 : int = high_861 + make_scalar_871 in let j_873 : int = copy(binop_expr_872) in let make_var_defs_expr_874 : int = 0 in let (break_sym_875 : () -> int)() = let make_while_expr_876 : int = 0 in make_seq_rest_fun_862(make_while_expr_876) in let (make_while_body_877 : () -> int)() = let make_scalar_878 : int = 1 in if make_scalar_878 == 0 then break_sym_875() else let (make_seq_rest_fun_879 : (int) -> int)(make_seq_expr_880) = make_while_body_877() in let (break_sym_881 : () -> int)() = let make_while_expr_882 : int = 0 in let (break_sym_883 : () -> int)() = let make_while_expr_884 : int = 0 in let (relop_expr_fun_885 : (int) -> int)( relop_expr_886) = let (make_if_cont_fun_887 : (int) -> int)(make_if_cont_arg_888) = make_seq_rest_fun_879( make_if_cont_arg_888) in if relop_expr_886 == 0 then $return j_873 else let (make_seq_rest_fun_889 : (int) -> int)(make_seq_expr_890) = make_if_cont_fun_887( make_seq_expr_890) in let subscript_expr_891 : item_853 = a_854[i_869] in let temp_892 : item_853 = copy(subscript_expr_891) in let make_var_defs_expr_893 : int = 0 in let subscript_expr_894 : item_853 = a_854[j_873] in let assign_subscript_895 : item_853 = subscript_expr_894 in a_854[i_869] : item_853 <- assign_subscript_895; let assign_subscript_896 : item_853 = temp_892 in a_854[j_873] : item_853 <- assign_subscript_896; let make_scalar_897 : int = 0 in make_seq_rest_fun_889( make_scalar_897) in if i_869 < j_873 then relop_expr_fun_885(1) else relop_expr_fun_885(0) in let (make_while_body_898 : () -> int)( ) = let coerce_fun_899 : (item_853, item_853) -> int = (fun) compare_855 in let uarith_expr_900 : int = i_869 + 1 in i_869 : int <- uarith_expr_900; let subscript_expr_901 : item_853 = a_854[uarith_expr_900] in let apply_expr_902 : int = coerce_fun_899(subscript_expr_901, x_865) in let make_scalar_903 : int = 0 in let (relop_expr_fun_904 : (int) -> int)( relop_expr_905) = if relop_expr_905 == 0 then break_sym_883() else let make_seq_expr_906 : int = 0 in make_while_body_898() in if apply_expr_902 < make_scalar_903 then relop_expr_fun_904(1) else relop_expr_fun_904(0) in make_while_body_898() in let (make_while_body_907 : () -> int)() = let coerce_fun_908 : (item_853, item_853) -> int = (fun) compare_855 in let uarith_expr_909 : int = j_873 - 1 in j_873 : int <- uarith_expr_909; let subscript_expr_910 : item_853 = a_854[uarith_expr_909] in let apply_expr_911 : int = coerce_fun_908(subscript_expr_910, x_865) in let make_scalar_912 : int = 0 in let (relop_expr_fun_913 : (int) -> int)( relop_expr_914) = if relop_expr_914 == 0 then break_sym_881() else let make_seq_expr_915 : int = 0 in make_while_body_907() in if apply_expr_911 > make_scalar_912 then relop_expr_fun_913(1) else relop_expr_fun_913(0) in make_while_body_907() in make_while_body_877() in let (global quicksort_916 : (int, int) -> int)(low_917, high_918) = let (make_seq_rest_fun_919 : (int) -> int)(make_seq_expr_920) = $return make_seq_expr_920 in let (relop_expr_fun_921 : (int) -> int)(relop_expr_922) = let unop_expr_923 : int = !relop_expr_922 in let (make_if_cont_fun_924 : (int) -> int)(make_if_cont_arg_925) = let apply_expr_926 : int = partition_859(low_917, high_918) in let mid_927 : int = copy(apply_expr_926) in let make_var_defs_expr_928 : int = 0 in let apply_expr_929 : int = quicksort_916(low_917, mid_927) in let make_scalar_930 : int = 1 in let binop_expr_931 : int = mid_927 + make_scalar_930 in let apply_expr_932 : int = quicksort_916(binop_expr_931, high_918) in make_seq_rest_fun_919(apply_expr_932) in if unop_expr_923 == 0 then make_if_cont_fun_924(0) else let make_scalar_933 : int = 0 in $return make_scalar_933 in if low_917 < high_918 then relop_expr_fun_921(1) else relop_expr_fun_921(0) in let make_scalar_934 : int = 0 in let make_scalar_935 : int = 1 in let binop_expr_936 : int = len_856 - make_scalar_935 in let apply_expr_937 : int = quicksort_916(make_scalar_934, binop_expr_936) in $return apply_expr_937 in let (global main : (int, char**) -> int)(argc_938, argv_939) = let (make_seq_rest_fun_940 : (int) -> int)(make_seq_expr_941) = $return make_seq_expr_941 in let a_942 : item_853[10] = uninitialized in let make_var_defs_expr_943 : int = 0 in let i_944 : int = uninitialized in let make_var_defs_expr_945 : int = 0 in let (global compare_946 : (item_853, item_853) -> int)(a_947, b_948) = let (make_seq_rest_fun_949 : (int) -> int)(make_seq_expr_950) = $return make_seq_expr_950 in let addr_of_var_951 : item_853* = &a_947 in let project_expr_952 : int = addr_of_var_951->index in let addr_of_var_953 : item_853* = &b_948 in let project_expr_954 : int = addr_of_var_953->index in let binop_expr_955 : int = project_expr_952 - project_expr_954 in make_seq_rest_fun_949(binop_expr_955) in let make_scalar_956 : int = 7 in let make_scalar_957 : int = 0 in let addr_of_subscript_958 : item_853[10] = &a_942[make_scalar_957] in let assign_project_959 : int = make_scalar_956 in addr_of_subscript_958->index : int <- make_scalar_956; let make_scalar_960 : int = 5 in let make_scalar_961 : int = 1 in let addr_of_subscript_962 : item_853[10] = &a_942[make_scalar_961] in let assign_project_963 : int = make_scalar_960 in addr_of_subscript_962->index : int <- make_scalar_960; let make_scalar_964 : int = 2 in let make_scalar_965 : int = 2 in let addr_of_subscript_966 : item_853[10] = &a_942[make_scalar_965] in let assign_project_967 : int = make_scalar_964 in addr_of_subscript_966->index : int <- make_scalar_964; let make_scalar_968 : int = 12 in let make_scalar_969 : int = 3 in let addr_of_subscript_970 : item_853[10] = &a_942[make_scalar_969] in let assign_project_971 : int = make_scalar_968 in addr_of_subscript_970->index : int <- make_scalar_968; let make_scalar_972 : int = 4 in let make_scalar_973 : int = 4 in let addr_of_subscript_974 : item_853[10] = &a_942[make_scalar_973] in let assign_project_975 : int = make_scalar_972 in addr_of_subscript_974->index : int <- make_scalar_972; let make_scalar_976 : int = 5 in let make_scalar_977 : int = 5 in let addr_of_subscript_978 : item_853[10] = &a_942[make_scalar_977] in let assign_project_979 : int = make_scalar_976 in addr_of_subscript_978->index : int <- make_scalar_976; let make_scalar_980 : int = 0 in let make_scalar_981 : int = 6 in let addr_of_subscript_982 : item_853[10] = &a_942[make_scalar_981] in let assign_project_983 : int = make_scalar_980 in addr_of_subscript_982->index : int <- make_scalar_980; let make_scalar_984 : int = 10 in let make_scalar_985 : int = 7 in let addr_of_subscript_986 : item_853[10] = &a_942[make_scalar_985] in let assign_project_987 : int = make_scalar_984 in addr_of_subscript_986->index : int <- make_scalar_984; let make_scalar_988 : int = 1 in let make_scalar_989 : int = 8 in let addr_of_subscript_990 : item_853[10] = &a_942[make_scalar_989] in let assign_project_991 : int = make_scalar_988 in addr_of_subscript_990->index : int <- make_scalar_988; let make_scalar_992 : int = 11 in let make_scalar_993 : int = 9 in let addr_of_subscript_994 : item_853[10] = &a_942[make_scalar_993] in let assign_project_995 : int = make_scalar_992 in addr_of_subscript_994->index : int <- make_scalar_992; let make_scalar_996 : int = 10 in let coerce_fun_pointer_997 : ((item_853, item_853) -> int)* = (fun *) compare_946 in let apply_expr_998 : int = qsort(a_942, coerce_fun_pointer_997, make_scalar_996) in let (make_seq_rest_fun_999 : (int) -> int)(make_seq_expr_1000) = let make_scalar_1001 : int = 0 in $return make_scalar_1001 in let make_scalar_1002 : int = 0 in let assign_var_1003 : int = make_scalar_1002 in i_944 : int <- assign_var_1003; let (break_sym_1004 : () -> int)() = let make_while_expr_1005 : int = 0 in make_seq_rest_fun_999(make_while_expr_1005) in let (make_while_body_1006 : () -> int)() = let make_scalar_1007 : int = 10 in let (relop_expr_fun_1008 : (int) -> int)(relop_expr_1009) = if relop_expr_1009 == 0 then break_sym_1004() else let (make_seq_rest_fun_1010 : (int) -> int)(make_seq_expr_1011) = make_while_body_1006() in let (make_seq_rest_fun_1012 : (int) -> int)(make_seq_expr_1013) = let uarith_expr_1014 : int = i_944 in let uarith_expr_temp_1015 : int = i_944 + 1 in i_944 : int <- uarith_expr_temp_1015; make_seq_rest_fun_1010(uarith_expr_1014) in let make_string_1016 = "a[" in let apply_expr_1017 : int = print_string(make_string_1016) in let apply_expr_1018 : int = print_int(i_944) in let make_string_1019 = "].index=" in let apply_expr_1020 : int = print_string(make_string_1019) in let addr_of_subscript_1021 : item_853[10] = &a_942[i_944] in let project_expr_1022 : int = addr_of_subscript_1021->index in let apply_expr_1023 : int = print_int(project_expr_1022) in let make_string_1024 = "\n" in let apply_expr_1025 : int = print_string(make_string_1024) in make_seq_rest_fun_1012(apply_expr_1025) in if i_944 != make_scalar_1007 then relop_expr_fun_1008(1) else relop_expr_fun_1008(0) in make_while_body_1006() in $return 0