I'd go for B. It took a long time to grasp the finer details, the descriptions available are not totally explicit. But once understood it was quite easy to build and test in stages.
However, I strongly feel the calling conventions are poor for high level languages, and this applies to both the Windows and Linux standards. We would have been better off staying with stdcall and cdecl, and it would have made compiler/OS migration so much easier.
Charles