A method comprising: identifying a plurality of functions defined within a binary software component, each of the plurality of functions including one or more instructions; determining one or more complexity characteristics of the each of the plurality of functions based on the included instructions, wherein determining one or more complexity characteristics comprises determining a conditional branch ratio for a respective function by dividing a number of instructions that are conditional branch instructions (220a, 220b, 220c) in the respective function by a number of instructions included in the respective function; determining an average conditional branch ratio based on the conditional branch ratio for each of the plurality of functions; determining, based on the complexity characteristics, whether each of the plurality of functions is likely to produce errors when the instructions included in the respective function are executed by a processor, wherein determining, based on the complexity characteristics, whether each of the plurality of functions is likely to produce errors comprises: comparing the conditional branch ratio of the respective function to a threshold conditional branch ratio, the threshold conditional branch ratio being based on the average conditional branch ratio of the plurality of functions, and determining that the function is likely to produce errors if the conditional branch ratio of the respective function is greater than the threshold conditional branch ratio; and in response to determining that the respective function is likely to contain errors, generating an indication that the respective function requires further review. identifying a plurality of functions defined within a binary software component, each of the plurality of functions including one or more instructions; determining one or more complexity characteristics of the each of the plurality of functions based on the included instructions, wherein determining one or more complexity characteristics comprises determining a conditional branch ratio for a respective function by dividing a number of instructions that are conditional branch instructions (220a, 220b, 220c) in the respective function by a number of instructions included in the respective function; determining an average conditional branch ratio based on the conditional branch ratio for each of the plurality of functions; determining, based on the complexity characteristics, whether each of the plurality of functions is likely to produce errors when the instructions included in the respective function are executed by a processor, wherein determining, based on the complexity characteristics, whether each of the plurality of functions is likely to produce errors comprises: comparing the conditional branch ratio of the respective function to a threshold conditional branch ratio, the threshold conditional branch ratio being based on the average conditional branch ratio of the plurality of functions, and determining that the function is likely to produce errors if the conditional branch ratio of the respective function is greater than the threshold conditional branch ratio; and comparing the conditional branch ratio of the respective function to a threshold conditional branch ratio, the threshold conditional branch ratio being based on the average conditional branch ratio of the plurality of functions, and determining that the function is likely to produce errors if the conditional branch ratio of the respective function is greater than the threshold conditional branch ratio; and in response to determining that the respective function is likely to contain errors, generating an indication that the respective function requires further review.