This is the second part of an investigation where I tried to understand why an application was randomly crashing with an AccessViolationException. This part starts when, as I ran out of easy things to try, I decided to map the assembly code of the IsLockHeld method to the original C++ code to understand exactly where it crashed.