https://bugs.winehq.org/show_bug.cgi?id=37845
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://free-dl.ptc.com/inst |https://web.archive.org/web |all/pim_installmgr_mathcad. |/20150427071145/free-dl.ptc |exe |.com/install/pim_installmgr | |_mathcad.exe
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Adding stable link to old installer using Internet Archive.
https://web.archive.org/web/20150427071145/free-dl.ptc.com/install/pim_insta...
Extract the inner installer:
--- snip --- $ mkdir -p installer_unpacked && cd $_
$ 7z x ../pim_installmgr_mathcad.exe
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=en_US.utf8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz (306C3),ASM,AES-NI)
Scanning the drive for archives: 1 file, 19903496 bytes (19 MiB)
Extracting archive: ../pim_installmgr_mathcad.exe -- Path = ../pim_installmgr_mathcad.exe Type = 7z Offset = 93451 Physical Size = 19810045 Headers Size = 3065 Method = LZMA:26 BCJ2 Solid = + Blocks = 2
Everything is Ok
Folders: 30 Files: 163 Size: 60153296 Compressed: 19903496
$ tree --charset=ANSI -L 3 . |-- export_affirmation.pdf |-- msvcp110.dll |-- msvcr110.dll |-- pim | |-- i486_nt | | |-- asyncoremt.dll | | |-- baselibmt.dll | | |-- btkzlibmt.dll | | |-- coretools_sh.dll | | |-- coreutils_sh.dll | | |-- dlmmgrmt.dll | | |-- i18nmt.dll | | |-- ic_sh.dll | | |-- installmgr.dll | | |-- ipc_comms_sh.dll | | |-- libbrowser_api_sh.dll | | |-- libui_sh.dll | | |-- licommonmt.dll | | |-- limanifestmt.dll | | |-- lutilsmt.dll | | |-- msvcp110.dll | | |-- msvcr110.dll | | |-- rtlcoremt.dll | | |-- srvcmgrmt.dll | | |-- ucore46.dll | | |-- udata46.dll | | |-- uitools_sh.dll | | |-- utfstrmt.dll | | |-- xercesc280mt.dll | | `-- zbutils_sh.dll | |-- proe | | `-- uitools | |-- text | | |-- chinese_cn | | |-- chinese_tw | | |-- compiled_resource | | |-- eula | | |-- french | | |-- german | | |-- italian | | |-- japanese | | |-- korean | | |-- license.res | | |-- pro_i18n.res | | |-- russian | | |-- spanish | | `-- usascii | `-- xml | `-- sessioninfo.xml `-- setup.exe
18 directories, 32 files --- snip ---
Run the inner installer:
--- snip --- $ WINEDEBUG=+seh,+loaddll,+process,+wininet,+urlmon wine ./setup.exe -mathcad -applications mathcad.xml:mathcadpdsi.xml:qualityagent.xml:dotnet4.xml ... 0031:trace:wininet:INTERNET_SendCallback end callback(). 0031:trace:wininet:gzip_read (8192 0) 0031:trace:wininet:chunked_read state 2 0031:trace:wininet:chunked_read state 2 0031:trace:wininet:NETCON_recv received 861 bytes 0031:trace:wininet:chunked_read state 3 0031:trace:wininet:chunked_read state 3 0031:trace:wininet:chunked_read state 0 0031:trace:wininet:chunked_read state 0 0031:trace:wininet:chunked_read reading 0 byte chunk 0031:trace:wininet:chunked_read state 1 0031:trace:wininet:chunked_read state 1 0031:trace:wininet:chunked_read state 4 0031:trace:wininet:chunked_read state 4 0031:trace:wininet:chunked_read state 5 0031:trace:wininet:chunked_read read 1178 bytes 0031:trace:wininet:gzip_read end of data 0031:trace:wininet:gzip_read read 5781 bytes 0031:trace:wininet:refill_read_buffer read 5781 bytes, read_size 5781 0031:trace:wininet:INTERNET_SendCallback callback(0x7ca9fa89) (0x5 (0x24bf1b8), 024da7b0, 41 (INTERNET_STATUS_RESPONSE_RECEIVED), 0xbeab928, 4) 0031:warn:urlmon:internet_status_callback Unhandled Internet status callback 41 0031:trace:wininet:INTERNET_SendCallback end callback(). 0031:trace:wininet:WININET_Release object 0x24bf1b8 refcount = 1 0031:trace:wininet:InternetReadFile 0x5 0xbeadc07 5781 0xbeab9cc 0031:trace:wininet:WININET_AddRef 0x24bf1b8 -> refcount = 2 0031:trace:wininet:get_handle_object handle 5 -> 0x24bf1b8 0031:trace:wininet:HTTPREQ_ReadFile (0x24bf1b8 0xbeadc07 5781 0) 0031:trace:wininet:WININET_Release object 0x24bf1b8 refcount = 1 0031:trace:wininet:InternetReadFile -- TRUE (0) (bytes read: 5781) 0031:trace:urlmon:protocol_read current_position 63125, available_bytes 0 0031:trace:wininet:InternetQueryDataAvailable (0x5 0x24da830 0 0) 0031:trace:wininet:WININET_AddRef 0x24bf1b8 -> refcount = 2 0031:trace:wininet:get_handle_object handle 5 -> 0x24bf1b8 0031:trace:wininet:HTTPREQ_QueryDataAvailable (0x24bf1b8 0x24da830 0 0) 0031:trace:wininet:WININET_Release object 0x24bf1b8 refcount = 1 0031:trace:urlmon:BPInternetProtocolSink_ReportData (0x21be98)->(6 63125 0) 0031:trace:urlmon:BPInternetProtocolSink_ReportResult (0x21be98)->(00000000 0 (null)) 0031:trace:urlmon:ProtocolStream_Read (0x24e1c28)->(0xbeabc04 16383 0xbeabb8c) 0031:trace:urlmon:BindProtocol_Read (0x21be98)->(0xbeabc04 16383 0xbeabb14) 0031:trace:urlmon:ProtocolHandler_Read (0x21be98)->(0xbeabc04 16383 0xbeabb14) 0031:trace:urlmon:HttpProtocol_Read (0x24da7b0)->(0xbeabc04 16383 0xbeaba60) Segmentation fault (core dumped) --- snip ---
It now core dumps every time which is even worse. Sadly native 'urlmon' and 'wininet' from 'winetricks -q ie8' recipe don't help here anymore - it just keeps hanging. Wine-Staging doesn't help either.
Using pure gdb to see the SIGSEGV:
--- snip --- Thread 8 "setup.exe" received signal SIGSEGV, Segmentation fault. [Switching to LWP 22627] 0x00a7828e in ?? () (gdb) bt #0 0x00a7828e in ?? () #1 0x007f5d30 in ?? () #2 0x005a8656 in ?? () #3 0x005a651e in ?? () #4 0x006e0072 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) info reg eax 0x20 32 ecx 0x36a4f7c 57298812 edx 0x36b9f60 57384800 ebx 0x0 0 esp 0x10419244 0x10419244 ebp 0x10419f24 0x10419f24 esi 0x10424000 272777216 edi 0x1041a690 272737936 eip 0xa7828e 0xa7828e eflags 0x10283 [ CF SF IF RF ] cs 0x23 35 ss 0x2b 43 ds 0x2b 43 es 0x2b 43 fs 0x63 99 gs 0x6b 107
(gdb) info thread Id Target Id Frame 1 LWP 22581 "setup.exe" 0xf7ffdb59 in ?? () 3 LWP 22619 "setup.exe" 0xf7ffdb59 in ?? () 4 LWP 22620 "setup.exe" 0xf7ffdb59 in ?? () 6 LWP 22622 "setup.exe" 0xf7ffdb59 in ?? () 7 LWP 22624 "setup.exe" 0xf7ffdb59 in ?? () * 8 LWP 22627 "setup.exe" 0x00a7828e in ?? ()
(gdb) disas 0x00a78230, +100 Dump of assembler code from 0xa78230 to 0xa78294: 0x00a78230: add $0x2,%ecx 0x00a78233: cmp %ebx,%esi 0x00a78235: jne 0xa78220 0x00a78237: mov -0x10(%ebp),%ecx 0x00a7823a: mov %esi,-0x28(%ebp) 0x00a7823d: jmp 0xa781c2 0x00a7823f: mov -0x18(%ebp),%ecx 0x00a78242: mov -0x54(%ebp),%eax 0x00a78245: mov -0x40(%ebp),%edx 0x00a78248: sub %edx,%eax 0x00a7824a: mov $0x0,%edi 0x00a7824f: cmovs %edi,%eax 0x00a78252: lea (%esi,%eax,2),%eax 0x00a78255: cmp %ecx,%esi 0x00a78257: je 0xa78271 0x00a78259: mov $0x30,%edi 0x00a7825e: mov %edi,%edi 0x00a78260: cmp %eax,%esi 0x00a78262: je 0xa7826e 0x00a78264: mov %di,(%esi) 0x00a78267: add $0x2,%esi 0x00a7826a: cmp %ecx,%esi 0x00a7826c: jne 0xa78260 0x00a7826e: mov %esi,-0x28(%ebp) 0x00a78271: mov -0x18(%ebp),%edi 0x00a78274: xor %ecx,%ecx 0x00a78276: test %edx,%edx 0x00a78278: mov %edx,%eax 0x00a7827a: cmovs %ecx,%eax 0x00a7827d: mov -0x2c(%ebp),%ecx 0x00a78280: lea (%ecx,%eax,2),%edx 0x00a78283: cmp %edi,%esi 0x00a78285: je 0xa7829e 0x00a78287: cmp %edx,%ecx 0x00a78289: je 0xa7829b 0x00a7828b: mov (%ecx),%ax => 0x00a7828e: mov %ax,(%esi) 0x00a78291: add $0x2,%esi End of assembler dump. --- snip ---
--- snip --- ... 008e0000-008e1000 r--p 00000000 fd:03 1707047 /home/focht/Downloads/install/pim/i486_nt/baselibmt.dll 008e1000-009ab000 r-xp 00000000 00:00 0 009ab000-00a32000 r--p 00000000 00:00 0 00a32000-00a39000 rw-p 00000000 00:00 0 00a39000-00a4a000 r--p 00000000 00:00 0 00a4a000-00a50000 ---p 00000000 00:00 0 00a50000-00a51000 r--p 00000000 fd:03 1707144 /home/focht/Downloads/install/pim/i486_nt/rtlcoremt.dll 00a51000-00a7c000 r-xp 00000000 00:00 0 00a7c000-00a8a000 r--p 00000000 00:00 0 00a8a000-00a9e000 rw-p 00000000 00:00 0 00a9e000-00aa3000 r--p 00000000 00:00 0 00aa3000-00ab0000 ---p 00000000 00:00 0 00ab0000-00ab1000 r--p 00000000 fd:03 1707059 /home/focht/Downloads/install/pim/i486_nt/i18nmt.dll 00ab1000-00ad9000 r-xp 00000000 00:00 0 00ad9000-00adf000 r--p 00000000 00:00 0 00adf000-00ae1000 rw-p 00000000 00:00 0 00ae1000-00ae3000 r--p 00000000 00:00 0 00ae3000-00af0000 ---p 00000000 00:00 0 ... --- snip ---
Looks like the installer formats an internal error message in response to the server returning a 404. Unfortunately the returned additional data is way to big to fit into stack based buffer.
coretools_sh.pro_wsprintf -> rtlcoremt.btk_vswprintf
--- snip --- 0BE29F28 007F5D30 RETURN to coretool.007F5D30 from <JMP.&rtlcoremt.btk_vswprintf> 0BE29F2C 0BE2A694 UNICODE "404" 0BE29F30 FFFFFFFF 0BE29F34 0BE29F40 UNICODE "%s" 0BE29F38 0BE2A354 0BE29F3C 0073A768 coreutil.0073A768 0BE29F40 00730025 coreutil.00730025 0BE29F44 00000000
0BE2A348 005A8656 RETURN to coreutil.005A8656 from coretool.pro_wsprintf 0BE2A34C 0BE2A694 UNICODE "<04" 0BE2A350 0BE2A56C ASCII "%s" 0BE2A354 03708048 ASCII "<!DOCTYPE html> <html> <head> <!-- Google Tag Managers --> <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), eve"... 0BE2A358 007989CC UNICODE "s." 0BE2A35C 03708048 ASCII "<!DOCTYPE html> <html> <head> <!-- Google Tag Managers --> <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), eve"... 0BE2A360 00000003 ... --- snip ---
--- snip --- Call stack of thread 00000045 Address Stack Procedure / arguments Called from Frame 0BE29F28 007F5D30 ? <JMP.&rtlcoremt.btk_vswprintf> coretool.007F5D2B 0BE29F24 0BE2A348 005A8656 coretool.pro_wsprintf coreutil.005A8650 0BE2A344 0BE2A674 005A651E coreutil.005A8570 coreutil.005A6519 0BE2A670 0BE2AEE8 005A7F03 coreutil.005A6440 coreutil.005A7EFE 0BE2AEE4 0BE2B32C 005A584E coreutil.005A7D90 coreutil.005A5849 0BE2B328 0BE2B354 100A4BAA coreutil.msgID_sput_buffer installm.100A4BA4 0BE2B350 0BE2BBCC 10107116 installm.100A4AE0 installm.10107111 0BE2BBC8 0BE2FCF8 101068EF installm.101069E0 installm.101068EA 0BE2FCF4 0BE2FD24 100D5D4A installm.101068D0 installm.100D5D45 0BE2FD20 --- snip ---
The call frame 0BE2AEE4 get overwritten due to stack buffer overflow. Also the SEH chain is destroyed in the process.
It's likely the 302 -> 404 with that big data is something the app installer never expects to see.
--- snip --- ... 002e:trace:wininet:HTTP_HttpSendRequestW Going to url L"esd.ptc.com" L"/files/PIM/MED-60893-CD-220_F000/pim/xml/Image.xml?dlm=no&wcn=null&cn=null&uname=universalmathcadprimetrialuser@nowhere.com&uid=null&__gda__=1552781705_1c72b43af10377787ddaa43abede6826" ... 002e:trace:wininet:read_line returning "HTTP/1.1 302 Moved Temporarily" 002e:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"302"] status text [L"Moved Temporarily"] 002e:trace:wininet:HTTP_ProcessHeader --> L"Status": L"302" - 0xa0000000 002e:trace:wininet:HTTP_GetCustomHeaderIndex L"Status", 0, 0 002e:trace:wininet:HTTP_GetCustomHeaderIndex Return: -1 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Status": L"302" 002e:trace:wininet:read_line returning "Server: AkamaiGHost" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Server: AkamaiGHost", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Server") Value(L"AkamaiGHost") 002e:trace:wininet:HTTP_ProcessHeader --> L"Server": L"AkamaiGHost" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Server": L"AkamaiGHost" 002e:trace:wininet:read_line returning "Content-Length: 0" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Content-Length: 0", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Content-Length") Value(L"0") 002e:trace:wininet:HTTP_ProcessHeader --> L"Content-Length": L"0" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Content-Length": L"0" 002e:trace:wininet:read_line returning "Location: https://www.ptc.com/esd/notfound.htm?dlm=no&wcn=null&cn=null&una..." 002e:trace:wininet:HTTP_GetResponseHeaders got line "Location: https://www.ptc.com/esd/notfound.htm?dlm=no&wcn=null&cn=null&una...", now interpreting ... 002e:trace:wininet:netconn_verify_cert verifying L"www.ptc.com" 002e:trace:wininet:netcon_secure_connect_setup established SSL connection 002e:trace:wininet:build_request_header Adding custom header L"Accept" (L"*/*") 002e:trace:wininet:build_request_header Adding custom header L"User-Agent" (L"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/5.0; Wildfire)") 002e:trace:wininet:build_request_header Adding custom header L"Accept-Language" (L"en-us") 002e:trace:wininet:build_request_header Adding custom header L"Accept-Encoding" (L"gzip, deflate") 002e:trace:wininet:build_request_header Adding custom header L"Host" (L"www.ptc.com") 002e:trace:wininet:build_request_header Adding custom header L"Connection" (L"Keep-Alive") 002e:trace:wininet:build_request_header Adding custom header L"Cookie" (L"visid_incap_1390363=kva+mGfgQ0m4oTPQOW9pRlN1jVwAAAAAQUIPAAAAAAAPrLXVazR1ZkOH1ij+C0qW; incap_ses_408_1390363=AAtPXa0fgSUOssPLXYOpBVN1jVwAAAAABCj4G0iwzNJlVeCQC4U2WA==") 002e:trace:wininet:HTTP_HttpSendRequestW Request header -> L"GET /esd/notfound.htm?dlm=no&wcn=null&cn=null&uname=universalmathcadprimetrialuser@nowhere.com&uid=null HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/5.0; Wildfire)\r\nAccept-Language: en-us\r\nAccept-Encoding: gzip, deflate\r\nHost: www.ptc.com\r\n"... 002e:trace:wininet:HTTP_HttpSendRequestW full request -> "GET /esd/notfound.htm?dlm=no&wcn=null&cn=null&uname=universalmathcadprimetrialuser@nowhere.com&uid=null HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/5.0; Wildfire)\r\nAccept-Language: en-us\r\nAccept-Encoding: gzip, deflate\r\nHost: www.ptc.com\r\n"... ... 002e:trace:wininet:read_line returning "HTTP/1.1 404 Not Found" 002e:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"404"] status text [L"Not Found"] 002e:trace:wininet:HTTP_ProcessHeader --> L"Status": L"404" - 0xa0000000 002e:trace:wininet:HTTP_GetCustomHeaderIndex L"Status", 0, 0 002e:trace:wininet:HTTP_GetCustomHeaderIndex Return: -1 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Status": L"404" 002e:trace:wininet:read_line returning "Content-Type: text/html; charset=utf-8" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Content-Type: text/html; charset=utf-8", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Content-Type") Value(L"text/html; charset=utf-8") 002e:trace:wininet:HTTP_ProcessHeader --> L"Content-Type": L"text/html; charset=utf-8" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Content-Type": L"text/html; charset=utf-8" 002e:trace:wininet:read_line returning "Server: Microsoft-IIS/8.5" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Server: Microsoft-IIS/8.5", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Server") Value(L"Microsoft-IIS/8.5") 002e:trace:wininet:HTTP_ProcessHeader --> L"Server": L"Microsoft-IIS/8.5" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Server": L"Microsoft-IIS/8.5" 002e:trace:wininet:read_line returning "Access-Control-Allow-Methods: GET, POST, OPTIONS" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Access-Control-Allow-Methods: GET, POST, OPTIONS", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Access-Control-Allow-Methods") Value(L"GET, POST, OPTIONS") 002e:trace:wininet:HTTP_ProcessHeader --> L"Access-Control-Allow-Methods": L"GET, POST, OPTIONS" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Access-Control-Allow-Methods": L"GET, POST, OPTIONS" 002e:trace:wininet:read_line returning "Access-Control-Allow-Headers: Origin" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Access-Control-Allow-Headers: Origin", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Access-Control-Allow-Headers") Value(L"Origin") 002e:trace:wininet:HTTP_ProcessHeader --> L"Access-Control-Allow-Headers": L"Origin" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Access-Control-Allow-Headers": L"Origin" 002e:trace:wininet:read_line returning "X-XSS-Protection: 1; mode=block" 002e:trace:wininet:HTTP_GetResponseHeaders got line "X-XSS-Protection: 1; mode=block", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"X-XSS-Protection") Value(L"1; mode=block") 002e:trace:wininet:HTTP_ProcessHeader --> L"X-XSS-Protection": L"1; mode=block" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"X-XSS-Protection": L"1; mode=block" 002e:trace:wininet:read_line returning "X-Frame-Options: https://www.ptc.com" 002e:trace:wininet:HTTP_GetResponseHeaders got line "X-Frame-Options: https://www.ptc.com", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"X-Frame-Options") Value(L"https://www.ptc.com") 002e:trace:wininet:HTTP_ProcessHeader --> L"X-Frame-Options": L"https://www.ptc.com" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"X-Frame-Options": L"https://www.ptc.com" 002e:trace:wininet:read_line returning "Date: Sat, 16 Mar 2019 22:15:11 GMT" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Date: Sat, 16 Mar 2019 22:15:11 GMT", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Date") Value(L"Sat, 16 Mar 2019 22:15:11 GMT") 002e:trace:wininet:HTTP_ProcessHeader --> L"Date": L"Sat, 16 Mar 2019 22:15:11 GMT" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Date": L"Sat, 16 Mar 2019 22:15:11 GMT" 002e:trace:wininet:read_line returning "Cteonnt-Length: 62675" 002e:trace:wininet:HTTP_GetResponseHeaders got line "Cteonnt-Length: 62675", now interpreting 002e:trace:wininet:HTTP_InterpretHttpHeader field(L"Cteonnt-Length") Value(L"62675") 002e:trace:wininet:HTTP_ProcessHeader --> L"Cteonnt-Length": L"62675" - 0x20000000 002e:trace:wininet:HTTP_InsertCustomHeader --> L"Cteonnt-Length": L"62675" ... --- snip ---
Also 62675 bytes for 404 response data which is mostly a bloody jscript is just hilarious. "Cteonnt-Length" ... rofl. Apparently I learned something new here.
www.nextthing.org/archives/2005/08/07/fun-with-http-headers
https://stackoverflow.com/questions/2942237/http-header-ntcoent-length/29423...
Anyway, the reason for the 302 -> 404 has to be further investigated.
$ sha1sum pim_installmgr_mathcad.exe 6cdcde6706c3604f1e4b53858222c9e73b224e3b pim_installmgr_mathcad.exe
$ du -sh pim_installmgr_mathcad.exe 19M pim_installmgr_mathcad.exe
$ wine --version wine-4.4
Regards