https://bugs.winehq.org/show_bug.cgi?id=46471
--- Comment #3 from Hans Leidekker hans@meelstraat.net --- (In reply to noabody from comment #0)
Created attachment 63291 [details] divide by zero 64-bit .wine prefix
This is clearly an issue with decryption mechanisms that touch nettle/gnutls and the internal wine bcrypt implementation. Although I cannot prove it, the indication is that recent changes require a processor with SSE4.1 instruction set.
The AES fallback implementation is broken in libgnutls. The question is why it is used on your system. There are several accelerated implementations, one of which uses the SSE3 instruction set.
How was your gnutls package built? Make sure it's not built without hardware acceleration support (enabled by default).
It could also be a problem with runtime detection of CPU capabilities. You can try overriding it by setting the GNUTLS_CPUID_OVERRIDE environment variable:
0x1: Disable all run-time detected optimizations 0x2: Enable AES-NI 0x4: Enable SSSE3 0x8: Enable PCLMUL 0x10: Enable AVX 0x100000: Enable VIA padlock 0x200000: Enable VIA PHE 0x400000: Enable VIA PHE SHA512
E.g. GNUTLS_CPUID_OVERRIDE=0x4 wine /path/to/keepass2.exe
Does that make a difference?