Function at 0x40fa20
Capabilities:
Check if file exists
Copy file
Get common file path
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x434217
mov eax, dword fs:[0]
push eax
mov eax, 0x1e4c
call fcn.00431f70
mov eax, dword [0x455070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1e04], ecx
lea ecx, [ebp - 0x1d18]
call fcn.00405b40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b40
mov byte [ebp - 4], 1
call fcn.00411780
mov ecx, eax
call fcn.00425560
mov dword [ebp - 0x1d94], eax
cmp dword [ebp - 0x1d94], 7
jl 0x40faa4
push 0x43c7d0
lea ecx, [ebp - 0x1d18]
call fcn.004033a0
jmp 0x40fab4
push 0x43c7e0
lea ecx, [ebp - 0x1d18]
call fcn.004033a0
call fcn.00411780
mov ecx, eax
call fcn.00425730
movzx eax, al
test eax, eax
je 0x40fad9
push 0x43c7ec
lea ecx, [ebp - 0x1d00]
call fcn.004033a0
jmp 0x40fae9
push 0x43c7f8
lea ecx, [ebp - 0x1d00]
call fcn.004033a0
mov dword [ebp - 0x1d7c], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b40
mov byte [ebp - 4], 2
push 1
lea ecx, [ebp - 0x1c9c]
call fcn.00401140
lea ecx, [ebp - 0x1c9c]
call fcn.00403440
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c9c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00411320
mov ecx, eax
call fcn.00424fb0
mov byte [ebp - 0x1d62], 0
push 1
lea ecx, [ebp - 0x1c84]
call fcn.00406860
lea eax, [ebp - 0x1c84]
push eax
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3a0
jmp 0x40fb71
push 0
lea ecx, [ebp - 0x1e08]
push ecx
lea ecx, [ebp - 0x1c84]
call fcn.0040f420
lea edx, [ebp - 0x1e10]
push edx
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3d0
push eax
lea ecx, [ebp - 0x1c84]
call fcn.004054a0
movzx eax, al
test eax, eax
je 0x410cd1
lea ecx, [ebp - 0x1ccc]
call fcn.00405b40
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b40
mov byte [ebp - 4], 5
push 0
push 0x43c804
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.0040b9d0
mov dword [ebp - 0x1d68], eax
cmp dword [ebp - 0x1d68], 0xffffffff
jne 0x40fbfc
lea ecx, [ebp - 0x1c84]
call fcn.00404b00
push eax
lea ecx, [ebp - 0x1ccc]
call fcn.00405ac0
jmp 0x40fc9a
mov ecx, dword [ebp - 0x1d68]
push ecx
push 0
lea edx, [ebp - 0x1e58]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004033f0
mov dword [ebp - 0x1d8c], eax
mov eax, dword [ebp - 0x1d8c]
push eax
lea ecx, [ebp - 0x1ccc]
call fcn.004032c0
lea ecx, [ebp - 0x1e58]
call fcn.00405b70
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.00405c20
push eax
mov ecx, dword [ebp - 0x1d68]
add ecx, 1
push ecx
lea edx, [ebp - 0x1e28]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004033f0
mov dword [ebp - 0x1d90], eax
mov eax, dword [ebp - 0x1d90]
push eax
lea ecx, [ebp - 0x1cb4]
call fcn.004032c0
lea ecx, [ebp - 0x1e28]
call fcn.00405b70
xor ecx, ecx
mov word [ebp - 0x218], cx
push 0x206
push 0
lea edx, [ebp - 0x216]
push edx
call sub.MSVCR110.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x420], ax
push 0x206
push 0
lea ecx, [ebp - 0x41e]
push ecx
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x43c808
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40fe09
lea ecx, [ebp - 0x1d00]
call fcn.004059f0
push eax
push str._X64_
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40fd40
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
jmp 0x40fb5d
push 0
lea edx, [ebp - 0x1dec]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f420
lea eax, [ebp - 0x1df4]
push eax
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3d0
push eax
lea ecx, [ebp - 0x1c84]
call fcn.00404ac0
movzx ecx, al
test ecx, ecx
je 0x40fddb
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c9c]
call fcn.00403560
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d18]
call fcn.00405b70
jmp 0x410d10
push str.__X64_
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40fd40
jmp 0x40ff35
push 0x43c830
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40ff35
lea ecx, [ebp - 0x1d00]
call fcn.004059f0
push eax
push str._X86_
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40fe71
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
jmp 0x40fb5d
push 0
lea edx, [ebp - 0x1dd0]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f420
lea eax, [ebp - 0x1dc4]
push eax
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3d0
push eax
lea ecx, [ebp - 0x1c84]
call fcn.00404ac0
movzx ecx, al
test ecx, ecx
je 0x40ff0c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c9c]
call fcn.00403560
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d18]
call fcn.00405b70
jmp 0x410d10
push str.__X86_
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40fe71
push 0x43c858
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x410066
lea ecx, [ebp - 0x1d18]
call fcn.004059f0
push eax
push str._WIN7_
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40ff9d
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
jmp 0x40fb5d
push 0
lea edx, [ebp - 0x1dd8]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f420
lea eax, [ebp - 0x1dfc]
push eax
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3d0
push eax
lea ecx, [ebp - 0x1c84]
call fcn.00404ac0
movzx ecx, al
test ecx, ecx
je 0x410038
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c9c]
call fcn.00403560
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d18]
call fcn.00405b70
jmp 0x410d10
push str.__WIN7_
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40ff9d
jmp 0x410192
push 0x43c888
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x410192
lea ecx, [ebp - 0x1d18]
call fcn.004059f0
push eax
push str._XP_
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4100ce
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
jmp 0x40fb5d
push 0
lea edx, [ebp - 0x1de0]
push edx
lea ecx, [ebp - 0x1c84]
call fcn.0040f420
lea eax, [ebp - 0x1e0c]
push eax
lea ecx, [ebp - 0x1c9c]
call fcn.0040f3d0
push eax
lea ecx, [ebp - 0x1c84]
call fcn.00404ac0
movzx ecx, al
test ecx, ecx
je 0x410169
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c9c]
call fcn.00403560
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d18]
call fcn.00405b70
jmp 0x410d10
push str.__XP_
lea ecx, [ebp - 0x1c84]
call fcn.0040f400
mov ecx, eax
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4100ce
push str._SetOutPath_
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x41040f
push 1
lea ecx, [ebp - 0x1c88]
call fcn.00406860
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x1c88]
call fcn.004113a0
mov byte [ebp - 4], 6
xor edx, edx
mov word [ebp - 0xa38], dx
push 0x206
push 0
lea eax, [ebp - 0xa36]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x104
lea ecx, [ebp - 0xa38]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor edx, edx
mov word [ebp - 0x628], dx
push 0x206
push 0
lea eax, [ebp - 0x626]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x628]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor edx, edx
mov word [ebp - 0xe48], dx
push 0x206
push 0
lea eax, [ebp - 0xe46]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
push str.Fonts
lea ecx, [ebp - 0x628]
push ecx
lea edx, [ebp - 0xe48]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
xor eax, eax
mov word [ebp - 0x1258], ax
push 0x206
push 0
lea ecx, [ebp - 0x1256]
push ecx
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0
push 0
push 0x104
lea edx, [ebp - 0x1258]
push edx
call fcn.0040ba00
mov ecx, eax
call fcn.00424ca0
xor eax, eax
mov word [ebp - 0xc40], ax
push 0x206
push 0
lea ecx, [ebp - 0xc3e]
push ecx
call sub.MSVCR110.dll_memset
add esp, 0xc
xor edx, edx
mov word [ebp - 0x1050], dx
push 0x206
push 0
lea eax, [ebp - 0x104e]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1050]
push ecx
push 1
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
call fcn.00412470
mov ecx, eax
call fcn.004124f0
push eax
lea edx, [ebp - 0x1050]
push edx
lea eax, [ebp - 0xc40]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x628]
push ecx
push str.__WINDIR_
lea ecx, [ebp - 0x1c88]
call fcn.00411460
mov edx, dword [ebp + 0x10]
push edx
push 0x43c8e8
lea ecx, [ebp - 0x1c88]
call fcn.00411460
lea eax, [ebp - 0xa38]
push eax
push 0x43c900
lea ecx, [ebp - 0x1c88]
call fcn.00411460
lea ecx, [ebp - 0xe48]
push ecx
push str.__FONTS_
lea ecx, [ebp - 0x1c88]
call fcn.00411460
lea edx, [ebp - 0x1258]
push edx
push 0x43c928
lea ecx, [ebp - 0x1c88]
call fcn.00411460
lea eax, [ebp - 0xc40]
push eax
push str.__GCTEMP_
lea ecx, [ebp - 0x1c88]
call fcn.00411460
push 0x43c954
push 0x43c958
lea ecx, [ebp - 0x1c88]
call fcn.00411460
lea ecx, [ebp - 0x1c88]
call fcn.00411760
push eax
lea ecx, [ebp - 0x1c88]
call fcn.00411740
push eax
lea ecx, [ebp - 0x1ce8]
call fcn.004033a0
call fcn.0040ba00
lea ecx, [ebp - 0x1ce8]
call fcn.004059f0
mov ecx, eax
call fcn.00424e40
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c88]
call fcn.00411420
jmp 0x410cae
push str._FILE_
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x410b6e
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov dword [ebp - 0x1d6c], eax
push 0x43c970
mov ecx, dword [ebp - 0x1d6c]
push ecx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x41065e
push 1
lea ecx, [ebp - 0x1c8c]
call fcn.00406860
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x1c8c]
call fcn.004113a0
mov byte [ebp - 4], 7
push 0
push 0x43c974
lea ecx, [ebp - 0x1c8c]
call fcn.00411640
mov dword [ebp - 0x1d98], eax
mov edx, dword [ebp - 0x1d98]
sub edx, 1
push edx
lea eax, [ebp - 0x1db0]
push eax
lea ecx, [ebp - 0x1c8c]
call fcn.004116c0
mov dword [ebp - 0x1da0], eax
mov ecx, dword [ebp - 0x1da0]
mov dword [ebp - 0x1da8], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1da8]
push edx
lea ecx, [ebp - 0x1c8c]
call fcn.00411440
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1db0]
call fcn.00411420
lea ecx, [ebp - 0x1c8c]
call fcn.00411760
push eax
lea ecx, [ebp - 0x1c8c]
call fcn.00411740
push eax
lea ecx, [ebp - 0x1cb4]
call fcn.004033a0
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x1ce8]
call fcn.004059f0
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
xor ecx, ecx
mov word [ebp - 0x830], cx
push 0x206
push 0
lea edx, [ebp - 0x82e]
push edx
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x43c978
lea ecx, [ebp - 0x1ce8]
call fcn.004059f0
push eax
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1dc8], esp
lea edx, [ebp - 0x830]
push edx
call fcn.004065b0
mov dword [ebp - 0x1db8], eax
mov eax, dword [ebp - 0x1db8]
mov dword [ebp - 0x1dcc], eax
mov byte [ebp - 4], 9
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1dd4], esp
lea edx, [ebp - 0x420]
push edx
call fcn.004065b0
mov dword [ebp - 0x1ddc], eax
mov byte [ebp - 4], 7
call fcn.0040b410
add esp, 0x34
mov byte [ebp - 0x1d63], al
mov al, byte [ebp - 0x1d63]
mov byte [ebp - 0x1d61], al
movzx ecx, byte [ebp - 0x1d61]
test ecx, ecx
je 0x41061d
mov dword [ebp - 0x1d80], 1
jmp 0x410627
mov dword [ebp - 0x1d80], 0
mov edx, dword [ebp - 0x1d80]
push edx
lea eax, [ebp - 0x830]
push eax
lea ecx, [ebp - 0x420]
push ecx
push str.CInstalltools::InstallWithInstFile__CopyFolder_succeed__src___s__des___s__bRet___d_
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c8c]
call fcn.00411420
jmp 0x410b16
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov ecx, dword [ebp - 0x1d6c]
push ecx
lea ecx, [ebp - 0x1ce8]
call fcn.004059f0
push eax
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
call fcn.0040ba00
lea ecx, [ebp - 0x1ce8]
call fcn.004059f0
mov ecx, eax
call fcn.00424e40
push 1
lea ecx, [ebp - 0x1cd0]
call fcn.00406880
lea ecx, [ebp - 0x1cd0]
call fcn.0040f720
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov dword [ebp - 0x1d70], eax
push str..ini
mov ecx, dword [ebp - 0x1d70]
push ecx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x410730
push 0x43ca38
mov edx, dword [ebp - 0x1d70]
push edx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x410730
push str..xml
mov eax, dword [ebp - 0x1d70]
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x410821
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4107b5
push 0
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x1dc0], eax
cmp dword [ebp - 0x1dc0], 0
je 0x410784
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x420]
push edx
push 0x43ca88
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x4107b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1db4], eax
mov eax, dword [ebp - 0x1db4]
push eax
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x420]
push edx
push 0x43cb28
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
jmp 0x41081c
mov byte [ebp - 0x1d62], 1
push str.promote.xml
mov eax, dword [ebp - 0x1d6c]
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4107ed
push 0
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x41081c
push str.desk_bkg_list.xml
mov eax, dword [ebp - 0x1d6c]
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x41081c
push 0
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x410b07
xor eax, eax
mov word [ebp - 0x1c80], ax
push 0x40e
push 0
lea ecx, [ebp - 0x1c7e]
push ecx
call sub.MSVCR110.dll_memset
add esp, 0xc
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
push str._s__s_n
push 0x208
lea ecx, [ebp - 0x1c80]
push ecx
call dword [sym.imp.MSVCR110.dll_swprintf_s]
add esp, 0x14
lea edx, [ebp - 0x1c80]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x1d78], eax
cmp dword [ebp - 0x1d78], 0
je 0x4108bb
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
push 0x43cbe0
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x410b07
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1d74], eax
mov ecx, dword [ebp - 0x1d74]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_failed__src___s__dst___s__err___d_
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x410b07
xor edx, edx
mov word [ebp - 0x1668], dx
push 0x206
push 0
lea eax, [ebp - 0x1666]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x1460], cx
push 0x206
push 0
lea edx, [ebp - 0x145e]
push edx
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1460]
push eax
lea ecx, [ebp - 0x1668]
push ecx
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x410b07
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x1e40]
call fcn.004065b0
mov dword [ebp - 0x1d88], eax
mov eax, dword [ebp - 0x1d88]
mov dword [ebp - 0x1dac], eax
mov byte [ebp - 4], 0xb
push str..bak
mov ecx, dword [ebp - 0x1dac]
push ecx
lea edx, [ebp - 0x1d48]
push edx
call fcn.0040c7a0
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1e40]
call fcn.00405b70
push 1
push 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1de4], esp
lea eax, [ebp - 0x1d48]
push eax
call fcn.00403270
mov dword [ebp - 0x1d9c], eax
mov ecx, dword [ebp - 0x1d9c]
mov dword [ebp - 0x1de8], ecx
mov byte [ebp - 4], 0xe
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1df0], esp
lea edx, [ebp - 0x218]
push edx
call fcn.004065b0
mov dword [ebp - 0x1dbc], eax
mov eax, dword [ebp - 0x1dbc]
mov dword [ebp - 0x1df8], eax
mov byte [ebp - 4], 0xf
call fcn.00411320
mov byte [ebp - 4], 0xd
mov ecx, eax
call fcn.00425340
mov dword [ebp - 0x1da4], eax
mov ecx, dword [ebp - 0x1da4]
mov dword [ebp - 0x1d84], ecx
cmp dword [ebp - 0x1d84], 0
jne 0x410ad0
lea ecx, [ebp - 0x1d48]
call fcn.004059f0
push eax
lea edx, [ebp - 0x218]
push edx
push str.CInstalltools::InstallWithInstFile__RenameFile_succeed__src___s__dst___s_
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
push 0
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x1d78], eax
cmp dword [ebp - 0x1d78], 0
je 0x410a9f
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
push str.CInstalltools::InstallWithInstFile__CopyFile_succeed__src___s__des___s_
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0xc
jmp 0x410ace
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1d74], eax
mov ecx, dword [ebp - 0x1d74]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x420]
push eax
push 0x43ce68
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
jmp 0x410af8
mov ecx, dword [ebp - 0x1d84]
push ecx
lea ecx, [ebp - 0x1d48]
call fcn.004059f0
push eax
lea edx, [ebp - 0x218]
push edx
push 0x43cf40
call dword [sym.imp.iImportLib.dll_ISAFE_WriteProgramLogNoMask]
add esp, 0x10
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1d48]
call fcn.00405b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1cd0]
call fcn.0040f790
xor eax, eax
mov word [ebp - 0x1870], ax
push 0x206
push 0
lea ecx, [ebp - 0x186e]
push ecx
call sub.MSVCR110.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1cb4]
call fcn.004059f0
push eax
push str.Copy_files:_s
push 0x208
lea edx, [ebp - 0x1870]
push edx
call fcn.00401000
add esp, 0x10
mov eax, dword [ebp - 0x1d7c]
add eax, 1
mov dword [ebp - 0x1d7c], eax
jmp 0x410cae
push str._FIREWALL_
lea ecx, [ebp - 0x1ccc]
call fcn.004059f0
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x410cae
push 0
push 0x43ce64
lea ecx, [ebp - 0x1cb4]
call fcn.0040b9d0
mov dword [ebp - 0x1e00], eax
mov ecx, dword [ebp - 0x1d68]
push ecx
push 0
lea edx, [ebp - 0x1d30]
push edx
lea ecx, [ebp - 0x1cb4]
call fcn.004033f0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1cb4]
call fcn.00405c20
push eax
mov eax, dword [ebp - 0x1d68]
add eax, 1
push eax
lea ecx, [ebp - 0x1d60]
push ecx
lea ecx, [ebp - 0x1cb4]
call fcn.004033f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1d30]
call fcn.004059f0
push eax
lea ecx, [ebp - 0x1c90]
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::constructor_wchar_t_const__]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp + 0x10]
push edx
push 0x43d004
lea ecx, [ebp - 0x1c90]
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::Replace_wchar_t_const___wchar_t_const__]
lea ecx, [ebp - 0x1c90]
call dword [sym.imp.ouilibx.dll_public:_int___thiscall_OUI::COString::GetLength_void_const]
push eax
lea ecx, [ebp - 0x1c90]
call dword [sym.imp.ouilibx.dll_public:_wchar_t____thiscall_OUI::COString::GetBuffer_int_]
push eax
lea ecx, [ebp - 0x1d30]
call fcn.004033a0
lea ecx, [ebp - 0x1d30]
call fcn.004059f0
mov ecx, eax
call fcn.00425960
test eax, eax
jne 0x410c80
lea ecx, [ebp - 0x1d60]
call fcn.004059f0
mov esi, eax
lea ecx, [ebp - 0x1d30]
call fcn.004059f0
mov edx, esi
mov ecx, eax
call fcn.00425820
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1c90]
call dword [sym.imp.ouilibx.dll_public:_void___thiscall_OUI::COString::destructor_void_]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1d60]
call fcn.00405b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1d30]
call fcn.00405b70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1cb4]
call fcn.00405b70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1ccc]
call fcn.00405b70
jmp 0x40fb5d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1c9c]
call fcn.00403560
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1ce8]
call fcn.00405b70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1d00]
call fcn.00405b70
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d18]
call fcn.00405b70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004314a6
mov esp, ebp
pop ebp
ret 0xc