((declare (in) float aa) (declare (in) float ab) (declare (in) float b)
 (declare (in) float c)
 (function main
  (signature void (parameters)
   ((declare (temporary) bool execute_flag)
    (assign (x) (var_ref execute_flag) (constant bool (1)))
    (declare (temporary) bool return_flag)
    (assign (x) (var_ref return_flag) (constant bool (0)))
    (if (expression bool > (var_ref aa) (constant float (0.000000)))
     ((if (expression bool > (var_ref ab) (constant float (0.000000)))
       ((assign (x) (var_ref return_flag) (constant bool (1)))
        (assign (x) (var_ref execute_flag) (constant bool (0))))
       ()))
     ())
    (if (var_ref execute_flag)
     ((if (expression bool > (var_ref b) (constant float (0.000000)))
       ((if (expression bool > (var_ref c) (constant float (0.000000))) () ())
        (assign (x) (var_ref return_flag) (constant bool (1)))
        (assign (x) (var_ref execute_flag) (constant bool (0))))
       ()))
     ())))))
