Igor’s Tip of the Week #166: Dealing with “too big function”

Occasionally you may run into the following error message:

[Warning]
Decompilation failure:
4612E0: too big function

Please refer to the manual to find appropriate actions

To ensure that the decompilation speed remains acceptable and does not block IDA, especially when using batch decompilation, by default the decompiler refuses to decompile the functions over 64 kilobytes (0x10000 bytes). But here we have function which is 3x as large:

sub_4612E0	.text	004612E0	000346E6	00007960

In such case you can manually increase the size to force the decompiler try decompile the function anyway. The limit can be increased temporarily or permanently.

To change the limit for current database only, open the decompiler options (Edit > Plugins > Hex-Rays Decompiler, Options):

Then change the setting in Analysis Options 3:

To change the default for all new databases, edit the parameter MAX_FUNCSIZE in hexrays.cfg.

Note that settings in the config file are only applied to new databases; for existing databases use the first approach.

Hint: instead of editing hexrays.cfg in IDA’s installation, create a new file with only the changed settings in the user directory. This way the settings will persist if you upgrade your IDA version.

See also:

Failures and troubleshooting (Hex-Rays Decompiler User Manual)

Igor’s tip of the week #82: Decompiler options: pseudocode formatting

Igor’s tip of the week #83: Decompiler options: default radix

Configuration (Hex-Rays Decompiler User Manual)