Windows x64 functions always assume there is at least 4 QWORDs' length of space reserved for register parameters (RCX, RDX, R8 and R9) after the caller return address even though there are less than 4 parameters. MSVC compiler will try to utilize vacant space there. If we forget to reserve that block, the exception handler will abort. Reference: https://docs.microsoft.com/en-us/cpp/build/stack-usage