Function at 0x405f13
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 0x406549
push esi
lea eax, [ebp - 0xa58]
push 8
push eax
call fcn.00401082
lea ecx, [ebp + 8]
call fcn.00401764
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 0x40642a
xor edi, edi
push 0x482054
push edi
lea ecx, [ebp + 8]
call fcn.004016d3
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00406553
push 1
push str._install
lea ecx, [ebp - 0xa5c]
call fcn.004066d0
test eax, eax
push 1
je 0x40602e
push str.forall
lea ecx, [ebp - 0xa5c]
call fcn.004066d0
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test eax, eax
je 0x405ff5
call fcn.00405d9a
test eax, eax
jne 0x405feb
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x405fca
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x405fd9
mov eax, dword [0x481530]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.004080f7
call fcn.00405ced
cmp eax, edi
pop ecx
je 0x405feb
push 1
pop esi
jmp 0x40642c
mov dword [0x48c098], 1
call fcn.00459631
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x406012
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x406021
mov eax, dword [0x481530]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.004080f7
call fcn.00405e35
pop ecx
mov esi, eax
jmp 0x40642c
mov esi, str._uninstall
lea ecx, [ebp - 0xa5c]
push esi
call fcn.004066d0
test eax, eax
je 0x406350
push esi
lea ecx, [ebp - 0xa5c]
call fcn.00406712
mov esi, eax
cmp esi, edi
jne 0x40605d
xor eax, eax
jmp 0x406064
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
mov ecx, 0x48c080
call fcn.0040148c
mov eax, dword [0x48c080]
cmp dword [eax - 8], edi
je 0x4060c5
call fcn.00459631
lea ecx, [ebp - 0x4c]
call fcn.004666e1
mov dword [ebp - 0x4c], 0x47b954
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x496340
call fcn.00405ea4
push edi
push 0x408cb8
push esi
push 0xd6
push dword [0x496348]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x405fe3
lea ecx, [ebp - 0x4c]
call fcn.004666e1
mov eax, dword [0x481530]
push 0x105
lea ecx, [ebp - 4]
mov dword [ebp - 0x4c], 0x47b954
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
call fcn.004016d3
mov ebx, 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
lea ecx, [ebp - 4]
call fcn.0040173b
lea eax, [ebp - 4]
lea ecx, [ebp - 0x18]
push eax
call fcn.00401521
mov eax, dword [0x481530]
push 0x80
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.004088de
lea eax, [ebp - 0x10]
push str._uninstall.exe
push eax
mov esi, 0x481c7c
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.0040836d
push eax
lea eax, [ebp - 8]
push eax
call fcn.00408321
mov eax, dword [eax]
lea ecx, [ebp - 4]
push eax
push dword [eax - 8]
call fcn.00401657
lea ecx, [ebp - 8]
call fcn.0040139b
lea ecx, [ebp - 0x14]
call fcn.0040139b
lea eax, [ebp - 4]
push eax
call fcn.0044d09c
lea eax, [ebp - 0xc]
push eax
call fcn.0044c670
pop ecx
lea eax, [ebp - 0x10]
pop ecx
push 0x481fd8
push eax
lea eax, [ebp - 8]
push esi
push eax
call fcn.0040836d
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00408321
mov eax, dword [eax]
lea ecx, [ebp - 0xc]
push eax
push dword [eax - 8]
call fcn.00401657
lea ecx, [ebp - 0x14]
call fcn.0040139b
lea ecx, [ebp - 8]
call fcn.0040139b
lea eax, [ebp - 0xc]
push eax
call fcn.0044d09c
mov eax, dword [0x48be0c]
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 [0x481530]
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 0x406278
push 0x4815f0
lea ecx, [ebp - 8]
call fcn.004013c7
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push 3
push eax
call fcn.0044e20c
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004015b5
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004015b5
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401521
lea ecx, [ebp - 0x14]
call fcn.0040139b
lea ecx, [ebp - 0x24]
call fcn.0040139b
lea ecx, [ebp - 0x20]
call fcn.0040139b
lea ecx, [ebp - 8]
call fcn.0040139b
push 0x10
push edi
push dword [ebp - 0x1c]
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x406318
mov esi, 0x494f48
lea ecx, [ebp - 0x28]
push esi
call fcn.00401355
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
call fcn.00401521
push edi
push 0x481a34
call fcn.00463a78
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00401521
push 0x481fd4
lea ecx, [ebp - 8]
call fcn.004013c7
cmp ebx, edi
mov esi, 0x481eb8
jne 0x4062c6
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.0040836d
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004015b5
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.0040139b
lea ecx, [ebp - 0x24]
call fcn.0040139b
lea ecx, [ebp - 8]
call fcn.0040139b
lea ecx, [ebp - 0x28]
call fcn.0040139b
lea ecx, [ebp - 0x1c]
call fcn.0040139b
lea ecx, [ebp - 0xc]
call fcn.0040139b
lea ecx, [ebp - 0x10]
call fcn.0040139b
lea ecx, [ebp - 0x18]
call fcn.0040139b
lea ecx, [ebp - 4]
call fcn.0040139b
lea ecx, [ebp + 8]
call fcn.0040139b
push 1
pop eax
jmp 0x406436
mov eax, dword [0x48be0c]
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.00407ed4
push 0x5c
push dword [ebp - 4]
call fcn.0046e3c2
pop ecx
cmp eax, esi
pop ecx
je 0x4063aa
sub eax, dword [ebp - 4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4063b9
push 0x2f
lea ecx, [ebp - 4]
call fcn.004087b5
cmp eax, 0xffffffff
je 0x406420
inc eax
lea ecx, [ebp - 4]
push eax
push esi
call fcn.00408871
lea ecx, [ebp - 4]
call fcn.00401764
push dword [ebp - 4]
call ebx
push esi
push str.install
lea ecx, [ebp - 4]
call fcn.00401799
test eax, eax
jge 0x406407
push esi
push str.inst_all
lea ecx, [ebp - 4]
call fcn.00401799
test eax, eax
jge 0x406407
push esi
push str.setup
lea ecx, [ebp - 4]
call fcn.00401799
test eax, eax
jl 0x406420
call fcn.00459631
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00401355
call fcn.00405e35
pop ecx
mov esi, eax
lea ecx, [ebp - 4]
call fcn.0040139b
jmp 0x40642c
xor esi, esi
lea ecx, [ebp + 8]
call fcn.0040139b
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret