Данный IDC-скрипт генерирует ассемблерный код функции в нотации, принимаемой на вход утилитой алгоритмизации DeMono.
С помощью online сервиса проекта можно восстановить архитектуру и алгоритмы полученного таким образом кода.

// Generate asm for current function

#include <idc.idc>

#define DEF_FILE_NAME "funct.asm"

static processFunction(ea, file){
  auto functName, functStart, functEnd, comment, index;

  functName = GetFunctionName(ea);
  functStart = GetFunctionAttr(ea, FUNCATTR_START);
  functEnd = GetFunctionAttr(ea, FUNCATTR_END);

  comment = GetFunctionCmt(ea, 0);
  if(comment != "")
    fprintf(file, "// %s\n", comment);
  fprintf(file, "// Function '%s' {0x%08lX-0x%08lX}\n", functName, functStart, functEnd);
  fprintf(file, "%s(){\n", functName);

  for(ea = functStart; (ea < functEnd) && (ea != BADADDR); ea = NextHead(ea, BADADDR)){
    auto label, instr, lineA, refC;

    // Prior line (only one line)
    lineA = LineA(ea, 0);
    if(lineA != 0)
      fprintf(file, "// %s", lineA);

    // Label
    label = NameEx(BADADDR, ea);
    if(label != 0)
      fprintf(file, "\n0x%.8X: %s:\n", ea, label);

    // Instructions
    instr = GetDisasm(ea);
    if(instr == "")
      continue;

    if((index = strstr(instr, "#")) != -1){
      instr = substr(instr, 0, index) + "//" + substr(instr, index + 1, -1);
    }

    fprintf(file, "0x%.8X: %s\n", ea, instr);
  }

  fprintf(file, "}\n");
}

static main() {
  auto ea;
  auto file, fileName;
  auto idArray, index, indexLast;

  fileName = AskFile(1, DEF_FILE_NAME, "Enter file name for generate function's assembler");
  if(fileName == "")
    return -1;

  file = fopen(fileName, "w");
  if(file == 0){
    Message("Can't open file '%s'\n", fileName);
    return -1;
  }

  processFunction(ScreenEA(), file);

  fclose(file);
  return 0;
}