Function at 0x405f14
Capabilities:
Copy file
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa5c
push ebx
push esi
push edi
mov esi, 0x100
push 0x40654a
push esi
lea eax, [ebp - 0xa58]
push 8
push eax
call fcn.00401082
lea ecx, [ebp + 8]
call fcn.00401765
push dword [ebp + 8]
mov ebx, dword [sym.imp.USER32.dll_CharLowerW]
call ebx
mov eax, dword [ebp + 8]
cmp dword [eax - 8], esi
jge 0x40642b
xor edi, edi
push 0x47f044
push edi
lea ecx, [ebp + 8]
call fcn.004016d4
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00406554
push 1
push str._install
lea ecx, [ebp - 0xa5c]
call fcn.004066d1
test eax, eax
push 1
je 0x40602f
push str.forall
lea ecx, [ebp - 0xa5c]
call fcn.004066d1
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test eax, eax
je 0x405ff6
call fcn.00405d9b
test eax, eax
jne 0x405fec
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x405fcb
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x405fda
mov eax, dword [0x47e520]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040833f
call fcn.00405cee
cmp eax, edi
pop ecx
je 0x405fec
push 1
pop esi
jmp 0x40642d
mov dword [0x488df8], 1
call fcn.00456b59
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x406013
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x406022
mov eax, dword [0x47e520]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040833f
call fcn.00405e36
pop ecx
mov esi, eax
jmp 0x40642d
mov esi, str._uninstall
lea ecx, [ebp - 0xa5c]
push esi
call fcn.004066d1
test eax, eax
je 0x406351
push esi
lea ecx, [ebp - 0xa5c]
call fcn.00406713
mov esi, eax
cmp esi, edi
jne 0x40605e
xor eax, eax
jmp 0x406065
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
mov ecx, 0x488de0
call fcn.0040148d
mov eax, dword [0x488de0]
cmp dword [eax - 8], edi
je 0x4060c6
call fcn.00456b59
lea ecx, [ebp - 0x4c]
call fcn.00412dfe
mov dword [ebp - 0x4c], 0x478904
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x492fe0
call fcn.00405ea5
push edi
push 0x408f00
push esi
push 0xd6
push dword [0x492fe8]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x405fe4
lea ecx, [ebp - 0x4c]
call fcn.00412dfe
mov eax, dword [0x47e520]
push 0x105
lea ecx, [ebp - 4]
mov dword [ebp - 0x4c], 0x478904
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
call fcn.004016d4
mov ebx, 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
lea ecx, [ebp - 4]
call fcn.0040173c
lea eax, [ebp - 4]
lea ecx, [ebp - 0x18]
push eax
call fcn.00401522
mov eax, dword [0x47e520]
push 0x80
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.00408b26
lea eax, [ebp - 0x10]
push str._uninstall.exe
push eax
mov esi, 0x47ec6c
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.004085b5
push eax
lea eax, [ebp - 8]
push eax
call fcn.00408569
mov eax, dword [eax]
lea ecx, [ebp - 4]
push eax
push dword [eax - 8]
call fcn.00401658
lea ecx, [ebp - 8]
call fcn.0040139c
lea ecx, [ebp - 0x14]
call fcn.0040139c
lea eax, [ebp - 4]
push eax
call fcn.0044ae5e
lea eax, [ebp - 0xc]
push eax
call fcn.0044a432
pop ecx
lea eax, [ebp - 0x10]
pop ecx
push 0x47efc8
push eax
lea eax, [ebp - 8]
push esi
push eax
call fcn.004085b5
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00408569
mov eax, dword [eax]
lea ecx, [ebp - 0xc]
push eax
push dword [eax - 8]
call fcn.00401658
lea ecx, [ebp - 0x14]
call fcn.0040139c
lea ecx, [ebp - 8]
call fcn.0040139c
lea eax, [ebp - 0xc]
push eax
call fcn.0044ae5e
mov eax, dword [0x488b6c]
pop ecx
mov dword [ebp - 0x258], eax
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x254]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x258]
push ebx
xor edi, edi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x47e520]
push edi
push dword [ebp - 4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x406279
push 0x47e5e0
lea ecx, [ebp - 8]
call fcn.004013c8
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push 3
push eax
call fcn.0044bfce
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004015b6
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004015b6
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401522
lea ecx, [ebp - 0x14]
call fcn.0040139c
lea ecx, [ebp - 0x24]
call fcn.0040139c
lea ecx, [ebp - 0x20]
call fcn.0040139c
lea ecx, [ebp - 8]
call fcn.0040139c
push 0x10
push edi
push dword [ebp - 0x1c]
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x406319
mov esi, 0x491c10
lea ecx, [ebp - 0x28]
push esi
call fcn.00401356
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
call fcn.00401522
push edi
push 0x47ea24
call fcn.00461045
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00401522
push 0x47efc4
lea ecx, [ebp - 8]
call fcn.004013c8
cmp ebx, edi
mov esi, 0x47eea8
jne 0x4062c7
mov esi, str.open
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push str._runas__uninstall_
push eax
call fcn.004085b5
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004015b6
push 5
push dword [ebp - 0x18]
push dword [eax]
push dword [ebp - 4]
push esi
push edi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x20]
call fcn.0040139c
lea ecx, [ebp - 0x24]
call fcn.0040139c
lea ecx, [ebp - 8]
call fcn.0040139c
lea ecx, [ebp - 0x28]
call fcn.0040139c
lea ecx, [ebp - 0x1c]
call fcn.0040139c
lea ecx, [ebp - 0xc]
call fcn.0040139c
lea ecx, [ebp - 0x10]
call fcn.0040139c
lea ecx, [ebp - 0x18]
call fcn.0040139c
lea ecx, [ebp - 4]
call fcn.0040139c
lea ecx, [ebp + 8]
call fcn.0040139c
push 1
pop eax
jmp 0x406437
mov eax, dword [0x488b6c]
mov ecx, 0x81
mov dword [ebp - 0x258], eax
xor eax, eax
lea edi, [ebp - 0x254]
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x258]
xor esi, esi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x258]
lea ecx, [ebp - 4]
push eax
call fcn.0040811c
push 0x5c
push dword [ebp - 4]
call fcn.0046bb02
pop ecx
cmp eax, esi
pop ecx
je 0x4063ab
sub eax, dword [ebp - 4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4063ba
push 0x2f
lea ecx, [ebp - 4]
call fcn.004089fd
cmp eax, 0xffffffff
je 0x406421
inc eax
lea ecx, [ebp - 4]
push eax
push esi
call fcn.00408ab9
lea ecx, [ebp - 4]
call fcn.00401765
push dword [ebp - 4]
call ebx
push esi
push str.install
lea ecx, [ebp - 4]
call fcn.0040179a
test eax, eax
jge 0x406408
push esi
push str.inst_all
lea ecx, [ebp - 4]
call fcn.0040179a
test eax, eax
jge 0x406408
push esi
push str.setup
lea ecx, [ebp - 4]
call fcn.0040179a
test eax, eax
jl 0x406421
call fcn.00456b59
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00401356
call fcn.00405e36
pop ecx
mov esi, eax
lea ecx, [ebp - 4]
call fcn.0040139c
jmp 0x40642d
xor esi, esi
lea ecx, [ebp + 8]
call fcn.0040139c
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret