http://bugs.winehq.org/show_bug.cgi?id=22064
--- Comment #51 from Mikko Rasa tdb@tdb.fi 2010-08-29 10:19:17 CDT --- Thanks, that was a vital piece of information. On windows, pBuffers[1] indeed contains the same data as pBuffers[0] does in wine. Apparently the launcher is hardcoded to look for the decrypted data in pBuffers[1].
I don't know how to fix Wine properly, but I made a totally ugly hack to copy the first buffer into the second, and this was enough to make the launcher happy:
--- BEGIN PATCH --- diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c index 7a3bb3c..8a607a1 100644 --- a/dlls/secur32/schannel.c +++ b/dlls/secur32/schannel.c @@ -1216,6 +1224,9 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle buffer->cbBuffer = received; HeapFree(GetProcessHeap(), 0, data);
+ if(idx==0) + message->pBuffers[1] = message->pBuffers[0]; + return SEC_E_OK; }
--- END PATCH ---
Now to figure out why Settlers 7 shows only a white screen in place of the menu and crashes shortly after.