#include static main() { auto str_names, addrs_base; auto fn_base, fn_names; auto s_len, s_type, f_name, name_len; str_names = AskStr("", "Function names"); addrs_base = AskStr("", "Addrs base"); fn_names = xtol(str_names); fn_base = xtol(addrs_base); Message("names @ %X\n", fn_names); Message("base @ %X\n", fn_base); if (fn_names != 0 && fn_base != 0) { s_len = -1; f_name = GetString(fn_names,s_len, s_type); name_len = strlen(f_name); while(name_len > 0) { Message("%X [%s]\n", fn_names, f_name); // prepare array entry MakeUnkn(fn_base, DOUNK_SIMPLE); MakeDword(fn_base); if (!MakeNameEx(fn_base, f_name, SN_PUBLIC)) { f_name = "fn_" + f_name; // sometimes there could be a clash of names if (!MakeNameEx(fn_base, f_name, SN_PUBLIC)) break; Message("switch to alt-name\n"); } fn_base = fn_base + 4; fn_names = fn_names + name_len + 1; f_name = GetString(fn_names,s_len, s_type); name_len = strlen(f_name); } } else Message("[ERR] base/names is NULL\n"); }