Function at 0x4147c0
Capabilities:
Check if file exists
Copy file
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x552d2f
mov eax, dword fs:[0]
push eax
sub esp, 0x7dc
mov eax, dword [0x61308c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x791], cl
push 0
call fcn.0053adb4
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0052d340
add esp, 0x10
lea eax, [ebp - 0x628]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0052d340
add esp, 0xc
lea eax, [ebp - 0x628]
push str.DTDrv8Update
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0xffffffffffffffff
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.0053582a
lea ecx, [ebp - 0x218]
call fcn.004066e0
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0052d340
add esp, 0x1c
push 0x58d844
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea ecx, [ebp - 0x420]
push ecx
mov ecx, eax
call fcn.00408060
xor eax, eax
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0
add esp, 4
mov dword [ebp - 0x62c], 7
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x648], eax
mov dword [ebp - 0x644], eax
mov dword [ebp - 0x644], 7
mov dword [ebp - 0x648], eax
mov word [ebp - 0x658], ax
mov byte [ebp - 4], 1
mov dword [ebp - 0x7a0], eax
mov dword [ebp - 0x79c], eax
mov dword [ebp - 0x798], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x688]
push 0x10
mov dword [ebp - 0x678], eax
mov dword [ebp - 0x674], eax
push str.ManualUpdate.dll
mov dword [ebp - 0x674], 7
mov dword [ebp - 0x678], eax
mov word [ebp - 0x688], ax
call fcn.00404d30
mov byte [ebp - 4], 3
lea eax, [ebp - 0x688]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x674]
cmp eax, 8
jb 0x414980
inc eax
lea ecx, [ebp - 0x688]
push eax
push dword [ebp - 0x688]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x674], 7
push 0x13
mov dword [ebp - 0x690], eax
lea ecx, [ebp - 0x6a0]
mov dword [ebp - 0x68c], eax
push str.DtlManualUpdate.exe
mov dword [ebp - 0x678], 0
mov word [ebp - 0x688], ax
mov dword [ebp - 0x68c], 7
mov dword [ebp - 0x690], eax
mov word [ebp - 0x6a0], ax
call fcn.00404d30
mov byte [ebp - 4], 4
lea eax, [ebp - 0x6a0]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x68c]
cmp eax, 8
jb 0x414a0a
inc eax
lea ecx, [ebp - 0x6a0]
push eax
push dword [ebp - 0x6a0]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x68c], 7
push 0xe
mov dword [ebp - 0x6a8], eax
lea ecx, [ebp - 0x6b8]
mov dword [ebp - 0x6a4], eax
push 0x58d8b4
mov dword [ebp - 0x690], 0
mov word [ebp - 0x6a0], ax
mov dword [ebp - 0x6a4], 7
mov dword [ebp - 0x6a8], eax
mov word [ebp - 0x6b8], ax
call fcn.00404d30
mov byte [ebp - 4], 5
lea eax, [ebp - 0x6b8]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x6a4]
cmp eax, 8
jb 0x414a94
inc eax
lea ecx, [ebp - 0x6b8]
push eax
push dword [ebp - 0x6b8]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x6a4], 7
push 8
mov dword [ebp - 0x6c0], eax
lea ecx, [ebp - 0x6d0]
mov dword [ebp - 0x6bc], eax
push 0x58d8d4
mov dword [ebp - 0x6a8], 0
mov word [ebp - 0x6b8], ax
mov dword [ebp - 0x6bc], 7
mov dword [ebp - 0x6c0], eax
mov word [ebp - 0x6d0], ax
call fcn.00404d30
mov byte [ebp - 4], 6
lea eax, [ebp - 0x6d0]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x6bc]
cmp eax, 8
jb 0x414b1e
inc eax
lea ecx, [ebp - 0x6d0]
push eax
push dword [ebp - 0x6d0]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x6bc], 7
push 0xb
mov dword [ebp - 0x6d8], eax
lea ecx, [ebp - 0x6e8]
mov dword [ebp - 0x6d4], eax
push 0x58d8e8
mov dword [ebp - 0x6c0], 0
mov word [ebp - 0x6d0], ax
mov dword [ebp - 0x6d4], 7
mov dword [ebp - 0x6d8], eax
mov word [ebp - 0x6e8], ax
call fcn.00404d30
mov byte [ebp - 4], 7
lea eax, [ebp - 0x6e8]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x6d4]
cmp eax, 8
jb 0x414ba8
inc eax
lea ecx, [ebp - 0x6e8]
push eax
push dword [ebp - 0x6e8]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x6d4], 7
push 0xc
mov dword [ebp - 0x6f0], eax
lea ecx, [ebp - 0x700]
mov dword [ebp - 0x6ec], eax
push str.zlibwapi.dll
mov dword [ebp - 0x6d8], 0
mov word [ebp - 0x6e8], ax
mov dword [ebp - 0x6ec], 7
mov dword [ebp - 0x6f0], eax
mov word [ebp - 0x700], ax
call fcn.00404d30
mov byte [ebp - 4], 8
lea eax, [ebp - 0x700]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x6ec]
cmp eax, 8
jb 0x414c32
inc eax
lea ecx, [ebp - 0x700]
push eax
push dword [ebp - 0x700]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x6ec], 7
push 0xb
mov dword [ebp - 0x708], eax
lea ecx, [ebp - 0x718]
mov dword [ebp - 0x704], eax
push 0x58d91c
mov dword [ebp - 0x6f0], 0
mov word [ebp - 0x700], ax
mov dword [ebp - 0x704], 7
mov dword [ebp - 0x708], eax
mov word [ebp - 0x718], ax
call fcn.00404d30
mov byte [ebp - 4], 9
lea eax, [ebp - 0x718]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.004156e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x704]
cmp eax, 8
jb 0x414cbc
inc eax
lea ecx, [ebp - 0x718]
push eax
push dword [ebp - 0x718]
call fcn.00404be0
mov ebx, dword [ebp - 0x79c]
xor eax, eax
mov word [ebp - 0x718], ax
mov eax, dword [ebp - 0x7a0]
mov esi, eax
mov dword [ebp - 0x704], 7
mov dword [ebp - 0x708], 0
mov dword [ebp - 0x7a8], eax
mov dword [ebp - 0x7ac], ebx
cmp eax, ebx
je 0x414faf
nop dword [eax + eax]
cmp word [ebp - 0x420], 0
jne 0x414d0e
xor ecx, ecx
jmp 0x414d26
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414d17
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x658]
call fcn.00404d30
cmp word [ebp - 0x218], 0
jne 0x414d47
xor ecx, ecx
jmp 0x414d5f
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414d50
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x640]
call fcn.00404d30
push 0x58d934
lea edx, [ebp - 0x658]
lea ecx, [ebp - 0x748]
call fcn.0040ebc0
mov byte [ebp - 4], 0xa
mov edx, eax
push esi
lea ecx, [ebp - 0x730]
call fcn.00415780
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x658]
cmp eax, edi
je 0x414df4
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x414dcb
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x644], 7
push edi
lea ecx, [ebp - 0x658]
mov dword [ebp - 0x648], 0
mov word [ebp - 0x658], ax
call fcn.00407af0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x71c]
cmp eax, 8
jb 0x414e16
inc eax
lea ecx, [ebp - 0x730]
push eax
push dword [ebp - 0x730]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x71c], 7
mov dword [ebp - 0x720], 0
mov word [ebp - 0x730], ax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x734]
cmp eax, 8
jb 0x414e55
inc eax
lea ecx, [ebp - 0x748]
push eax
push dword [ebp - 0x748]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x734], 7
push 0x58d938
lea edx, [ebp - 0x640]
mov dword [ebp - 0x738], 0
lea ecx, [ebp - 0x778]
mov word [ebp - 0x748], ax
call fcn.0040ebc0
mov byte [ebp - 4], 0xc
mov edx, eax
push esi
lea ecx, [ebp - 0x760]
call fcn.00415780
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x640]
cmp eax, edi
je 0x414ef4
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x414ecb
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x62c], 7
push edi
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407af0
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x74c]
cmp eax, 8
jb 0x414f16
inc eax
lea ecx, [ebp - 0x760]
push eax
push dword [ebp - 0x760]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x74c], 7
mov dword [ebp - 0x750], 0
mov word [ebp - 0x760], ax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x764]
cmp eax, 8
jb 0x414f55
inc eax
lea ecx, [ebp - 0x778]
push eax
push dword [ebp - 0x778]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x764], 7
cmp dword [ebp - 0x62c], 8
lea ecx, [ebp - 0x640]
mov word [ebp - 0x778], ax
lea eax, [ebp - 0x658]
cmovae ecx, dword [ebp - 0x640]
cmp dword [ebp - 0x644], 8
push 0
cmovae eax, dword [ebp - 0x658]
push ecx
push eax
mov dword [ebp - 0x768], 0
call dword [sym.imp.KERNEL32.dll_CopyFileW]
add esi, 0x18
cmp esi, ebx
jne 0x414d00
cmp word [ebp - 0x218], 0
jne 0x414fbd
xor ecx, ecx
jmp 0x414fd5
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414fc6
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x640]
call fcn.00404d30
push 0x58d93c
lea edx, [ebp - 0x640]
lea ecx, [ebp - 0x790]
call fcn.0040ebc0
add esp, 4
mov esi, eax
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x640]
cmp eax, esi
je 0x415058
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x41502f
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x62c], 7
push esi
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x630], 0
mov word [ebp - 0x640], ax
call fcn.00407af0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x77c]
cmp eax, 8
jb 0x41507a
inc eax
lea ecx, [ebp - 0x790]
push eax
push dword [ebp - 0x790]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x77c], 7
cmp dword [ebp - 0x62c], 8
mov word [ebp - 0x790], ax
lea eax, [ebp - 0x640]
cmovae eax, dword [ebp - 0x640]
push eax
mov dword [ebp - 0x780], 0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41513a
mov esi, dword [0x618d24]
test esi, esi
jne 0x415114
push 0x124
call fcn.005120b2
mov esi, eax
mov dword [ebp - 0x7a4], esi
mov byte [ebp - 4], 0xf
lea ecx, [esi + 4]
push 0x104
push 0
mov dword [esi], 0
push ecx
mov dword [esi + 0x108], 0xffffffff
call fcn.0052d340
add esp, 0x10
lea eax, [esi + 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [ebp - 4], 2
mov dword [0x618d24], esi
push 0x58d968
push 0
push 0x58d984
push 0x58d9a0
push 0x814
push esi
call fcn.00409720
add esp, 0x18
xor bl, bl
jmp 0x415390
xor eax, eax
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x65c], 0
mov dword [ebp - 0x65c], 7
mov dword [ebp - 0x660], 0
mov word [ebp - 0x670], ax
mov byte [ebp - 4], 0x10
cmp byte [ebp - 0x791], al
je 0x415189
push 0x1a
push str._passtivemode__autoinstall
lea ecx, [ebp - 0x670]
call fcn.00406f60
mov esi, dword [0x618d24]
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
test esi, esi
jne 0x4151e5
push 0x124
call fcn.005120b2
mov esi, eax
mov dword [ebp - 0x7a4], esi
mov byte [ebp - 4], 0x11
lea ecx, [esi + 4]
push 0x104
push 0
mov dword [esi], 0
push ecx
mov dword [esi + 0x108], 0xffffffff
call fcn.0052d340
add esp, 0x10
lea eax, [esi + 0x10c]
push eax
call ebx
mov byte [ebp - 4], 0x10
mov dword [0x618d24], esi
push 0x58d9e8
push 0
push 0x58da00
push 0x58da1c
push 0x81e
push esi
call fcn.00409720
add esp, 0x18
call fcn.0040ded0
cmp eax, 0x40
jae 0x415249
cmp dword [ebp - 0x65c], 8
lea edx, [ebp - 0x670]
lea ecx, [ebp - 0x640]
cmovae edx, dword [ebp - 0x670]
cmp dword [ebp - 0x62c], 8
cmovae ecx, dword [ebp - 0x640]
sub esp, 8
call fcn.0040b930
add esp, 8
movzx edi, al
jmp 0x4152c7
push 0x38
lea eax, [ebp - 0x7e4]
mov dword [ebp - 0x7e8], 0x3c
push 0
push eax
call fcn.0052d340
add esp, 0xc
mov dword [ebp - 0x7cc], 0
cmp dword [ebp - 0x62c], 8
lea eax, [ebp - 0x640]
mov dword [ebp - 0x7dc], str.runas
cmovae eax, dword [ebp - 0x640]
cmp dword [ebp - 0x65c], 8
mov dword [ebp - 0x7d8], eax
lea eax, [ebp - 0x670]
cmovae eax, dword [ebp - 0x670]
mov dword [ebp - 0x7d4], eax
lea eax, [ebp - 0x7e8]
push eax
mov dword [ebp - 0x7e4], 0
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov edi, eax
mov esi, dword [0x618d24]
test esi, esi
jne 0x41531d
push 0x124
call fcn.005120b2
mov esi, eax
mov dword [ebp - 0x7a4], esi
mov byte [ebp - 4], 0x12
lea ecx, [esi + 4]
push 0x104
push 0
mov dword [esi], 0
push ecx
mov dword [esi + 0x108], 0xffffffff
call fcn.0052d340
add esp, 0x10
lea eax, [esi + 0x10c]
push eax
call ebx
mov byte [ebp - 4], 0x10
mov dword [0x618d24], esi
mov ecx, 0x58da40
test edi, edi
mov eax, 0x58da38
cmove eax, ecx
push eax
push 0x58da48
push 0
push str.CCommonHelp::CheckUpdate
push str.CommonHelp.cpp
push 0x82e
push esi
call fcn.00409720
add esp, 0x1c
test edi, edi
setne bl
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x65c]
cmp eax, 8
jb 0x415373
inc eax
lea ecx, [ebp - 0x670]
push eax
push dword [ebp - 0x670]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x65c], 7
mov dword [ebp - 0x660], 0
mov word [ebp - 0x670], ax
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x7a8]
test esi, esi
je 0x4153f3
push dword [ebp - 0x7a4]
mov edx, dword [ebp - 0x7ac]
push ecx
mov ecx, esi
call fcn.00407260
mov ecx, dword [ebp - 0x798]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.004071a0
mov dword [ebp - 0x7a0], 0
mov dword [ebp - 0x79c], 0
mov dword [ebp - 0x798], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x644]
cmp eax, 8
jb 0x415415
inc eax
lea ecx, [ebp - 0x658]
push eax
push dword [ebp - 0x658]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x644], 7
mov dword [ebp - 0x648], 0
mov word [ebp - 0x658], ax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x62c]
cmp eax, 8
jb 0x415457
inc eax
lea ecx, [ebp - 0x640]
push eax
push dword [ebp - 0x640]
call fcn.00404be0
xor eax, eax
mov dword [ebp - 0x62c], 7
mov word [ebp - 0x640], ax
mov al, bl
mov dword [ebp - 0x630], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005120a1
mov esp, ebp
pop ebp
ret