Function at 0x40f4e0
Capabilities:
Check if file exists
Copy file
Get common file path
Get system information on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44460f
mov eax, dword fs:[0]
push eax
mov eax, 0x1330
call fcn.00441eb0
mov eax, dword [0x467060]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x132c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1330], eax
xor eax, eax
mov dword [ebp - 0x12ec], 7
mov dword [ebp - 0x12f0], 0
mov word [ebp - 0x1300], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x12d4], 7
mov dword [ebp - 0x12d8], eax
mov word [ebp - 0x12e8], ax
mov byte [ebp - 4], 1
mov eax, dword [0x46a8e4]
test al, 1
jne 0x40f580
or eax, 1
push 0x448700
mov dword [0x46a8e4], eax
call fcn.00441527
add esp, 4
call fcn.00436a60
lea ecx, [ebp - 0x1300]
cmp eax, 7
jl 0x40f599
push 6
push str._WIN7_
jmp 0x40f5a0
push 4
push str._XP_
call fcn.00405570
mov eax, dword [0x46a8e4]
test al, 1
jne 0x40f5c3
or eax, 1
push 0x448700
mov dword [0x46a8e4], eax
call fcn.00441527
add esp, 4
push str.GetNativeSystemInfo
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40f5e9
lea ecx, [ebp - 0x1324]
push ecx
call eax
jmp 0x40f5f6
lea eax, [ebp - 0x1324]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [ebp - 0x1324]
cmp ax, 9
je 0x40f612
cmp ax, 6
je 0x40f612
push 5
push str._X86_
jmp 0x40f619
push 5
push str._X64_
lea ecx, [ebp - 0x12e8]
call fcn.00405570
xor eax, eax
mov dword [ebp - 0x1334], 1
mov dword [ebp - 0x12a0], 7
mov dword [ebp - 0x12a4], 0
mov word [ebp - 0x12b4], ax
mov dword [ebp - 0x1298], eax
mov dword [ebp - 0x1294], eax
mov dword [ebp - 0x1290], eax
mov byte [ebp - 4], 3
mov eax, dword [0x46a8ec]
test al, 1
jne 0x40f67f
or eax, 1
push 0x448710
mov dword [0x46a8ec], eax
call fcn.00441527
add esp, 4
lea eax, [ebp - 0x1298]
push eax
push esi
call fcn.004366f0
mov esi, dword [ebp - 0x1298]
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
cmp esi, dword [ebp - 0x1294]
je 0x41074d
mov ebx, dword [sym.imp.MSVCR110.dll__wcsicmp]
lea ebx, [ebx]
xor eax, eax
mov dword [ebp - 0x1278], 7
mov dword [ebp - 0x127c], 0
mov word [ebp - 0x128c], ax
mov dword [ebp - 0x1260], 7
mov dword [ebp - 0x1264], eax
mov word [ebp - 0x1274], ax
push 1
push ecx
push 0x44cb4c
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.0040d0b0
mov edi, eax
mov dword [ebp - 0x1328], edi
cmp edi, 0xffffffff
jne 0x40f722
lea eax, [ebp - 0x128c]
cmp eax, esi
je 0x40f8b6
push edi
push 0
push esi
mov ecx, eax
call fcn.00405a00
jmp 0x40f8b6
push edi
push 0
lea eax, [ebp - 0x1318]
push eax
mov ecx, esi
call fcn.00403de0
mov edi, eax
lea eax, [ebp - 0x128c]
cmp eax, edi
je 0x40f7cd
cmp dword [ebp - 0x1278], 8
jb 0x40f75b
push dword [ebp - 0x128c]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov dword [ebp - 0x1278], 7
mov dword [ebp - 0x127c], 0
mov word [ebp - 0x128c], ax
cmp dword [edi + 0x14], 8
jae 0x40f79a
mov eax, dword [edi + 0x10]
inc eax
je 0x40f7a8
add eax, eax
push eax
lea eax, [ebp - 0x128c]
push edi
push eax
call dword [sym.imp.MSVCR110.dll_memmove]
add esp, 0xc
jmp 0x40f7a8
mov eax, dword [edi]
mov dword [ebp - 0x128c], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x127c], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1278], eax
xor eax, eax
mov dword [edi + 0x14], 7
mov dword [edi + 0x10], 0
mov word [edi], ax
cmp dword [ebp - 0x1304], 8
jb 0x40f7e5
push dword [ebp - 0x1318]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
push dword [esi + 0x10]
mov eax, dword [ebp - 0x1328]
inc eax
push eax
lea eax, [ebp - 0x1318]
push eax
mov ecx, esi
call fcn.00403de0
mov edi, eax
lea eax, [ebp - 0x1274]
cmp eax, edi
je 0x40f898
cmp dword [ebp - 0x1260], 8
jb 0x40f826
push dword [ebp - 0x1274]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov dword [ebp - 0x1260], 7
mov dword [ebp - 0x1264], 0
mov word [ebp - 0x1274], ax
cmp dword [edi + 0x14], 8
jae 0x40f865
mov eax, dword [edi + 0x10]
inc eax
je 0x40f873
add eax, eax
push eax
lea eax, [ebp - 0x1274]
push edi
push eax
call dword [sym.imp.MSVCR110.dll_memmove]
add esp, 0xc
jmp 0x40f873
mov eax, dword [edi]
mov dword [ebp - 0x1274], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x1264], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1260], eax
xor eax, eax
mov dword [edi + 0x14], 7
mov dword [edi + 0x10], 0
mov word [edi], ax
cmp dword [ebp - 0x1304], 8
jb 0x40f8b0
push dword [ebp - 0x1318]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, dword [ebp - 0x1328]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x424], ax
lea eax, [ebp - 0x422]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._X64_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40f96c
cmp dword [ebp - 0x12d4], 8
lea eax, [ebp - 0x12e8]
cmovae eax, dword [ebp - 0x12e8]
push eax
push str._X64_
call ebx
add esp, 8
test eax, eax
je 0x4106f1
lea esp, [esp]
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x410834
cmp dword [esi + 0x14], 8
jb 0x40f959
mov eax, dword [esi]
jmp 0x40f95b
mov eax, esi
push 0x44cb50
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40f940
jmp 0x40f9ea
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._X86_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40f9ea
cmp dword [ebp - 0x12d4], 8
lea eax, [ebp - 0x12e8]
cmovae eax, dword [ebp - 0x12e8]
push eax
push str._X86_
call ebx
add esp, 8
test eax, eax
je 0x4106f1
jmp 0x40f9c0
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x410834
cmp dword [esi + 0x14], 8
jb 0x40f9d9
mov eax, dword [esi]
jmp 0x40f9db
mov eax, esi
push str.__X86_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40f9c0
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._WIN7_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40fa6c
cmp dword [ebp - 0x12ec], 8
lea eax, [ebp - 0x1300]
cmovae eax, dword [ebp - 0x1300]
push eax
push str._WIN7_
call ebx
add esp, 8
test eax, eax
je 0x4106f1
jmp 0x40fa40
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x410834
cmp dword [esi + 0x14], 8
jb 0x40fa59
mov eax, dword [esi]
jmp 0x40fa5b
mov eax, esi
push str.__WIN7_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40fa40
jmp 0x40faea
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._XP_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40faea
cmp dword [ebp - 0x12ec], 8
lea eax, [ebp - 0x1300]
cmovae eax, dword [ebp - 0x1300]
push eax
push str._XP_
call ebx
add esp, 8
test eax, eax
je 0x4106f1
jmp 0x40fac0
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x410834
cmp dword [esi + 0x14], 8
jb 0x40fad9
mov eax, dword [esi]
jmp 0x40fadb
mov eax, esi
push str.__XP_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40fac0
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._SetOutPath_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x40fe63
cmp dword [ebp - 0x1260], 8
mov dword [ebp - 0x1328], eax
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
lea ecx, [ebp - 0x1328]
call fcn.00411380
xor eax, eax
push 0x206
mov byte [ebp - 4], 6
push eax
mov word [ebp - 0xe4c], ax
lea eax, [ebp - 0xe4a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0xe4c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x62c], ax
lea eax, [ebp - 0x62a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0x62c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xc44], ax
lea eax, [ebp - 0xc42]
push eax
call sub.MSVCR110.dll_memset
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
add esp, 0xc
lea eax, [ebp - 0x62c]
push str.Fonts
push eax
lea eax, [ebp - 0xc44]
push eax
call edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xa3c], ax
lea eax, [ebp - 0xa3a]
push eax
call sub.MSVCR110.dll_memset
mov eax, dword [0x469f00]
add esp, 0xc
test al, 1
jne 0x40fc10
or eax, 1
push 0x4486c0
mov dword [0x469f00], eax
call fcn.00441527
add esp, 4
sub esp, 8
lea eax, [ebp - 0xa3c]
push eax
call fcn.00433200
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x834], ax
lea eax, [ebp - 0x832]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x125c], ax
lea eax, [ebp - 0x125a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0x125c]
push eax
push 1
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov eax, dword [0x469aec]
test al, 1
jne 0x40fc9b
or eax, 1
mov dword [0x469aec], eax
mov byte [ebp - 4], 7
call fcn.00432790
push 0x4486b0
call fcn.00441527
add esp, 4
mov byte [ebp - 4], 6
cmp dword [0x469ae8], 8
mov eax, 0x469ad4
cmovae eax, dword [0x469ad4]
push eax
lea eax, [ebp - 0x125c]
push eax
lea eax, [ebp - 0x834]
push eax
call edi
lea eax, [ebp - 0x62c]
push eax
push str.__WINDIR_
lea ecx, [ebp - 0x1328]
call fcn.004114c0
push dword [ebp - 0x1330]
lea ecx, [ebp - 0x1328]
push str.__INSTDIR_
call fcn.004114c0
lea eax, [ebp - 0xe4c]
push eax
push str.__SYSDIR_
lea ecx, [ebp - 0x1328]
call fcn.004114c0
lea eax, [ebp - 0xc44]
push eax
push str.__FONTS_
lea ecx, [ebp - 0x1328]
call fcn.004114c0
lea eax, [ebp - 0xa3c]
push eax
push str.__DESKTEMP_
lea ecx, [ebp - 0x1328]
call fcn.004114c0
lea eax, [ebp - 0x834]
push eax
push str.__GCTEMP_
lea ecx, [ebp - 0x1328]
call fcn.004114c0
push 0x44aca8
push 0x44b720
lea ecx, [ebp - 0x1328]
call fcn.004114c0
mov eax, dword [ebp - 0x1328]
mov edi, dword [eax - 0xc]
test edi, edi
js 0x410888
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x40fd91
push edi
lea ecx, [ebp - 0x1328]
call fcn.00411a20
mov eax, dword [ebp - 0x1328]
cmp word [eax], 0
jne 0x40fd9b
xor edx, edx
jmp 0x40fdaf
mov edx, eax
lea edi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x40fda0
sub edx, edi
sar edx, 1
push edx
push eax
lea ecx, [ebp - 0x12b4]
call fcn.00405570
mov eax, dword [0x469f00]
test al, 1
jne 0x40fdda
or eax, 1
push 0x4486c0
mov dword [0x469f00], eax
call fcn.00441527
add esp, 4
cmp dword [ebp - 0x12a0], 8
lea edi, [ebp - 0x12b4]
cmovae edi, dword [ebp - 0x12b4]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40fe36
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
test eax, eax
je 0x40fe36
mov eax, dword [0x46a9cc]
test al, 1
jne 0x40fe23
or eax, 1
push 0x448830
mov dword [0x46a9cc], eax
call fcn.00441527
add esp, 4
push edi
push str.Failed_to_create_directory_:__s
push 0x46a9c8
call fcn.0043aff0
add esp, 0xc
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1328]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4106f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4106f1
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._FILE_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4105c1
cmp dword [ebp - 0x1260], 8
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov ebx, eax
push 0x44c110
push ebx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
lea eax, [ebp - 0x1274]
jne 0x4100df
cmp dword [ebp - 0x1260], 8
lea ecx, [ebp - 0x1328]
cmovae eax, dword [ebp - 0x1274]
push eax
mov dword [ebp - 0x1328], 0
call fcn.00411380
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x1328]
cmp dword [eax - 0xc], 0
jge 0x40fefd
or eax, 0xffffffff
jmp 0x40ff1d
push 0x44c110
push eax
call dword [sym.imp.MSVCR110.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x40ff15
or eax, 0xffffffff
jmp 0x40ff1d
sub eax, dword [ebp - 0x1328]
sar eax, 1
dec eax
push eax
lea eax, [ebp - 0x1338]
push eax
lea ecx, [ebp - 0x1328]
call fcn.00411700
push eax
lea ecx, [ebp - 0x1328]
mov byte [ebp - 4], 9
call fcn.00411450
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1338]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ff65
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1328]
mov edi, dword [eax - 0xc]
test edi, edi
js 0x410888
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x40ff99
push edi
lea ecx, [ebp - 0x1328]
call fcn.00411a20
mov eax, dword [ebp - 0x1328]
cmp word [eax], 0
jne 0x40ffa3
xor edx, edx
jmp 0x40ffbf
mov edx, eax
lea edi, [edx + 2]
jmp 0x40ffb0
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x40ffb0
sub edx, edi
sar edx, 1
push edx
push eax
lea ecx, [ebp - 0x1274]
call fcn.00405570
push dword [ebp - 0x132c]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x424]
push eax
call ebx
cmp dword [ebp - 0x1260], 8
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
lea eax, [ebp - 0x424]
push eax
call ebx
cmp dword [ebp - 0x12a0], 8
lea eax, [ebp - 0x12b4]
cmovae eax, dword [ebp - 0x12b4]
push eax
lea eax, [ebp - 0x21c]
push eax
call ebx
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x62c], ax
lea eax, [ebp - 0x62a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
cmp dword [ebp - 0x12a0], 8
lea eax, [ebp - 0x12b4]
cmovae eax, dword [ebp - 0x12b4]
push 0x44acac
push eax
lea eax, [ebp - 0x62c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x62c]
lea ecx, [ebp - 0x424]
call fcn.0041cd20
test eax, eax
jne 0x410095
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFolder_succeed__src___s__des___s_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x4100b2
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFolder_failed__src___s__dst___s__err___d_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1328]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x410564
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x410564
cmp dword [ebp - 0x1260], 8
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmovae eax, dword [ebp - 0x1274]
push eax
push dword [ebp - 0x132c]
lea eax, [ebp - 0x424]
push eax
call edi
cmp dword [ebp - 0x12a0], 8
lea eax, [ebp - 0x12b4]
cmovae eax, dword [ebp - 0x12b4]
push ebx
push eax
lea eax, [ebp - 0x21c]
push eax
call edi
mov eax, dword [0x469f00]
test al, 1
jne 0x410140
or eax, 1
push 0x4486c0
mov dword [0x469f00], eax
call fcn.00441527
add esp, 4
cmp dword [ebp - 0x12a0], 8
lea ecx, [ebp - 0x12b4]
cmovae ecx, dword [ebp - 0x12b4]
call fcn.004333d0
push str.Kernel32.dll
mov dword [ebp - 0x12d0], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x410194
push str.Wow64DisableWow64FsRedirection
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41018d
lea ecx, [ebp - 0x12d0]
push ecx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x21c]
push eax
mov byte [ebp - 4], 0xa
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov edi, eax
push str..ini
push edi
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x410489
push 0x44cd88
push edi
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x410489
push str..xml
push edi
mov edi, dword [sym.imp.MSVCR110.dll__wcsicmp]
call edi
add esp, 8
test eax, eax
je 0x41048f
xor eax, eax
push 0x40e
push eax
mov word [ebp - 0x1054], ax
lea eax, [ebp - 0x1052]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str._s__s_n
lea eax, [ebp - 0x1054]
push 0x208
push eax
call dword [sym.imp.MSVCR110.dll_swprintf_s]
add esp, 0x14
lea eax, [ebp - 0x1054]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x41027e
mov ebx, dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call ebx
add esp, 0xc
jmp 0x410530
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_failed__src___s__dst___s__err___d_
call ebx
add esp, 0x10
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x410530
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xa3c], ax
lea eax, [ebp - 0xa3a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
call fcn.00411770
push ecx
lea eax, [ebp - 0xa3c]
push eax
lea eax, [ebp - 0x424]
push eax
call fcn.00436330
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x834], ax
lea eax, [ebp - 0x832]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
call fcn.00411770
push ecx
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00436330
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0xa3c]
push eax
call edi
add esp, 8
test eax, eax
je 0x410530
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x1318]
call fcn.00405670
push str..bak
mov edx, eax
lea ecx, [ebp - 0x12cc]
mov byte [ebp - 4], 0xb
call fcn.00404870
add esp, 4
lea ecx, [ebp - 0x1318]
mov byte [ebp - 4], 0xd
call fcn.00401270
push 1
sub esp, 0x1c
lea eax, [ebp - 0x12cc]
mov ecx, esp
mov dword [ebp - 0x1328], esp
push eax
call fcn.00403cd0
sub esp, 0x18
lea eax, [ebp - 0x21c]
mov ecx, esp
push eax
mov byte [ebp - 4], 0xe
call fcn.00405670
call fcn.00411770
mov byte [ebp - 4], 0xd
call fcn.00436830
mov ecx, eax
lea eax, [ebp - 0x12cc]
test ecx, ecx
jne 0x410458
cmp dword [ebp - 0x12b8], 8
cmovae eax, dword [ebp - 0x12cc]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__RenameFile_succeed__src___s__dst___s_
call ebx
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0
push eax
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x410429
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call ebx
add esp, 0xc
lea ecx, [ebp - 0x12cc]
call fcn.00401270
jmp 0x410530
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_failed__after_rename__src___s__dst___s__err___d_
call ebx
add esp, 0x10
lea ecx, [ebp - 0x12cc]
call fcn.00401270
jmp 0x410530
cmp dword [ebp - 0x12b8], 8
push ecx
cmovae eax, dword [ebp - 0x12cc]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__RenameFile_failed__src___s__dst___s__err___d_
call ebx
add esp, 0x10
lea ecx, [ebp - 0x12cc]
call fcn.00401270
jmp 0x410530
mov edi, dword [sym.imp.MSVCR110.dll__wcsicmp]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4104fc
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x4104d7
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x410530
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_failed__src___s__dst___s__err___d_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
jmp 0x410530
push str.promote.xml
push ebx
call edi
add esp, 8
test eax, eax
je 0x41051a
push str.desk_bkg_list.xml
push ebx
call edi
add esp, 8
test eax, eax
jne 0x410530
push 0
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push str.Kernel32.dll
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x410564
push str.Wow64RevertWow64FsRedirection
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41055d
push dword [ebp - 0x12d0]
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xc44], ax
lea eax, [ebp - 0xc42]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
cmp dword [ebp - 0x1260], 8
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
push str.Copy_files:_s
lea eax, [ebp - 0xc44]
push 0x208
push eax
call fcn.00401b90
mov ebx, dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 0x10
inc dword [ebp - 0x1334]
jmp 0x4106f1
cmp dword [ebp - 0x1278], 8
lea eax, [ebp - 0x128c]
cmovae eax, dword [ebp - 0x128c]
push str._FIREWALL_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4106f1
push edi
push eax
lea eax, [ebp - 0x12cc]
push eax
lea ecx, [ebp - 0x1274]
call fcn.00403de0
mov byte [ebp - 4], 0xf
push dword [ebp - 0x1264]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x1318]
push eax
lea ecx, [ebp - 0x1274]
call fcn.00403de0
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x12b8], 8
lea eax, [ebp - 0x12cc]
cmovae eax, dword [ebp - 0x12cc]
push eax
lea ecx, [ebp - 0x129c]
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::constructor_wchar_t_const__]
push dword [ebp - 0x1330]
lea ecx, [ebp - 0x129c]
push str.__INSTDIR_
mov byte [ebp - 4], 0x11
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::Replace_wchar_t_const___wchar_t_const__]
lea ecx, [ebp - 0x129c]
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::GetLength_void_const]
push eax
lea ecx, [ebp - 0x129c]
call dword [sym.imp.ouilibx.dll_public:_wchar_t____thiscall_OUI::COString::GetBuffer_int_]
push eax
lea ecx, [ebp - 0x12cc]
call fcn.00403d40
cmp dword [ebp - 0x12b8], 8
lea ecx, [ebp - 0x12cc]
cmovae ecx, dword [ebp - 0x12cc]
call fcn.00436d30
test eax, eax
jne 0x4106cb
cmp dword [ebp - 0x1304], 8
lea edx, [ebp - 0x1318]
cmovae edx, dword [ebp - 0x1318]
cmp dword [ebp - 0x12b8], 8
lea ecx, [ebp - 0x12cc]
cmovae ecx, dword [ebp - 0x12cc]
call fcn.00436bf0
lea ecx, [ebp - 0x129c]
mov byte [ebp - 4], 0x10
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
lea ecx, [ebp - 0x1318]
call fcn.00401270
lea ecx, [ebp - 0x12cc]
call fcn.00401270
cmp dword [ebp - 0x1260], 8
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
jb 0x41070b
push dword [ebp - 0x1274]
call edi
add esp, 4
xor eax, eax
cmp dword [ebp - 0x1278], 8
mov dword [ebp - 0x1260], 7
mov dword [ebp - 0x1264], eax
mov word [ebp - 0x1274], ax
jb 0x410738
push dword [ebp - 0x128c]
call edi
add esp, 4
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
jne 0x40f6b0
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x1298], 0
je 0x4107a0
lea ecx, [ebp - 0x1298]
call dword [sym.imp.MSVCP110.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
push dword [ebp - 0x1294]
push dword [ebp - 0x1298]
call fcn.0040ee30
push dword [ebp - 0x1298]
call ebx
add esp, 4
mov dword [ebp - 0x1298], 0
mov dword [ebp - 0x1294], 0
mov dword [ebp - 0x1290], 0
cmp dword [ebp - 0x12a0], 8
jb 0x4107b4
push dword [ebp - 0x12b4]
call ebx
add esp, 4
xor eax, eax
cmp dword [ebp - 0x12d4], 8
mov dword [ebp - 0x12a0], 7
mov dword [ebp - 0x12a4], 0
mov word [ebp - 0x12b4], ax
jb 0x4107e5
push dword [ebp - 0x12e8]
call ebx
add esp, 4
xor eax, eax
cmp dword [ebp - 0x12ec], 8
mov dword [ebp - 0x12d4], 7
mov dword [ebp - 0x12d8], 0
mov word [ebp - 0x12e8], ax
jb 0x410816
push dword [ebp - 0x1300]
call ebx
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004413e6
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp - 0x1260], 8
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
jb 0x41084e
push dword [ebp - 0x1274]
call ebx
add esp, 4
xor eax, eax
cmp dword [ebp - 0x1278], 8
mov dword [ebp - 0x1260], 7
mov dword [ebp - 0x1264], 0
mov word [ebp - 0x1274], ax
jb 0x41074d
push dword [ebp - 0x128c]
call ebx
add esp, 4
jmp 0x41074d
push 0x80070057
call fcn.00411ea0
int3