Some basic #IDA101 here: IDA does not support decompiling exception handlers; in other words, code that are within a catch block will not show up in the pseudocode view. A reminder that you should not blindly trust the pseudocode view. This is a very common anti-analysis method, where an exception is intentionally thrown, triggering the code within the catch block that will not show up in the decompiled view in IDA.
In Ghidra, the exception handler will be analyzed and put under Catch_All prefix; however, the pseudocode is now slightly misleading since it would say an exception is thrown, yet there is more reachable code underneath it, instead of hinting the user a try catch is present.
@AzakaSekai_ Is this a loader for a modified 9002 RAT? I have seen exactly the same anti-analysis technique in a few samples.
@AzakaSekai_ Do you have any more details on this? I compiled a test program with C++ exceptions and I don't see any references to the catch handlers. In your example, it seems like Ghidra continued to decompile after a non-returning function call (incorrect behavior).