Function at 0x4082ec
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 0x408922
push esi
lea eax, [ebp - 0xa58]
push 8
push eax
call fcn.004017c6
lea ecx, [ebp + 8]
call fcn.00403cfb
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 0x408803
xor edi, edi
push 0x4b12d4
push edi
lea ecx, [ebp + 8]
call fcn.00403c58
push eax
lea ecx, [ebp - 0xa5c]
call fcn.0040892c
push 1
push str._install
lea ecx, [ebp - 0xa5c]
call fcn.00408a9c
test eax, eax
push 1
je 0x408407
push str.forall
lea ecx, [ebp - 0xa5c]
call fcn.00408a9c
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test eax, eax
je 0x4083ce
call fcn.00408173
test eax, eax
jne 0x4083c4
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x4083a3
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x4083b2
mov eax, dword [0x4b0550]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040a70f
call fcn.004080c9
cmp eax, edi
pop ecx
je 0x4083c4
push 1
pop esi
jmp 0x408805
mov dword [0x4bd878], 1
call fcn.0048267e
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x4083eb
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x4083fa
mov eax, dword [0x4b0550]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040a70f
call fcn.0040820e
pop ecx
mov esi, eax
jmp 0x408805
mov esi, str._uninstall
lea ecx, [ebp - 0xa5c]
push esi
call fcn.00408a9c
test eax, eax
je 0x408729
push esi
lea ecx, [ebp - 0xa5c]
call fcn.00408ade
mov esi, eax
cmp esi, edi
jne 0x408436
xor eax, eax
jmp 0x40843d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
mov ecx, 0x4bd860
call fcn.004039ec
mov eax, dword [0x4bd860]
cmp dword [eax - 8], edi
je 0x40849e
call fcn.0048267e
lea ecx, [ebp - 0x4c]
call fcn.00494b5a
mov dword [ebp - 0x4c], 0x4aa9d4
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x4c7a88
call fcn.0040827d
push edi
push 0x40b2b4
push esi
push 0xd6
push dword [0x4c7a90]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x4083bc
lea ecx, [ebp - 0x4c]
call fcn.00494b5a
mov eax, dword [0x4b0550]
push 0x105
lea ecx, [ebp - 4]
mov dword [ebp - 0x4c], 0x4aa9d4
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], eax
call fcn.00403c58
mov ebx, 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
lea ecx, [ebp - 4]
call fcn.00403cd2
lea eax, [ebp - 4]
lea ecx, [ebp - 0x18]
push eax
call fcn.00403a8c
mov eax, dword [0x4b0550]
push 0x80
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.0040aeda
lea eax, [ebp - 0x10]
push str._uninstall.exe
push eax
mov esi, 0x4b0efc
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.0040a961
push eax
lea eax, [ebp - 8]
push eax
call fcn.0040a915
mov eax, dword [eax]
lea ecx, [ebp - 4]
push eax
push dword [eax - 8]
call fcn.00403bd8
lea ecx, [ebp - 8]
call fcn.004038fb
lea ecx, [ebp - 0x14]
call fcn.004038fb
lea eax, [ebp - 4]
push eax
call fcn.004602be
lea eax, [ebp - 0xc]
push eax
call fcn.0045f823
pop ecx
lea eax, [ebp - 0x10]
pop ecx
push 0x4b1258
push eax
lea eax, [ebp - 8]
push esi
push eax
call fcn.0040a961
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040a915
mov eax, dword [eax]
lea ecx, [ebp - 0xc]
push eax
push dword [eax - 8]
call fcn.00403bd8
lea ecx, [ebp - 0x14]
call fcn.004038fb
lea ecx, [ebp - 8]
call fcn.004038fb
lea eax, [ebp - 0xc]
push eax
call fcn.004602be
mov eax, dword [0x4bd5dc]
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 [0x4b0550]
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 0x408651
push 0x4b06b4
lea ecx, [ebp - 8]
call fcn.00403927
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push 3
push eax
call fcn.00461770
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00403b20
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00403b20
push eax
lea ecx, [ebp - 0x1c]
call fcn.00403a8c
lea ecx, [ebp - 0x14]
call fcn.004038fb
lea ecx, [ebp - 0x24]
call fcn.004038fb
lea ecx, [ebp - 0x20]
call fcn.004038fb
lea ecx, [ebp - 8]
call fcn.004038fb
push 0x10
push edi
push dword [ebp - 0x1c]
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x4086f1
mov esi, 0x4c6680
lea ecx, [ebp - 0x28]
push esi
call fcn.004038b5
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
call fcn.00403a8c
push edi
push 0x4b0cb4
call fcn.0048f43d
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00403a8c
push 0x4b1254
lea ecx, [ebp - 8]
call fcn.00403927
cmp ebx, edi
mov esi, 0x4b1138
jne 0x40869f
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.0040a961
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00403b20
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.004038fb
lea ecx, [ebp - 0x24]
call fcn.004038fb
lea ecx, [ebp - 8]
call fcn.004038fb
lea ecx, [ebp - 0x28]
call fcn.004038fb
lea ecx, [ebp - 0x1c]
call fcn.004038fb
lea ecx, [ebp - 0xc]
call fcn.004038fb
lea ecx, [ebp - 0x10]
call fcn.004038fb
lea ecx, [ebp - 0x18]
call fcn.004038fb
lea ecx, [ebp - 4]
call fcn.004038fb
lea ecx, [ebp + 8]
call fcn.004038fb
push 1
pop eax
jmp 0x40880f
mov eax, dword [0x4bd5dc]
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.0040a4e8
push 0x5c
push dword [ebp - 4]
call fcn.0049d3b2
pop ecx
cmp eax, esi
pop ecx
je 0x408783
sub eax, dword [ebp - 4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x408792
push 0x2f
lea ecx, [ebp - 4]
call fcn.0040adb1
cmp eax, 0xffffffff
je 0x4087f9
inc eax
lea ecx, [ebp - 4]
push eax
push esi
call fcn.0040ae6d
lea ecx, [ebp - 4]
call fcn.00403cfb
push dword [ebp - 4]
call ebx
push esi
push str.install
lea ecx, [ebp - 4]
call fcn.00403d34
test eax, eax
jge 0x4087e0
push esi
push str.inst_all
lea ecx, [ebp - 4]
call fcn.00403d34
test eax, eax
jge 0x4087e0
push esi
push str.setup
lea ecx, [ebp - 4]
call fcn.00403d34
test eax, eax
jl 0x4087f9
call fcn.0048267e
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004038b5
call fcn.0040820e
pop ecx
mov esi, eax
lea ecx, [ebp - 4]
call fcn.004038fb
jmp 0x408805
xor esi, esi
lea ecx, [ebp + 8]
call fcn.004038fb
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret