'Extract arguments and set them to
:param angr.sim_state.SimState state: The program state.
:param main: An argument to __libc_start_main.
:param argc: An argument to __libc_start_main.
:param argv: An argument to __libc_start_main.
:param init: An argument to __libc_start_main.
:param fini: An argument to __libc_start_main.
:return: A tuple of five elements: (main, argc, argv, init, fini)
:rtype: tuple'

@staticmethod
def _extract_args(state, main, argc, argv, init, fini):

    main_ = main
    argc_ = argc
    argv_ = argv
    init_ = init
    fini_ = fini
    if (state.arch.name == 'PPC32'):
        argv_ = argc_
        argc_ = main_
        main_ = state.mem[(state.regs.r8 + 4):].int.resolved
        init_ = state.mem[(state.regs.r8 + 8):].int.resolved
        fini_ = state.mem[(state.regs.r8 + 12):].int.resolved
    elif (state.arch.name == 'PPC64'):
        main_ = state.mem[(state.regs.r8 + 8):].long.resolved
        init_ = state.mem[(state.regs.r8 + 16):].long.resolved
        fini_ = state.mem[(state.regs.r8 + 24):].long.resolved
    return (main_, argc_, argv_, init_, fini_)
