I'm currently working with a huge set of assembly files (`~1TiB`) which have been obviously created with the help of IDA Pro. However, it should be mentioned that I currently only own a free version of IDA. For a project I need to perform analyses on the `mnemoircs` and `operands` on a subroutine level. Therefor I want to convert the IDA format in a plain assembly format, as the existing parser only works for "PLAIN ASM" files. The instructions are separated by a blank line for each subroutine. **IDA ASM** .text:00401000 ; =============== S U B R O U T I N E ======================================= .text:00401000 .text:00401000 ; Attributes: bp-based frame .text:00401000 .text:00401000 sub_401000 proc near ; CODE XREF: sub_43BD35+Ap .text:00401000 .text:00401000 var_C = dword ptr -0Ch .text:00401000 var_8 = dword ptr -8 .text:00401000 var_4 = dword ptr -4 .text:00401000 .text:00401000 55 push ebp .text:00401001 8B EC mov ebp, esp .text:00401003 83 EC 0C sub esp, 0Ch .text:00401006 89 4D F4 mov [ebp+var_C], ecx .text:00401009 8B 45 F4 mov eax, [ebp+var_C] .text:00401021 59 pop ecx .text:00401022 .text:00401022 loc_401022: ; CODE XREF: sub_401000+Fj .text:00401022 8B 45 F4 mov eax, [ebp+var_C] .text:00401025 83 78 04 00 cmp dword ptr [eax+4], 0 .text:00401029 74 12 jz short locret_40103D .text:0040102B 8B 45 F4 mov eax, [ebp+var_C] .text:0040102E 8B 40 04 mov eax, [eax+4] .text:00401031 89 45 F8 mov [ebp+var_8], eax .text:00401034 FF 75 F8 push [ebp+var_8] ; void * .text:00401037 E8 B8 0D 00 00 call ??3@YAXPAX@Z ; operator delete(void *) .text:0040103C 59 pop ecx .text:0040103D .text:0040103D locret_40103D: ; CODE XREF: sub_401000+29j .text:0040103D C9 leave .text:0040103E C3 retn .text:0040103E sub_401000 endp Convert to: **PLAIN ASM** =============== S U B R O U T I N E ======================================= push ebp mov ebp, esp sub esp, 0Ch mov [ebp+var_C], ecx mov eax, [ebp+var_C] pop ecx mov eax, [ebp+var_C] cmp dword ptr [eax+4], 0 jz short locret_40103D mov eax, [ebp+var_C] mov eax, [eax+4] mov [ebp+var_8], eax push [ebp+var_8] ; void * call ??3@YAXPAX@Z ; operator delete(void *) pop ecx leave retn **Question:** Are there solutions or scripts already existing for such a (automatically or batch-mode) conversion (at the best without needing a IDA non-free version)?