Took a few hours to solve this.
Based on the debug text it seems obvious that the issue has to do with threads. Well turns out by using OllyDebug, it automatically triggers breakpoints on load. In doing so, it prevents this error from occurring. I have verified this by running the game in windowed mode 8 times, all of which crashed at either
1.) first flashbang thrown
or 2.) first player death ‘particles/weapons/muzzle_flashes/arifle_light_3rdperson’
I then loaded ollydbg to reverse trace the error msg to it’s event handler, hoping to thwart the throwing of exception, however found that the error no longer occurs.
So, what this means is we can resolve this problem simply by loading the game via debugger. However that means we must manually ‘continue’ on every breakpoint (~20 prior to entering a server/game). So, what I did was run olly, open brink.exe, after it has analyzed it - it will pause. Go to Options->Options->Debugging->Exceptions and check INT3. Notice below it has a box where you can add custom exceptions. Press ok.
Press “Play” button to continue debugging. It will pause again at the screen w/ bitmap logo, go to same place in options and check “Ignore also the following” and click “Add Current” button. For me that exception was: “406D1388” - a RtlRaiseException function call; and Click ok.
Now play again. Game will run fine, no crashing anymore.
It’s weird because olly is passing the exceptions to brink, yet it seems the mere fact that olly is debugging brink is indeed the fix for the crashing. Why? No idea… interesting how some claim that enabling log file fixes it, while others must increase thread priority. Both of which create lag at game startup. Olly actually pauses the game at startup, and that too has fixed it. Something isn’t being initialized properly… that’s my educated guess.
I intend to create an extremely trivial exe that will suspendThread @ startup, to see if it is the fact that olly is debugging that fixes it, or the fact that the game is paused at it’s thread initiation.