Function at 0x415200
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 0x455d56
mov eax, dword fs:[0]
push eax
mov eax, 0x1350
call fcn.00452b30
mov eax, dword [0x47f060]
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 - 0x1328], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1320], eax
xor eax, eax
mov dword [ebp - 0x1304], 7
mov dword [ebp - 0x1308], 0
mov word [ebp - 0x1318], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x12ec], 7
mov dword [ebp - 0x12f0], eax
mov word [ebp - 0x1300], ax
mov byte [ebp - 4], 1
mov eax, dword [0x482724]
test al, 1
jne 0x4152a0
or eax, 1
push 0x45aec0
mov dword [0x482724], eax
call fcn.004521b7
add esp, 4
call fcn.00442ff0
lea ecx, [ebp - 0x1318]
cmp eax, 7
jl 0x4152b9
push 6
push str._WIN7_
jmp 0x4152c0
push 4
push str._XP_
call fcn.00406c00
mov eax, dword [0x482724]
test al, 1
jne 0x4152e3
or eax, 1
push 0x45aec0
mov dword [0x482724], eax
call fcn.004521b7
add esp, 4
push str.GetNativeSystemInfo
push 0x46ec0c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x415309
lea ecx, [ebp - 0x1358]
push ecx
call eax
jmp 0x415316
lea eax, [ebp - 0x1358]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [ebp - 0x1358]
cmp ax, 9
je 0x415332
cmp ax, 6
je 0x415332
push 5
push str._X86_
jmp 0x415339
push 5
push str._X64_
lea ecx, [ebp - 0x1300]
call fcn.00406c00
xor eax, eax
mov dword [ebp - 0x132c], 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 [0x483128]
test al, 1
jne 0x41539f
or eax, 1
push 0x45aee0
mov dword [0x483128], eax
call fcn.004521b7
add esp, 4
lea eax, [ebp - 0x1298]
push eax
push esi
call fcn.004474a0
mov esi, dword [ebp - 0x1298]
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
cmp esi, dword [ebp - 0x1294]
je 0x416585
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 0x461b2c
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00411400
mov edi, eax
mov dword [ebp - 0x131c], edi
cmp edi, 0xffffffff
jne 0x415442
lea eax, [ebp - 0x128c]
cmp eax, esi
je 0x4155d6
push edi
push 0
push esi
mov ecx, eax
call fcn.00406870
jmp 0x4155d6
push edi
push 0
lea eax, [ebp - 0x12e4]
push eax
mov ecx, esi
call fcn.00405030
mov edi, eax
lea eax, [ebp - 0x128c]
cmp eax, edi
je 0x4154ed
cmp dword [ebp - 0x1278], 8
jb 0x41547b
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 0x4154ba
mov eax, dword [edi + 0x10]
inc eax
je 0x4154c8
add eax, eax
push eax
lea eax, [ebp - 0x128c]
push edi
push eax
call dword [sym.imp.MSVCR110.dll_memmove]
add esp, 0xc
jmp 0x4154c8
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 - 0x12d0], 8
jb 0x415505
push dword [ebp - 0x12e4]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
push dword [esi + 0x10]
mov eax, dword [ebp - 0x131c]
inc eax
push eax
lea eax, [ebp - 0x12e4]
push eax
mov ecx, esi
call fcn.00405030
mov edi, eax
lea eax, [ebp - 0x1274]
cmp eax, edi
je 0x4155b8
cmp dword [ebp - 0x1260], 8
jb 0x415546
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 0x415585
mov eax, dword [edi + 0x10]
inc eax
je 0x415593
add eax, eax
push eax
lea eax, [ebp - 0x1274]
push edi
push eax
call dword [sym.imp.MSVCR110.dll_memmove]
add esp, 0xc
jmp 0x415593
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 - 0x12d0], 8
jb 0x4155d0
push dword [ebp - 0x12e4]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, dword [ebp - 0x131c]
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
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
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 0x41568c
cmp dword [ebp - 0x12ec], 8
lea eax, [ebp - 0x1300]
cmovae eax, dword [ebp - 0x1300]
push eax
push str._X64_
call ebx
add esp, 8
test eax, eax
je 0x416529
lea esp, [esp]
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x41666c
cmp dword [esi + 0x14], 8
jb 0x415679
mov eax, dword [esi]
jmp 0x41567b
mov eax, esi
push 0x461b30
push eax
call ebx
add esp, 8
test eax, eax
jne 0x415660
jmp 0x41570a
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 0x41570a
cmp dword [ebp - 0x12ec], 8
lea eax, [ebp - 0x1300]
cmovae eax, dword [ebp - 0x1300]
push eax
push str._X86_
call ebx
add esp, 8
test eax, eax
je 0x416529
jmp 0x4156e0
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x41666c
cmp dword [esi + 0x14], 8
jb 0x4156f9
mov eax, dword [esi]
jmp 0x4156fb
mov eax, esi
push str.__X86_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4156e0
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 0x41578c
cmp dword [ebp - 0x1304], 8
lea eax, [ebp - 0x1318]
cmovae eax, dword [ebp - 0x1318]
push eax
push str._WIN7_
call ebx
add esp, 8
test eax, eax
je 0x416529
jmp 0x415760
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x41666c
cmp dword [esi + 0x14], 8
jb 0x415779
mov eax, dword [esi]
jmp 0x41577b
mov eax, esi
push str.__WIN7_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x415760
jmp 0x41580a
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 0x41580a
cmp dword [ebp - 0x1304], 8
lea eax, [ebp - 0x1318]
cmovae eax, dword [ebp - 0x1318]
push eax
push str._XP_
call ebx
add esp, 8
test eax, eax
je 0x416529
jmp 0x4157e0
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
je 0x41666c
cmp dword [esi + 0x14], 8
jb 0x4157f9
mov eax, dword [esi]
jmp 0x4157fb
mov eax, esi
push str.__XP_
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4157e0
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 0x415b83
cmp dword [ebp - 0x1260], 8
mov dword [ebp - 0x131c], eax
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
lea ecx, [ebp - 0x131c]
call fcn.00417570
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 [0x4826e0]
add esp, 0xc
test al, 1
jne 0x415930
or eax, 1
push 0x45ae80
mov dword [0x4826e0], eax
call fcn.004521b7
add esp, 4
sub esp, 8
lea eax, [ebp - 0xa3c]
push eax
call fcn.00444100
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 [0x482718]
test al, 1
jne 0x4159bb
or eax, 1
mov dword [0x482718], eax
mov byte [ebp - 4], 7
call fcn.00443180
push 0x45aea0
call fcn.004521b7
add esp, 4
mov byte [ebp - 4], 6
cmp dword [0x482714], 8
mov eax, 0x482700
cmovae eax, dword [0x482700]
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 - 0x131c]
call fcn.004176b0
push dword [ebp - 0x1320]
lea ecx, [ebp - 0x131c]
push str.__INSTDIR_
call fcn.004176b0
lea eax, [ebp - 0xe4c]
push eax
push str.__SYSDIR_
lea ecx, [ebp - 0x131c]
call fcn.004176b0
lea eax, [ebp - 0xc44]
push eax
push str.__FONTS_
lea ecx, [ebp - 0x131c]
call fcn.004176b0
lea eax, [ebp - 0xa3c]
push eax
push str.__DESKTEMP_
lea ecx, [ebp - 0x131c]
call fcn.004176b0
lea eax, [ebp - 0x834]
push eax
push str.__GCTEMP_
lea ecx, [ebp - 0x131c]
call fcn.004176b0
push 0x45ebf0
push 0x45d3c0
lea ecx, [ebp - 0x131c]
call fcn.004176b0
mov eax, dword [ebp - 0x131c]
mov edi, dword [eax - 0xc]
test edi, edi
js 0x4166c0
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x415ab1
push edi
lea ecx, [ebp - 0x131c]
call fcn.00417c10
mov eax, dword [ebp - 0x131c]
cmp word [eax], 0
jne 0x415abb
xor edx, edx
jmp 0x415acf
mov edx, eax
lea edi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x415ac0
sub edx, edi
sar edx, 1
push edx
push eax
lea ecx, [ebp - 0x12b4]
call fcn.00406c00
mov eax, dword [0x4826e0]
test al, 1
jne 0x415afa
or eax, 1
push 0x45ae80
mov dword [0x4826e0], eax
call fcn.004521b7
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 0x415b56
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
test eax, eax
je 0x415b56
mov eax, dword [0x483214]
test al, 1
jne 0x415b43
or eax, 1
push 0x45b070
mov dword [0x483214], eax
call fcn.004521b7
add esp, 4
push edi
push str.Failed_to_create_directory_:__s
push 0x483210
call fcn.0044bc70
add esp, 0xc
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x131c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416529
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x416529
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 0x4163f9
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 0x45f878
push ebx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
lea eax, [ebp - 0x1274]
jne 0x415e6a
cmp dword [ebp - 0x1260], 8
lea ecx, [ebp - 0x131c]
cmovae eax, dword [ebp - 0x1274]
push eax
mov dword [ebp - 0x131c], 0
call fcn.00417570
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x131c]
cmp dword [eax - 0xc], 0
jge 0x415c1d
or eax, 0xffffffff
jmp 0x415c3d
push 0x45f878
push eax
call dword [sym.imp.MSVCR110.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x415c35
or eax, 0xffffffff
jmp 0x415c3d
sub eax, dword [ebp - 0x131c]
sar eax, 1
dec eax
push eax
lea eax, [ebp - 0x1330]
push eax
lea ecx, [ebp - 0x131c]
call fcn.004178f0
push eax
lea ecx, [ebp - 0x131c]
mov byte [ebp - 4], 9
call fcn.00417640
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1330]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415c85
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x131c]
mov edi, dword [eax - 0xc]
test edi, edi
js 0x4166c0
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, edi
or ecx, edx
jge 0x415cb9
push edi
lea ecx, [ebp - 0x131c]
call fcn.00417c10
mov eax, dword [ebp - 0x131c]
cmp word [eax], 0
jne 0x415cc3
xor edx, edx
jmp 0x415cdf
mov edx, eax
lea edi, [edx + 2]
jmp 0x415cd0
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x415cd0
sub edx, edi
sar edx, 1
push edx
push eax
lea ecx, [ebp - 0x1274]
call fcn.00406c00
push dword [ebp - 0x1328]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x21c]
push eax
call ebx
cmp dword [ebp - 0x1260], 8
lea eax, [ebp - 0x1274]
cmovae eax, dword [ebp - 0x1274]
push eax
lea eax, [ebp - 0x21c]
push eax
call ebx
cmp dword [ebp - 0x12a0], 8
lea eax, [ebp - 0x12b4]
cmovae eax, dword [ebp - 0x12b4]
push eax
lea eax, [ebp - 0x424]
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 0x45ec1c
push eax
lea eax, [ebp - 0x62c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [ebp - 0x62c]
lea ecx, [ebp - 0x21c]
call fcn.0042a690
mov edi, eax
lea eax, [ebp - 0x62c]
test edi, edi
jne 0x415dba
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFolder_succeed__src___s__des___s_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x415e3d
push edi
push eax
lea eax, [ebp - 0x21c]
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
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415e3d
mov al, byte [0x482754]
movzx ecx, al
test al, al
mov eax, 1
cmove ecx, eax
lea eax, [ebp - 0x21c]
push eax
mov byte [0x482754], cl
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
lea ecx, [ebp - 0x12e4]
push eax
call fcn.00406d00
sub esp, 0x18
lea eax, [ebp - 0x12e4]
mov ecx, esp
push eax
mov byte [ebp - 4], 0xa
call fcn.00404f20
mov ecx, edi
call fcn.0040dba0
add esp, 0x18
lea ecx, [ebp - 0x12e4]
call fcn.00401100
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x131c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41639c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41639c
cmp dword [ebp - 0x1260], 8
mov edi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmovae eax, dword [ebp - 0x1274]
push eax
push dword [ebp - 0x1328]
lea eax, [ebp - 0x21c]
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 - 0x424]
push eax
call edi
mov eax, dword [0x4826e0]
test al, 1
jne 0x415ecb
or eax, 1
push 0x45ae80
mov dword [0x4826e0], eax
call fcn.004521b7
add esp, 4
cmp dword [ebp - 0x12a0], 8
lea ecx, [ebp - 0x12b4]
cmovae ecx, dword [ebp - 0x12b4]
call fcn.004442d0
push str.Kernel32.dll
mov dword [ebp - 0x12e8], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x415f1f
push str.Wow64DisableWow64FsRedirection
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x415f18
lea ecx, [ebp - 0x12e8]
push ecx
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x424]
push eax
mov byte [ebp - 4], 0xb
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 0x4162e6
push 0x461d68
push edi
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x4162e6
push str..xml
push edi
mov edi, dword [sym.imp.MSVCR110.dll__wcsicmp]
call edi
add esp, 8
test eax, eax
je 0x4162ec
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 - 0x424]
push eax
lea eax, [ebp - 0x21c]
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 - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x416009
mov edi, dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call edi
add esp, 0xc
jmp 0x41638d
cmp byte [0x482761], 0
jne 0x416055
mov byte [0x482761], 1
call fcn.00412430
add eax, 0x90
cmp dword [eax + 0x14], 8
jb 0x41602b
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x12e4]
call fcn.00406d00
lea ecx, [ebp - 0x12e4]
mov byte [ebp - 4], 0xc
call fcn.0040e710
lea ecx, [ebp - 0x12e4]
mov byte [ebp - 4], 0xb
call fcn.00401100
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
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
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41638d
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.00417960
push ecx
lea eax, [ebp - 0xa3c]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.004470e0
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.00417960
push ecx
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0x424]
push eax
call fcn.004470e0
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0xa3c]
push eax
call edi
add esp, 8
test eax, eax
je 0x41638d
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x134c]
call fcn.00406d00
push str..bak
mov edx, eax
lea ecx, [ebp - 0x12cc]
mov byte [ebp - 4], 0xd
call fcn.00411660
add esp, 4
lea ecx, [ebp - 0x134c]
mov byte [ebp - 4], 0xf
call fcn.00401100
push 1
sub esp, 0x1c
lea eax, [ebp - 0x12cc]
mov ecx, esp
mov dword [ebp - 0x1324], esp
push eax
call fcn.00404f20
sub esp, 0x18
lea eax, [ebp - 0x424]
mov ecx, esp
push eax
mov byte [ebp - 4], 0x10
call fcn.00406d00
call fcn.00417960
mov byte [ebp - 4], 0xf
call fcn.004475e0
mov ecx, eax
lea eax, [ebp - 0x12cc]
test ecx, ecx
jne 0x4162b1
cmp dword [ebp - 0x12b8], 8
mov edi, dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
cmovae eax, dword [ebp - 0x12cc]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__RenameFile_succeed__src___s__dst___s_
call edi
add esp, 0xc
lea eax, [ebp - 0x424]
push 0
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x416204
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call edi
add esp, 0xc
lea ecx, [ebp - 0x12cc]
call fcn.00401100
jmp 0x41638d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_failed__after_rename__src___s__dst___s__err___d_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
test ebx, ebx
je 0x4162d6
push ebx
lea ecx, [ebp - 0x12e4]
call fcn.00406d00
sub esp, 0x18
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x424]
mov ecx, esp
mov dword [ebp - 0x1324], esp
push eax
call fcn.00406d00
sub esp, 0x18
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x21c]
mov ecx, esp
mov dword [ebp - 0x131c], esp
push eax
call fcn.00406d00
sub esp, 0x18
lea eax, [ebp - 0x12e4]
mov ecx, esp
push eax
mov byte [ebp - 4], 0x13
call fcn.00404f20
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.0040e2b0
add esp, 0x48
lea ecx, [ebp - 0x12e4]
call fcn.00401100
lea ecx, [ebp - 0x12cc]
call fcn.00401100
jmp 0x41638d
cmp dword [ebp - 0x12b8], 8
push ecx
cmovae eax, dword [ebp - 0x12cc]
push eax
lea eax, [ebp - 0x424]
push eax
push str.CInstalltools::InstallWithInstFile__RenameFile_failed__src___s__dst___s__err___d_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
lea ecx, [ebp - 0x12cc]
call fcn.00401100
jmp 0x41638d
mov edi, dword [sym.imp.MSVCR110.dll__wcsicmp]
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x416359
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x416334
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call dword [sym.imp.isafepxy.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x41638d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
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 0x41638d
push str.promote.xml
push ebx
call edi
add esp, 8
test eax, eax
je 0x416377
push str.desk_bkg_list.xml
push ebx
call edi
add esp, 8
test eax, eax
jne 0x41638d
push 0
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x12e8]
mov byte [ebp - 4], 5
call fcn.00414ba0
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.00401c10
mov ebx, dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 0x10
inc dword [ebp - 0x132c]
jmp 0x416529
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 0x416529
push edi
push eax
lea eax, [ebp - 0x12cc]
push eax
lea ecx, [ebp - 0x1274]
call fcn.00405030
mov byte [ebp - 4], 0x14
push dword [ebp - 0x1264]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x12e4]
push eax
lea ecx, [ebp - 0x1274]
call fcn.00405030
mov byte [ebp - 4], 0x15
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 - 0x1320]
lea ecx, [ebp - 0x129c]
push str.__INSTDIR_
mov byte [ebp - 4], 0x16
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.00404f90
cmp dword [ebp - 0x12b8], 8
lea ecx, [ebp - 0x12cc]
cmovae ecx, dword [ebp - 0x12cc]
call fcn.004478a0
test eax, eax
jne 0x416503
cmp dword [ebp - 0x12d0], 8
lea edx, [ebp - 0x12e4]
cmovae edx, dword [ebp - 0x12e4]
cmp dword [ebp - 0x12b8], 8
lea ecx, [ebp - 0x12cc]
cmovae ecx, dword [ebp - 0x12cc]
call fcn.00447760
lea ecx, [ebp - 0x129c]
mov byte [ebp - 4], 0x15
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
lea ecx, [ebp - 0x12e4]
call fcn.00401100
lea ecx, [ebp - 0x12cc]
call fcn.00401100
cmp dword [ebp - 0x1260], 8
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
jb 0x416543
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 0x416570
push dword [ebp - 0x128c]
call edi
add esp, 4
add esi, 0x18
cmp esi, dword [ebp - 0x1294]
jne 0x4153d0
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x1298], 0
je 0x4165d8
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.00414b50
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 0x4165ec
push dword [ebp - 0x12b4]
call ebx
add esp, 4
xor eax, eax
cmp dword [ebp - 0x12ec], 8
mov dword [ebp - 0x12a0], 7
mov dword [ebp - 0x12a4], 0
mov word [ebp - 0x12b4], ax
jb 0x41661d
push dword [ebp - 0x1300]
call ebx
add esp, 4
xor eax, eax
cmp dword [ebp - 0x1304], 8
mov dword [ebp - 0x12ec], 7
mov dword [ebp - 0x12f0], 0
mov word [ebp - 0x1300], ax
jb 0x41664e
push dword [ebp - 0x1318]
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.00452076
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 0x416686
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 0x416585
push dword [ebp - 0x128c]
call ebx
add esp, 4
jmp 0x416585
push 0x80070057
call fcn.00418070
int3