// Вывести список функций вместе с комментариями
#include <idc.idc>

static main (void) {
    auto file, fstart, fend, fname, cmt, color;
    auto xref, xcount;

    Jump (0x401000);
    file = fopen ("gta_funcs.txt", "wb");
    fstart = GetFunctionAttr (ScreenEA(), FUNCATTR_START);

while (fstart >= 0 && fstart < 0x748F20) {
//  while (fstart >= 0 && fstart < 0x5E437C) {
        fend = GetFunctionAttr (fstart, FUNCATTR_END);
        color = GetFunctionAttr (fstart, FUNCATTR_COLOR);
        fname = GetFunctionName (fstart);
	cmt = GetFunctionCmt (fstart, 1);
	if (cmt != "")
            cmt = "\t; "+cmt;
        fprintf (file, "%08x\t%d\t%08x\t%s%s\n", fstart, fend-fstart+1, color, fname, cmt);
/*
	// вывод перекрестных ссылок на функцию
        xcount = 0;
        for (xref = RfirstB (fstart); xref != BADADDR; xref = RnextB (fstart, xref)) {
            xcount++;
            fprintf (file, "\tXREF CODE: %08x (%s)\n", xref, GetFunctionName (xref));
        }
        for (xref = DfirstB (fstart); xref != BADADDR; xref = DnextB (fstart, xref)) {
            xcount++;
            fprintf (file, "\tXREF DATA: %08x\n", xref);
        }
*/
        fstart = NextFunction (fstart);
    }

    fclose (file);
}
