static int parse_args(int argc, char **argv)

{

    const char *r;

    int optind;

    struct qemu_argument *arginfo;



    for (arginfo = arg_table; arginfo->handle_opt != NULL; arginfo++) {

        if (arginfo->env == NULL) {

            continue;

        }



        r = getenv(arginfo->env);

        if (r != NULL) {

            arginfo->handle_opt(r);

        }

    }



    optind = 1;

    for (;;) {

        if (optind >= argc) {

            break;

        }

        r = argv[optind];

        if (r[0] != '-') {

            break;

        }

        optind++;

        r++;

        if (!strcmp(r, "-")) {

            break;

        }



        for (arginfo = arg_table; arginfo->handle_opt != NULL; arginfo++) {

            if (!strcmp(r, arginfo->argv)) {

                if (optind >= argc) {

                    usage();

                }



                arginfo->handle_opt(argv[optind]);



                if (arginfo->has_arg) {

                    optind++;

                }



                break;

            }

        }



        /* no option matched the current argv */

        if (arginfo->handle_opt == NULL) {

            usage();

        }

    }



    if (optind >= argc) {

        usage();

    }



    filename = argv[optind];

    exec_path = argv[optind];



    return optind;

}

static int parse_args(int argc, char **argv)

{

    const char *r;

    int optind;

    struct qemu_argument *arginfo;



    for (arginfo = arg_table; arginfo->handle_opt != NULL; arginfo++) {

        if (arginfo->env == NULL) {

            continue;

        }



        r = getenv(arginfo->env);

        if (r != NULL) {

            arginfo->handle_opt(r);

        }

    }



    optind = 1;

    for (;;) {

        if (optind >= argc) {

            break;

        }

        r = argv[optind];

        if (r[0] != '-') {

            break;

        }

        optind++;

        r++;

        if (!strcmp(r, "-")) {

            break;

        }



        for (arginfo = arg_table; arginfo->handle_opt != NULL; arginfo++) {

            if (!strcmp(r, arginfo->argv)) {

                if (optind >= argc) {

                    usage();

                }



                arginfo->handle_opt(argv[optind]);



                if (arginfo->has_arg) {

                    optind++;

                }



                break;

            }

        }



        

        if (arginfo->handle_opt == NULL) {

            usage();

        }

    }



    if (optind >= argc) {

        usage();

    }



    filename = argv[optind];

    exec_path = argv[optind];



    return optind;

}

static int FUNC_0(int VAR_0, char **VAR_1)

{

    const char *VAR_2;

    int VAR_3;

    struct qemu_argument *VAR_4;



    for (VAR_4 = arg_table; VAR_4->handle_opt != NULL; VAR_4++) {

        if (VAR_4->env == NULL) {

            continue;

        }



        VAR_2 = getenv(VAR_4->env);

        if (VAR_2 != NULL) {

            VAR_4->handle_opt(VAR_2);

        }

    }



    VAR_3 = 1;

    for (;;) {

        if (VAR_3 >= VAR_0) {

            break;

        }

        VAR_2 = VAR_1[VAR_3];

        if (VAR_2[0] != '-') {

            break;

        }

        VAR_3++;

        VAR_2++;

        if (!strcmp(VAR_2, "-")) {

            break;

        }



        for (VAR_4 = arg_table; VAR_4->handle_opt != NULL; VAR_4++) {

            if (!strcmp(VAR_2, VAR_4->VAR_1)) {

                if (VAR_3 >= VAR_0) {

                    usage();

                }



                VAR_4->handle_opt(VAR_1[VAR_3]);



                if (VAR_4->has_arg) {

                    VAR_3++;

                }



                break;

            }

        }



        

        if (VAR_4->handle_opt == NULL) {

            usage();

        }

    }



    if (VAR_3 >= VAR_0) {

        usage();

    }



    filename = VAR_1[VAR_3];

    exec_path = VAR_1[VAR_3];



    return VAR_3;

}

static int FUNC_0(int VAR_0, char **VAR_1)
{ const char *VAR_2; int VAR_3; struct qemu_argument *VAR_4; for (VAR_4 = arg_table; VAR_4->handle_opt != NULL; VAR_4++) { if (VAR_4->env == NULL) { continue; } VAR_2 = getenv(VAR_4->env); if (VAR_2 != NULL) { VAR_4->handle_opt(VAR_2); } } VAR_3 = 1; for (;;) { if (VAR_3 >= VAR_0) { break; } VAR_2 = VAR_1[VAR_3]; if (VAR_2[0] != '-') { break; } VAR_3++; VAR_2++; if (!strcmp(VAR_2, "-")) { break; } for (VAR_4 = arg_table; VAR_4->handle_opt != NULL; VAR_4++) { if (!strcmp(VAR_2, VAR_4->VAR_1)) { if (VAR_3 >= VAR_0) { usage(); } VAR_4->handle_opt(VAR_1[VAR_3]); if (VAR_4->has_arg) { VAR_3++; } break; } } if (VAR_4->handle_opt == NULL) { usage(); } } if (VAR_3 >= VAR_0) { usage(); } filename = VAR_1[VAR_3]; exec_path = VAR_1[VAR_3]; return VAR_3; }