Function at 0x414070
Capabilities:
Copy file
Get common file path
Move file

Disassembly:
push 0x9f8
mov eax, 0x449daf
call fcn.004386f7
mov dword [ebp - 0x9e0], ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x9fc], ebx
mov dword [ebp - 0x9f8], ebx
mov dword [ebp - 0x9f4], ebx
push 0x406490
push 0x406275
push 8
push 4
pop eax
push eax
lea eax, [ebp - 0x65c]
push eax
mov byte [ebp - 4], 1
call fcn.0043a7ab
mov edi, 0x4676b0
push edi
lea ecx, [ebp - 0xa04]
mov byte [ebp - 4], 2
call fcn.0040620b
push 0xf
pop edx
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x6dc], ebx
mov byte [ebp - 0x6ec], bl
mov dword [ebp - 0x6f0], edx
mov dword [ebp - 0x6f4], ebx
mov byte [ebp - 0x704], bl
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x678], ecx
mov dword [ebp - 0x67c], ebx
mov word [ebp - 0x68c], ax
mov dword [ebp - 0x660], ecx
mov dword [ebp - 0x664], ebx
mov word [ebp - 0x674], ax
mov dword [ebp - 0xa00], ebx
mov dword [ebp - 0x6c0], edx
mov dword [ebp - 0x6c4], ebx
mov byte [ebp - 0x6d4], bl
mov dword [ebp - 0x690], ecx
mov dword [ebp - 0x694], ebx
mov word [ebp - 0x6a4], ax
push 0x20a
lea eax, [ebp - 0x224]
push ebx
push eax
mov byte [ebp - 4], 9
call fcn.00438dc0
add esp, 0xc
lea eax, [ebp - 0x9fc]
push 0x2c
push eax
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.0040693a
add eax, 0x10
pop ecx
mov dword [esi], eax
call fcn.0041954e
mov eax, dword [ebp - 0x9f8]
mov esi, dword [ebp - 0x9fc]
add esp, 0xc
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
cmp eax, 6
jb 0x414ad6
cmp eax, 8
ja 0x414ad6
push 4
mov edi, ebx
pop ecx
cmp esi, dword [ebp - 0x9f8]
je 0x41420b
lea ebx, [ebp - 0x65c]
cmp edi, 8
jae 0x4141fb
cmp dword [esi + 0x14], 8
jb 0x4141d5
mov eax, dword [esi]
jmp 0x4141d7
mov eax, esi
push eax
mov ecx, ebx
call fcn.00409f9c
push dword [ebx]
push edi
push str.Parameter__1_d_____2_s__n
push str.CUninstallActions::CpyFile
push 4
pop eax
push eax
call fcn.00405a24
add esp, 0x14
push 4
pop ecx
add esi, 0x18
inc edi
add ebx, ecx
cmp esi, dword [ebp - 0x9f8]
jne 0x4141c6
xor ebx, ebx
mov eax, dword [ebp - 0x650]
cmp dword [eax - 0xc], 0
jne 0x41421f
push eax
push str.Parameter__1_s___donot_have_PARAM_COPYFILE_NAME_n
jmp 0x414231
mov eax, dword [ebp - 0x648]
cmp dword [eax - 0xc], 0
jne 0x414244
push eax
push str.Parameter__1_s___donot_have_PARAM_COPYFILE_SOURCE_NAME_n
push str.CUninstallActions::CpyFile
push ecx
call fcn.00405a24
add esp, 0x10
jmp 0x4146af
mov esi, dword [ebp - 0x9e8]
mov dword [ebp - 0x9e4], ebx
xor eax, eax
test ebx, ebx
cmove esi, eax
cmp ebx, 1
cmove esi, ecx
push 9
push str.CPY_DEF
mov edi, 0x105
mov dword [ebp - 0x9e8], esi
call fcn.0043965b
lea ebx, [ebp - 0x65c]
push eax
lea ebx, [ebx + esi*4]
push str.CPY_DEF
push dword [ebx]
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x41433d
push 0x4676b0
lea ecx, [ebp - 0x9f0]
call fcn.0040620b
xor eax, eax
push eax
push 0x452324
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.0040ceb0
mov ecx, dword [ebx]
lea edi, [eax + 1]
mov esi, dword [ecx - 0xc]
push edi
lea eax, [ebp - 0x9ec]
push eax
mov ecx, ebx
inc esi
call fcn.0040d324
lea ecx, [ebp - 0x9f0]
push ecx
sub esi, edi
mov edi, dword [ebp - 0x9e0]
push esi
push dword [eax]
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00420631
mov ecx, dword [ebp - 0x9ec]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.00409a06
mov esi, dword [ebp - 0x9f0]
cmp dword [esi - 0xc], 0
je 0x414326
xor eax, eax
cmp word [esi], ax
je 0x414319
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.00401db2
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 9
call fcn.00409a06
mov esi, dword [ebp - 0x9e8]
jmp 0x414446
push str.CPY_WINDOWS
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x414396
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x414440
cmp word [ebp - 0x224], 0
jne 0x414371
xor eax, eax
jmp 0x41437e
lea eax, [ebp - 0x224]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00401db2
jmp 0x414440
push str.CPY_SYSTEM
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x4143b6
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
jmp 0x414363
push str.CPY_SYSTEMWOW64
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x41445f
push str.Kernel32.dll
call fcn.00401fef
mov esi, eax
pop ecx
test esi, esi
je 0x41443a
push str.GetSystemWow64DirectoryW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41467d
push 0x20a
lea ecx, [ebp - 0x63c]
push ecx
call eax
test eax, eax
je 0x414667
cmp word [ebp - 0x63c], 0
jne 0x414413
xor eax, eax
jmp 0x414420
lea eax, [ebp - 0x63c]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x63c]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00401db2
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x9e8]
mov edi, dword [ebp - 0x9e0]
mov ebx, dword [ebp - 0x9e4]
test ebx, ebx
jne 0x414637
lea ecx, [ebp - 0x68c]
jmp 0x414642
push str.CPY_PROGRAM_FILES
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x4144cf
xor ebx, ebx
mov dword [ebp - 0x6a8], 7
mov dword [ebp - 0x6ac], ebx
mov word [ebp - 0x6bc], ax
push ebx
push 0x26
lea eax, [ebp - 0x6bc]
push eax
push ebx
mov byte [ebp - 4], 0xd
call fcn.00427d59
add esp, 0x10
test eax, eax
je 0x4144b8
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x6bc]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00401cf8
push ebx
push 1
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 9
call fcn.00401ba5
jmp 0x414440
push str.CPY_SYSTEMROOT
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x414522
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x414440
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x224]
push edi
push eax
push eax
call fcn.0043967a
add esp, 0x24
cmp word [ebp - 0x224], bx
jne 0x414371
mov eax, ebx
jmp 0x41437e
push str.CPY_DRIVERS
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x41456c
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x44d8a8
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.004391ef
push str.IoSubsys
lea eax, [ebp - 0x224]
push edi
push eax
call fcn.004391ef
add esp, 0x18
jmp 0x414363
push str.CPY_66000
mov ecx, ebx
call fcn.004069bd
test eax, eax
je 0x414ad0
push str.CPY_66001
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x4145b3
lea eax, [ebp - 0xa00]
push eax
push 0x20a
lea eax, [ebp - 0x224]
push eax
push 1
xor ebx, ebx
push ebx
push ebx
call sub.WINSPOOL.DRV_GetPrintProcessorDirectoryW
jmp 0x41450e
push str.CPY_66002
mov ecx, ebx
call fcn.004069bd
test eax, eax
je 0x4143a6
push str.CPY_66003
mov ecx, ebx
call fcn.004069bd
test eax, eax
jne 0x4145fc
lea eax, [ebp - 0x9e8]
push eax
lea eax, [ebp - 0x224]
push eax
xor ebx, ebx
push ebx
mov dword [ebp - 0x9e8], 0x20a
call sub.mscms.dll_GetColorDirectoryW
jmp 0x41450e
push str.CPY_PRINTERDRIVER
lea ecx, [ebp - 0x65c]
call fcn.004069bd
test eax, eax
jne 0x414ac8
lea eax, [ebp - 0xa00]
push eax
push 0x20a
lea eax, [ebp - 0x224]
push eax
push 1
xor ebx, ebx
push ebx
push ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
jmp 0x41450e
cmp ebx, 1
jne 0x414653
lea ecx, [ebp - 0x674]
push 0xffffffffffffffff
xor eax, eax
push eax
lea eax, [ebp - 0x6a4]
push eax
call fcn.00401cf8
inc ebx
mov dword [ebp - 0x9e4], ebx
cmp ebx, 2
jae 0x414686
push 4
pop ecx
jmp 0x414250
push str.This_System_isnot_64_bit._n
push str.CUninstallActions::CpyFile
push 4
pop eax
push eax
call fcn.00405a24
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4146af
mov eax, dword [ebp - 0x644]
cmp dword [eax - 0xc], 0
je 0x4146b7
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.0040693a
pop ecx
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.0041bf94
test eax, eax
jne 0x4146b7
xor esi, esi
inc esi
jmp 0x414b24
lea ecx, [ebp - 0x9dc]
call fcn.004264d8
xor ebx, ebx
xor esi, esi
inc ebx
cmp dword [ebp - 0x678], 8
lea eax, [ebp - 0x68c]
cmovae eax, dword [ebp - 0x68c]
push eax
mov byte [ebp - 4], 0xe
mov edi, esi
call fcn.004265cc
pop ecx
test eax, eax
je 0x4147b3
push str.dummy.txt
call fcn.0043860f
pop ecx
push eax
push str.dummy.txt
lea ecx, [ebp - 0x68c]
call fcn.004053dd
cmp dword [ebp - 0x678], 8
push esi
push esi
push esi
push esi
push 0x105
lea ecx, [ebp - 0x430]
push ecx
push 4
lea ecx, [ebp - 0x18]
lea eax, [ebp - 0x68c]
cmovae eax, dword [ebp - 0x68c]
push ecx
push eax
call fcn.0043967a
add esp, 0x24
cmp word [ebp - 0x18], si
jne 0x414749
mov eax, esi
jmp 0x414753
lea eax, [ebp - 0x18]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x68c]
call fcn.00401db2
cmp word [ebp - 0x430], si
jne 0x414770
mov eax, esi
jmp 0x41477d
lea eax, [ebp - 0x430]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x68c]
call fcn.004053dd
mov esi, dword [ebp - 0x650]
xor eax, eax
cmp word [esi], ax
je 0x4147a4
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x68c]
call fcn.004053dd
xor esi, esi
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push eax
call fcn.004265cc
pop ecx
test eax, eax
je 0x414943
push str.dummy.txt
call fcn.0043860f
pop ecx
push eax
push str.dummy.txt
lea ecx, [ebp - 0x674]
call fcn.004053dd
cmp dword [ebp - 0x660], 8
push esi
push esi
push esi
push esi
push 0x105
lea ecx, [ebp - 0x430]
push ecx
push 4
lea ecx, [ebp - 0x18]
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push ecx
push eax
call fcn.0043967a
add esp, 0x24
cmp word [ebp - 0x18], di
jne 0x41482f
mov eax, esi
jmp 0x414839
lea eax, [ebp - 0x18]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x674]
call fcn.00401db2
cmp word [ebp - 0x430], di
jne 0x414856
mov eax, esi
jmp 0x414863
lea eax, [ebp - 0x430]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x674]
call fcn.004053dd
mov eax, dword [ebp - 0x640]
cmp dword [eax - 0xc], edi
je 0x414922
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push eax
lea ecx, [ebp - 0x9dc]
call fcn.004265bd
mov eax, dword [ebp - 0x640]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.0040693a
pop ecx
mov ecx, dword [ebp - 0x9e0]
add eax, 0x10
mov dword [esi], eax
call fcn.0041b1d8
mov edi, eax
test edi, edi
jne 0x414917
push ecx
mov ecx, dword [ebp - 0x640]
add ecx, 0xfffffff0
mov dword [ebp - 0x9ec], esp
mov esi, esp
push ecx
call fcn.0040693a
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x648]
add eax, 0xfffffff0
mov esi, esp
push eax
mov byte [ebp - 4], 0xf
call fcn.0040693a
add eax, 0x10
pop ecx
mov ecx, dword [ebp - 0x9e0]
mov dword [esi], eax
mov byte [ebp - 4], 0xe
call fcn.0041caee
mov ebx, eax
lea ecx, [ebp - 0x9dc]
call fcn.00426b97
mov esi, dword [ebp - 0x648]
xor eax, eax
cmp word [esi], ax
je 0x414936
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x674]
call fcn.004053dd
cmp dword [ebp - 0x660], 8
lea ecx, [ebp - 0x674]
cmovae ecx, dword [ebp - 0x674]
cmp dword [ebp - 0x678], 8
push ecx
lea eax, [ebp - 0x68c]
cmovae eax, dword [ebp - 0x68c]
push eax
push str.strFilePathW___1_ls___strSrcPathW___2_ls__n
push str.CUninstallActions::CpyFile
push 4
pop esi
push esi
call fcn.00405a24
cmp dword [ebp - 0x660], 8
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push eax
call fcn.00426617
add esp, 0x18
test eax, eax
je 0x414ab4
test ebx, ebx
je 0x414aa1
push str._VerCondition_OK_
mov esi, str.CUninstallActions::CpyFile
push esi
push 4
pop ebx
push ebx
call fcn.00405a24
add esp, 0xc
cmp dword [ebp - 0x678], 8
lea ecx, [ebp - 0x68c]
cmovae ecx, dword [ebp - 0x68c]
cmp dword [ebp - 0x660], 8
push 0
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x414a06
push str._____copied__n
push esi
push ebx
jmp 0x414aac
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push eax
push str._____copy_failed_0x_1_lx___n
push str.CUninstallActions::CpyFile
push ebx
call fcn.00405a24
add esp, 0x10
test edi, edi
je 0x414ab4
push str.______RESERVED_TO_COPY_AFTER_RESTART__n
mov edi, str.CUninstallActions::CpyFile
push edi
push ebx
call fcn.00405a24
add esp, 0xc
cmp dword [ebp - 0x678], 8
lea ecx, [ebp - 0x68c]
cmovae ecx, dword [ebp - 0x68c]
cmp dword [ebp - 0x660], 8
push ebx
lea eax, [ebp - 0x674]
cmovae eax, dword [ebp - 0x674]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x414a8d
push ecx
mov ecx, esp
push str.SET_VARSIGNED__0x00000000_REBOOT_DIRECT___1
call fcn.00406234
mov ecx, dword [ebp - 0x9e0]
call fcn.0041edcf
jmp 0x414ab4
call esi
push eax
push str._____movefile_failed_0x_1_lx___n
push edi
push ebx
call fcn.00405a24
add esp, 0x10
jmp 0x414ab4
push str._____SrcFile_isnot_found._n
push str.CUninstallActions::CpyFile
push esi
call fcn.00405a24
add esp, 0xc
xor esi, esi
lea ecx, [ebp - 0x9dc]
inc esi
mov byte [ebp - 4], 9
call fcn.00426564
jmp 0x414b24
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov esi, eax
jmp 0x414b24
push edi
lea ecx, [ebp - 0x9e4]
call fcn.0040620b
push 0x57
mov byte [ebp - 4], 0xa
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp + 8]
lea eax, [ebp - 0x9e4]
push str.CUninstallActions::CpyFile_invalid_parameters.___s_
push eax
call fcn.00406ea6
mov esi, dword [ebp - 0x9e4]
add esp, 0xc
push 0x10
push str.Internal_Error
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esi - 0x10]
call fcn.00409a06
mov esi, ebx
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x6a4]
call fcn.00401ba5
lea ecx, [ebp - 0x6d4]
call fcn.004010d7
push ebx
push 1
lea ecx, [ebp - 0x674]
call fcn.00401ba5
push ebx
push 1
lea ecx, [ebp - 0x68c]
call fcn.00401ba5
lea ecx, [ebp - 0x704]
call fcn.004010d7
lea ecx, [ebp - 0x6ec]
call fcn.004010d7
mov ecx, dword [ebp - 0xa04]
lea ecx, [ecx - 0x10]
call fcn.00409a06
push 0x406490
push 8
push 4
pop eax
push eax
lea eax, [ebp - 0x65c]
push eax
mov byte [ebp - 4], 1
call fcn.00438e50
lea ecx, [ebp - 0x9fc]
call fcn.004052ea
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00409a06
mov eax, esi
call fcn.004386a6
ret 4