Function at 0x42f680
Capabilities:
Check if file exists
Copy file
Create process on windows
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa70
mov ax, word [0x4d6e34]
push ebx
push esi
mov ebx, dword [ebp + 8]
push edi
mov word [ebp - 0x868], ax
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x866]
rep stosd dword es:[edi], eax
test ebx, ebx
stosw word es:[edi], ax
jne 0x42f6b5
xor edi, edi
jmp 0x42f6e2
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.004473e0
mov edi, esp
push esi
push edi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov word [edi], 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
mov ebx, 0x103
push 0x463604
lea ecx, [ebp - 0x868]
push ebx
push ecx
call dword [sym.imp.MSVCRT.dll__snwprintf]
lea edx, [ebp - 0x868]
push edx
call fcn.0042e9e0
xor esi, esi
lea eax, [ebp - 0x868]
push esi
push eax
call fcn.0040ef80
add esp, 0x1c
test eax, eax
je 0x42fa52
lea ecx, [ebp - 0x868]
push esi
lea edx, [ebp + 8]
push ecx
push edx
mov dword [ebp + 8], esi
call fcn.004264b0
mov eax, dword [ebp + 8]
add esp, 0xc
cmp eax, esi
je 0x42fa40
push esi
push str.IsSilenceUpdate
push str.globalsetting
push eax
call fcn.00426ab0
mov dx, word [0x4d6e34]
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x24e]
mov word [ebp - 0x250], dx
mov word [ebp - 0x458], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x456]
mov word [ebp - 0x660], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x65e]
lea edx, [ebp - 4]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 8]
lea ecx, [ebp - 0x458]
push eax
push ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x250]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
push edx
push eax
xor ebx, ebx
push str.rename
push ebx
push ecx
call fcn.00426800
add esp, 0x2c
test eax, eax
je 0x42f8e1
mov ebx, dword [sym.imp.MSVCRT.dll_wcslen]
lea edx, [ebp - 0x250]
push edx
call ebx
add esp, 4
cmp eax, 0x103
jbe 0x42f7fb
mov eax, 0x103
jmp 0x42f807
lea eax, [ebp - 0x250]
push eax
call ebx
add esp, 4
lea ecx, [ebp - 0x250]
push eax
lea edx, [ebp - 0x660]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_wcsncpy]
lea eax, [ebp - 0x660]
push eax
call ebx
add esp, 0x10
lea ecx, [ebp - 0x660]
lea edx, [ebp - 0x250]
mov word [ebp + eax*2 - 0x662], 0x5f
push 3
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea eax, [ebp - 0x250]
push 0
lea ecx, [ebp - 0x458]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea edx, [ebp - 0x458]
push 0
push edx
call fcn.0042ed40
lea eax, [ebp - 0x660]
push 0
push eax
call fcn.0042ed40
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x250]
lea edx, [ebp - 0x458]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x458]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x660]
rep stosd dword es:[edi], eax
mov eax, 0x103
lea ecx, [ebp - 8]
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
push ecx
lea eax, [ebp - 4]
push edx
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x250]
push eax
inc esi
push ecx
push str.rename
push esi
push edx
call fcn.00426800
add esp, 0x2c
test eax, eax
jne 0x42f7e1
xor ebx, ebx
lea eax, [ebp - 8]
lea ecx, [ebp - 0x458]
push eax
lea edx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x250]
push edx
push eax
push str.register
push ebx
push ecx
mov dword [ebp - 0xc], ebx
call fcn.00426800
add esp, 0x1c
test eax, eax
je 0x42fa33
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dx, word [0x4d6e34]
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0xa6e]
mov word [ebp - 0xa70], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x250]
lea ecx, [ebp - 0xa70]
push eax
push 0x4689e4
push 0x103
push ecx
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov ecx, 0xf
xor eax, eax
lea edi, [ebp - 0x48]
add esp, 0x10
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x250]
lea edx, [ebp - 0xa70]
push eax
mov dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x44], 0x40
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], str.open
mov dword [ebp - 0x38], 0x4689c8
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x2c], ebx
call esi
test eax, eax
je 0x42f9d5
lea ecx, [ebp - 0x250]
push ecx
call fcn.00413ac0
add esp, 4
test eax, eax
je 0x42f9d5
lea edx, [ebp - 0x48]
push edx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x42f9d5
mov eax, dword [ebp - 0x10]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x82
xor eax, eax
lea edi, [ebp - 0x250]
lea edx, [ebp - 8]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x458]
rep stosd dword es:[edi], eax
mov eax, 0x103
lea ecx, [ebp - 0x458]
push edx
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
push ecx
lea edx, [ebp - 4]
lea ecx, [ebp - 0x250]
push edx
mov edx, dword [ebp + 8]
inc eax
push ecx
push str.register
push eax
push edx
mov dword [ebp - 0xc], eax
call fcn.00426800
add esp, 0x1c
test eax, eax
jne 0x42f91a
lea eax, [ebp + 8]
push ebx
push eax
call fcn.00426640
add esp, 8
mov eax, 1
lea esp, [ebp - 0xa7c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea esp, [ebp - 0xa7c]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret