I would think a good place to start (if you don't see anything obvious) would be by "debugging" it. Unless you see possible issues right off the bat, a good place to start is to make a small list of test values. Good values are a 'happy path' (normal) value, a 'zero' or 'empty' value, nulls, a very small value (a 1-character string, the int 1, etc.), a very large or very long value, and 'strange' values specific to the type (e.g., Unicode characters for strings, negative numbers for ints, etc.). It wouldn't hurt here to mention that normally you would write unit tests using these values to test the code, and would just run those to verify the function.
Start by walking through with your happy-path value(s). For an addition function, you might start with 3 or 4. Examine each line for typos and logic errors, tracking the values of local variables as you go. Hopefully, you find a few bugs. When you get done with the happy path, you will have a better feel for the code and hopefully will feel a bit less overwhelmed - so say something like, "Now that I have a better feel for what this code is doing, I'm going to step back and take a look at it," then do just that - looking for things that stand out to you as things you would have done differently (bad design decisions, poorly named variables, investigate possible bugs, etc.).
If that isn't getting you anywhere, or if you feel like you've run out of things to say, return to your list of test values, and walk through it again with a new one that you think is likely to cause problems.
This will at least get you going.