Function at 0x412c10
Capabilities:
Check if file exists
Create process on windows
Delete file
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ac6b
mov eax, dword fs:[0]
push eax
mov eax, 0x1554
call fcn.0043d050
mov eax, dword [0x47f06c]
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 esi, ecx
mov dword [ebp - 0x14d4], esi
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0043f640
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x208
push 0
push eax
call fcn.0043f640
add esp, 0xc
lea eax, [ebp - 0xa38]
push 0x208
push 0
push eax
call fcn.0043f640
add esp, 0xc
mov dword [ebp - 0x14d0], 0
lea edx, [esi + 0x404]
lea ecx, [ebp - 0x218]
push 0x104
call fcn.0040fd90
add esp, 4
cmp word [ebp + eax*2 - 0x21a], 0x5c
jne 0x412cd6
lea eax, [eax*2 - 2]
cmp eax, 0x208
jae 0x413672
xor ecx, ecx
mov word [ebp + eax - 0x218], cx
cmp dword [esi + 0x1c0], 0
jne 0x412d3e
cmp dword [0x48408c], 6
jb 0x412d3e
lea ecx, [ebp - 0x218]
call fcn.004203a0
test eax, eax
je 0x412d3e
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x412d3e
lea ecx, [ebp - 0x218]
call fcn.0041cc90
test eax, eax
jne 0x412d3e
push ecx
mov ecx, esi
call fcn.004127a0
mov edi, eax
test edi, edi
jne 0x412d37
cmp dword [esi + 0x1c8], eax
je 0x412d37
push 0x472b68
push 0x472b7c
mov ecx, esi
call fcn.00412640
mov eax, edi
jmp 0x413656
lea ecx, [ebp - 0x218]
call fcn.00426710
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x413629
test al, 0x10
je 0x413629
push ecx
push 0x472ba4
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0xa38]
call fcn.0041d370
add esp, 8
cmp dword [esi + 0x1c0], 0
jne 0x412db5
cmp dword [esi + 0x1c8], 0
jne 0x412db5
push 0x41
push 0x472bc0
mov ecx, 8
call fcn.0041feb0
push eax
mov ecx, esi
call fcn.004252b0
cmp eax, 1
jne 0x413654
cmp dword [esi + 0x1a4], 0
jne 0x412fc2
mov eax, dword [esi + 0x610]
mov dword [ebp - 0x14cc], eax
lea eax, [ebp - 0x628]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x628]
push ecx
mov ecx, edx
call fcn.00426620
add esp, 4
mov edi, 0x47fa50
nop dword [eax + eax]
push 0x472bd0
push dword [edi]
call fcn.00449366
neg eax
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x830]
sbb ebx, ebx
add esp, 4
inc ebx
push dword [edi]
call fcn.0041d370
add esp, 8
cmp dword [ebp - 0x14cc], 0
je 0x412f16
lea eax, [ebp - 0xc40]
mov ecx, esi
push eax
push dword [edi]
call fcn.00412a90
lea eax, [ebp - 0x14d0]
push eax
lea eax, [ebp - 0x830]
push eax
lea edx, [ebp - 0xc40]
lea ecx, [esi + 0x60c]
call fcn.00426f60
add esp, 8
test eax, eax
jne 0x412e90
lea eax, [ebp - 0x830]
push eax
lea edx, [ebp - 0xc40]
lea ecx, [esi + 0x60c]
call fcn.00426c10
add esp, 4
test eax, eax
je 0x4131ac
test ebx, ebx
je 0x412f62
mov eax, dword [esi + 0x1e0]
cmp word [eax], 0x3a
je 0x412f62
push eax
push dword [edi]
call fcn.00449366
add esp, 8
test eax, eax
je 0x412f62
push ecx
push dword [esi + 0x1e0]
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0xe48]
call fcn.0041d370
lea eax, [ebp - 0x14d0]
push eax
lea eax, [ebp - 0xe48]
push eax
lea edx, [ebp - 0xc40]
lea ecx, [esi + 0x60c]
call fcn.00426f60
add esp, 0x10
test eax, eax
jne 0x412f62
lea eax, [ebp - 0xe48]
push eax
lea edx, [ebp - 0xc40]
lea ecx, [esi + 0x60c]
call fcn.00426c10
add esp, 4
jmp 0x412f5a
push ecx
push dword [edi]
lea edx, [ebp - 0x628]
lea ecx, [ebp - 0x420]
call fcn.0041d370
lea eax, [ebp - 0x14d0]
push eax
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x420]
call fcn.00426a20
add esp, 0xc
test eax, eax
jne 0x412f62
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x420]
call fcn.004267b0
test eax, eax
je 0x4131ac
add edi, 4
cmp edi, str.TLIB_XXVAL_STATUS__T
jne 0x412e00
mov eax, 0x47f9c8
mov edi, 0x47f9b0
xor ebx, ebx
cmp eax, edi
sbb eax, eax
and eax, 0xfffffffa
add eax, 6
mov esi, eax
nop dword [eax]
push ecx
push dword [edi]
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x830]
call fcn.0041d370
add esp, 8
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
inc ebx
lea edi, [edi + 4]
cmp ebx, esi
jne 0x412f90
mov esi, dword [ebp - 0x14d4]
cmp dword [esi + 0x1c0], 0
jne 0x4130d2
mov eax, dword [esi + 0x1f0]
xor edi, edi
mov ecx, dword [esi + 0x1ec]
mov dword [ebp - 0x1448], eax
mov eax, dword [esi + 0x1b0]
mov dword [ebp - 0x14d8], eax
mov eax, dword [esi + 0x1b4]
mov dword [ebp - 0x144c], ecx
mov dword [ebp - 0x1444], 0
mov dword [ebp - 0x14d4], eax
test ecx, ecx
je 0x4130d2
lea ebx, [ebp - 0x144c]
mov dword [ebp - 0x14cc], edi
nop
lea edx, [ebp - 0x420]
sub edx, ecx
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x413030
test edi, edi
jne 0x413056
lea eax, [ebp - 0x420]
push eax
push dword [ebx]
call fcn.004147a0
test eax, eax
jne 0x41308b
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413060
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push 0x472bfc
push 0x472c18
lea eax, [eax + ecx*2]
push eax
call fcn.00410080
add esp, 0xc
mov eax, dword [ebp - 0x14cc]
cmp dword [ebp + eax - 0x14d8], 0
je 0x4130b2
sub esp, 0xc
lea edx, [ebp - 0x420]
lea ecx, [ebp - 0xa38]
call fcn.00426450
add esp, 0xc
inc edi
lea ebx, [ebp - 0x144c]
lea eax, [edi*4]
add ebx, eax
mov dword [ebp - 0x14cc], eax
mov ecx, dword [ebx]
test ecx, ecx
jne 0x413020
push 0
push 0x80000001
lea ecx, [ebp - 0x1560]
call fcn.004216d0
push ecx
push 0x472c20
lea ecx, [ebp - 0x1560]
mov dword [ebp - 4], 0
call fcn.00421890
test eax, eax
je 0x41337e
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0043f640
add esp, 8
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x628]
push 0x472c54
call fcn.0041d370
add esp, 8
cmp dword [esi + 0x1c0], 0
je 0x413219
push 0
push 0x472c70
lea ecx, [ebp - 0x1560]
call fcn.004218f0
test eax, eax
je 0x413219
push ecx
lea eax, [ebp - 0x420]
push eax
push 0x472c84
lea ecx, [ebp - 0x1560]
call fcn.00421be0
test eax, eax
je 0x41320e
lea ecx, [ebp - 0x420]
lea eax, [ebp - 0x628]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4131fb
test dx, dx
je 0x4131a8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4131fb
add eax, 4
add ecx, 4
test dx, dx
jne 0x413186
xor eax, eax
jmp 0x413200
cmp dword [esi + 0x1c0], 0
je 0x4131e5
push 5
lea eax, [ebp - 0x218]
push eax
push 0x472bec
lea eax, [ebp - 0xa38]
push eax
push 0x472bf0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0xffffffffffffffff
mov ecx, esi
call fcn.00414670
jmp 0x413654
mov ecx, 7
call fcn.0041feb0
push eax
lea eax, [ebp - 0x830]
jmp 0x41364c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41320e
mov dword [esi + 0x1b8], 1
lea ecx, [ebp - 0x1560]
call fcn.004219b0
cmp dword [esi + 0x1b8], 0
je 0x413373
push 1
push 0x472c90
lea ecx, [ebp - 0x1560]
call fcn.004218f0
test eax, eax
je 0x413373
push 0x472ca4
push str.DisplayName
lea ecx, [ebp - 0x1560]
call fcn.00421d80
push ecx
push 0x472cc4
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x420]
call fcn.0041d370
lea ecx, [ebp - 0x420]
add esp, 8
add ecx, 0xfffffffe
nop dword [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x413280
mov eax, dword [0x472cd8]
mov dword [ecx], eax
mov eax, dword [0x472cdc]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x420]
push eax
push str.UninstallString
lea ecx, [ebp - 0x1560]
call fcn.00421d80
lea eax, [ebp - 0x628]
push eax
push str.DisplayIcon
lea ecx, [ebp - 0x1560]
call fcn.00421d80
call fcn.0040ffa0
push eax
push str.DisplayVersion
lea ecx, [ebp - 0x1560]
call fcn.00421c50
push str.H.Shirouzu__FastCopy_Lab__LLC.
push str.Publisher
lea ecx, [ebp - 0x1560]
call fcn.00421c50
sub esp, 8
lea ecx, [ebp - 0x1560]
call fcn.004219d0
mov ecx, 0xf
call fcn.00420040
push eax
push str.HelpLink
lea ecx, [ebp - 0x1560]
call fcn.00421c50
mov ecx, 0x10
call fcn.00420040
push eax
push str.URLUpdateInfo
lea ecx, [ebp - 0x1560]
call fcn.00421c50
mov ecx, 0x11
call fcn.00420040
push eax
push str.URLInfoAbout
lea ecx, [ebp - 0x1560]
call fcn.00421c50
push str.pub_setup_fastcopy.jp
push 0x472d8c
lea ecx, [ebp - 0x1560]
call fcn.00421c50
lea ecx, [ebp - 0x1560]
call fcn.004219b0
lea ecx, [ebp - 0x1560]
call fcn.004219b0
cmp dword [esi + 0x1b8], 0
je 0x4133d1
sub esp, 0xc
lea ecx, [ebp - 0x1560]
call fcn.00421730
test eax, eax
je 0x4133d1
push 1
push 0x472da0
lea ecx, [ebp - 0x1560]
call fcn.004218f0
test eax, eax
je 0x4133d1
lea eax, [ebp - 0x218]
push eax
push str.Path
lea ecx, [ebp - 0x1560]
call fcn.00421d30
lea ecx, [ebp - 0x1560]
call fcn.004219b0
call fcn.00420390
test eax, eax
mov eax, dword [0x48408c]
je 0x41346e
cmp eax, 0xa
ja 0x413404
jne 0x41346e
mov ecx, dword [0x484090]
test ecx, ecx
jne 0x413404
cmp dword [0x484094], 0x55f0
jb 0x41346e
push 0x38
lea eax, [ebp - 0x1488]
mov dword [ebp - 0x148c], 0x3c
push 0
push eax
call fcn.0043f640
add esp, 0xc
lea eax, [ebp - 0x218]
push str.ReRegisterSparsePackage
push str.FastEx11.dll
push eax
lea eax, [ebp - 0x1440]
push 0x472e0c
push eax
call fcn.00410080
add esp, 0x14
mov dword [ebp - 0x147c], 0x472e24
lea eax, [ebp - 0x1440]
mov dword [ebp - 0x1478], eax
lea eax, [ebp - 0x148c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov eax, dword [0x48408c]
cmp dword [esi + 0x1c0], 0
je 0x4134c2
mov eax, dword [esi + 0x1e0]
lea edi, [ebp - 0xa38]
cmp word [eax], 0x3a
je 0x4134a1
push ecx
lea edi, [ebp - 0xe48]
push eax
lea edx, [ebp - 0x218]
mov ecx, edi
call fcn.0041d370
add esp, 8
push 5
lea eax, [ebp - 0x218]
push eax
push str._UPDATED
push edi
push 0x472e54
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x41360e
cmp eax, 6
jb 0x4135a0
lea ecx, [ebp - 0x218]
call fcn.004203a0
test eax, eax
je 0x4135a0
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.0043f640
add esp, 0xc
mov dword [ebp - 0x14cc], 0
lea eax, [ebp - 0x14cc]
push eax
lea eax, [ebp - 0xc40]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov ecx, dword [esi + 0x1e4]
test ecx, ecx
je 0x413542
lea edx, [ebp - 0x628]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x413530
jmp 0x413586
push 0x208
lea eax, [ebp - 0xe48]
push 0
push eax
call fcn.0043f640
add esp, 0xc
lea eax, [ebp - 0xe48]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push ecx
push dword [ebp - 0x14cc]
lea edx, [ebp - 0xe48]
lea ecx, [ebp - 0x628]
call fcn.0041d370
add esp, 8
push dword [esi + 0x1e8]
lea edx, [ebp - 0x628]
lea ecx, [ebp - 0x218]
call fcn.00413680
add esp, 4
cmp dword [esi + 0x1c8], 0
jne 0x41360e
cmp dword [ebp - 0x14d0], 0
mov eax, 9
mov ecx, 3
cmovne ecx, eax
call fcn.0041feb0
push esi
push eax
lea ecx, [ebp - 0x14c8]
call fcn.004153b0
push 0
lea ecx, [ebp - 0x14c8]
call fcn.00427420
cmp eax, 1
jne 0x413603
push 5
lea eax, [ebp - 0x218]
push eax
push str._INSTALL
lea eax, [ebp - 0xa38]
push eax
push 0x472e7c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x14c8]
call fcn.00415420
push 0
mov ecx, esi
call fcn.00414670
lea ecx, [ebp - 0x1560]
call fcn.00421710
mov eax, 1
jmp 0x413656
cmp dword [esi + 0x1c8], 0
jne 0x41363b
cmp dword [esi + 0x1c0], 0
jne 0x413654
mov ecx, 6
call fcn.0041feb0
push eax
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.00412640
xor eax, eax
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.0043bdd7
mov esp, ebp
pop ebp
ret
call fcn.0043c2fc
int3