Function at 0x4175c3
Capabilities:
Copy file
Delete file
Execute command
Get common file path
Set file attributes

Disassembly:
mov eax, 0x42c4cf
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x354
push ebx
push esi
push edi
xor ebx, ebx
push 0x64
lea eax, [ebp - 0x260]
push ebx
mov esi, ecx
push eax
mov byte [ebp - 0xd], 1
mov byte [ebp - 0xe], bl
mov byte [ebp - 0xf], 1
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x144]
push 0x64
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0xa0]
push 0x19
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x40]
push 0xa
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4c]
push 0xa
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1fc]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
push ebx
call fcn.00413ce1
lea ecx, [ebp - 0xe0]
mov dword [ebp - 4], ebx
call fcn.0042910c
mov dword [ebp - 0xe0], 0x42eae0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString_3
push ebx
lea ecx, [ebp - 0x1fc]
mov byte [ebp - 4], 2
call fcn.00413dea
push dword [esi + 0x228]
lea ecx, [ebp - 0x1fc]
push ebx
call fcn.00413e8d
push 1
lea ecx, [ebp - 0x1fc]
call fcn.00413efc
push 0x41b
lea ecx, [ebp - 0x1fc]
call sub.MFC42.DLL_CWnd::GetDlgItem
mov edi, eax
lea eax, [ebp - 0x68]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x82
push edi
lea eax, [ebp - 0x68]
mov edi, 0x50000007
push eax
push edi
lea ecx, [ebp - 0xe0]
call sub.MFC42.DLL_CAnimateCtrl::Create
lea eax, [ebp - 0xe0]
neg eax
sbb eax, eax
push edi
and eax, dword [ebp - 0xc0]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov eax, dword [ebp - 0x5c]
push 0x56
sub eax, dword [ebp - 0x64]
lea ecx, [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x68]
push eax
push ebx
push ebx
push ebx
call sub.MFC42.DLL_CWnd::SetWindowPos
push 0x82
push ebx
push 0x464
push dword [ebp - 0xc0]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x68]
push 1
push eax
push dword [ebp - 0x1dc]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [ebp - 0x1dc]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea eax, [ebp - 0x28]
mov edi, 0x441ef8
push eax
mov ecx, edi
call fcn.004064d0
push 0x40
push 0x43de48
push dword [eax]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCRT.dll__fsopen]
mov dword [ebp - 0x18], eax
add esp, 0xc
xor eax, eax
cmp dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
sete al
mov byte [ebp - 0x1d], al
call sub.MFC42.DLL_CString::CString
cmp byte [ebp - 0x1d], bl
je 0x4177cd
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
mov byte [ebp - 0xd], bl
call fcn.004064d0
mov edi, eax
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCRT.dll__errno]
push dword [eax]
push dword [edi]
push 0x43de4c
push str._s:Could_not_open_file__s__errno__d
push dword [esi + 0x550]
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
cmp dword [esi + 0x228], ebx
mov dword [ebp - 0x30], ebx
jle 0x417cd3
mov edi, dword [sym.imp.MSVCRT.dll_fprintf]
lea eax, [esi + 0x2cc]
mov dword [ebp - 0x14], eax
push str.Transmitting_file:
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x14]
push dword [eax]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x50]
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::operator_2
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.004185a7
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
cmp byte [ecx], bl
je 0x417a60
push dword [eax - 0x78]
lea eax, [ebp - 0x144]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
push dword [eax]
lea eax, [ebp - 0x144]
push eax
call sub.MSVCRT.dll_strcat
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
push dword [eax]
lea eax, [ebp - 0xa0]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
lea eax, [ebp - 0xa0]
pop ecx
mov ecx, dword [esi + 4]
push eax
call fcn.0040b151
cmp byte [ebp - 0x9d], 0x45
mov byte [ebp - 0x40], bl
push 2
jne 0x4178b7
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
add esp, 0xc
mov byte [ebp - 0x4c], bl
lea eax, [ebp - 0x9a]
push 2
jmp 0x4178d6
lea eax, [ebp - 0x9d]
push eax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
add esp, 0xc
mov byte [ebp - 0x4c], bl
lea eax, [ebp - 0x9b]
push 2
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
add esp, 0xc
lea ecx, [ebp - 0x34]
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 6
push dword [eax + 0xf4]
lea eax, [ebp - 0x34]
push str._s
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea eax, [ebp - 0x144]
lea ecx, [esi + 0x580]
push 1
push 0x84000002
push 0x80
push ebx
push eax
push dword [ebp - 0x34]
call fcn.00402d43
test eax, eax
je 0x41793b
mov byte [ebp - 0xd], 1
push str.Downloaded_Successfully
jmp 0x417943
mov byte [ebp - 0xd], bl
push str.Download_Failed
lea eax, [ebp - 0x84]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [esi + 0x3bc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x30]
movsx eax, byte [ecx + eax]
sub eax, 0x30
je 0x417a3a
dec eax
je 0x417a14
dec eax
je 0x4179fa
dec eax
je 0x4179da
dec eax
je 0x4179c4
dec eax
je 0x4179ae
dec eax
je 0x417989
mov byte [ebp - 0xe], bl
jmp 0x417a34
lea eax, [ebp - 0x84]
push eax
push str.__DRS_Software__s_n
push dword [ebp - 0x18]
call edi
add esp, 0xc
cmp byte [ebp - 0xd], bl
jne 0x417a4e
mov byte [esi + 0xa], bl
jmp 0x417a4e
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x40]
push eax
push str.__Test_ECM_Map_Version__s._s__s_n
jmp 0x417a28
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x40]
push eax
push str.__Test_ECM_Software_Version__s._s__s_n
jmp 0x417a28
lea eax, [ebp - 0x84]
push eax
mov eax, dword [esi + 0x57c]
add eax, 0x11
push eax
push str.__AISC_Version__s__s_n
push dword [ebp - 0x18]
call edi
add esp, 0x10
jmp 0x417a4e
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x40]
push eax
push str.__ECM_Map_Version__s__s_n
push dword [ebp - 0x18]
call edi
add esp, 0x10
jmp 0x417a30
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x40]
push eax
push str.__ECM_Software_Version__s._s__s_n
push dword [ebp - 0x18]
call edi
add esp, 0x14
mov byte [ebp - 0xe], 1
mov byte [ebp - 0xf], 1
jmp 0x417a54
lea eax, [ebp - 0x84]
push eax
push str.__DDEC_Software__s_n
push dword [ebp - 0x18]
call edi
add esp, 0xc
mov byte [ebp - 0xe], bl
mov byte [ebp - 0xf], bl
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x3bc]
mov ecx, dword [ebp - 0x30]
cmp byte [ecx + eax], 0x33
jne 0x417b25
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::CString_3
lea eax, [ebp - 0x360]
mov byte [ebp - 4], 7
push eax
push 0xff
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x417a9e
lea eax, [ebp - 0x360]
push eax
jmp 0x417aa3
push 0x43df88
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::operator_1
push str.CNFGVERS.EXE
lea ecx, [ebp - 0x1c]
call fcn.00429136
lea eax, [ebp - 0x58]
mov ecx, 0x441ef8
push eax
call fcn.00419c4e
push ebx
mov byte [ebp - 4], 8
push dword [ebp - 0x1c]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x24], ebx
je 0x417b0e
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_system]
cmp eax, ebx
pop ecx
jge 0x417b04
push ebx
push ebx
push str.ERROR_LUNCHING_WISE_INSTALL_FOR_SENSOR_FILES
call sub.MFC42.DLL_AfxMessageBox_1
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_remove]
pop ecx
mov ecx, dword [0x43affc]
call fcn.0041a6b4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
cmp byte [ebp - 0xd], bl
je 0x417cb9
cmp byte [ebp - 0xf], bl
je 0x417b72
mov ecx, dword [0x43b000]
push ebx
push ebx
push str.UNCOMPRESSING_SOFTWARE
call fcn.0041b07d
lea ecx, [ebp - 0x28]
call fcn.00402228
push ebx
lea eax, [ebp - 0x144]
push ebx
push eax
push ebx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.0040224f
lea ecx, [ebp - 0x28]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], 2
call fcn.0040223f
cmp byte [ebp - 0xd], bl
je 0x417cb9
cmp byte [ebp - 0xe], bl
je 0x417bbd
lea eax, [ebp - 0x144]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
neg eax
sbb eax, eax
neg eax
cmp al, bl
mov byte [ebp - 0xd], al
jne 0x417bbd
call dword [sym.imp.MSVCRT.dll__errno]
push dword [eax]
push 0x43dfcc
push str._s:_CANNOT_SET_FILE_ATTR__ERRNO___d
push dword [esi + 0x550]
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
cmp byte [ebp - 0xd], bl
je 0x417cb9
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x78]
cmp byte [ecx], bl
je 0x417cb9
push dword [eax - 0x78]
lea eax, [ebp - 0x260]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
push dword [eax + 0x78]
lea eax, [ebp - 0x260]
push eax
call sub.MSVCRT.dll_strcat
pop ecx
pop ecx
mov ecx, dword [0x43b000]
push ebx
push ebx
push str.TRYING_TO_DELETE_OLD_SOFTWARE
call fcn.0041b07d
push ebx
mov dword [ebp - 0x24], 1
call dword [sym.imp.MSVCRT.dll_time]
pop ecx
mov dword [ebp - 0x54], eax
push dword [ebp - 0x54]
push ebx
call dword [sym.imp.MSVCRT.dll_time]
pop ecx
push eax
call dword [sym.imp.MSVCRT.dll_difftime]
fcomp qword [0x430bd8]
pop ecx
pop ecx
fnstsw ax
sahf
jae 0x417c95
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.MSVCRT.dll_remove]
neg eax
sbb eax, eax
pop ecx
inc eax
cmp al, bl
mov byte [ebp - 0xd], al
jne 0x417c8d
call dword [sym.imp.MSVCRT.dll__errno]
cmp dword [eax], 0xd
jne 0x417c7e
mov ecx, dword [0x43b000]
push ebx
push ebx
push str.SOFTWARE_FILE_IN_USE
call fcn.0041b07d
push 0x14
mov ecx, esi
call fcn.00415c46
jmp 0x417c90
call dword [sym.imp.MSVCRT.dll__errno]
cmp dword [eax], 2
jne 0x417c8d
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jne 0x417c1d
cmp byte [ebp - 0xd], bl
push ebx
push ebx
je 0x417ca3
push str.OLD_SOFTWARE_FILE_DELETED
jmp 0x417ca8
push str.OLD_SOFTWARE_FILE_NOT_DELETED
push dword [esi + 0x22c]
mov ecx, dword [0x43b000]
call fcn.0041b0b4
inc dword [ebp - 0x30]
add dword [ebp - 0x14], 4
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0xd], 1
cmp eax, dword [esi + 0x228]
jl 0x4177eb
push dword [ebp - 0x18]
call dword [sym.imp.MSVCRT.dll_fclose]
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CAnimateCtrl::CAnimateCtrl
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1fc]
call fcn.00413d62
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xd]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret