Function at 0x40832d
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 0x408963
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 0x408844
xor edi, edi
push 0x4b02d4
push edi
lea ecx, [ebp + 8]
call fcn.00403c58
push eax
lea ecx, [ebp - 0xa5c]
call fcn.0040896d
push 1
push str._install
lea ecx, [ebp - 0xa5c]
call fcn.00408add
test eax, eax
push 1
je 0x408448
push str.forall
lea ecx, [ebp - 0xa5c]
call fcn.00408add
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
test eax, eax
je 0x40840f
call fcn.004081b4
test eax, eax
jne 0x408405
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x4083e4
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x4083f3
mov eax, dword [0x4af550]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040a750
call fcn.0040810a
cmp eax, edi
pop ecx
je 0x408405
push 1
pop esi
jmp 0x408846
mov dword [0x4bc7b0], 1
call fcn.004820e5
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
cmp dword [eax - 0xc], edi
jl 0x40842c
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call esi
jmp 0x40843b
mov eax, dword [0x4af550]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.0040a750
call fcn.0040824f
pop ecx
mov esi, eax
jmp 0x408846
mov esi, str._uninstall
lea ecx, [ebp - 0xa5c]
push esi
call fcn.00408add
test eax, eax
je 0x40876a
push esi
lea ecx, [ebp - 0xa5c]
call fcn.00408b1f
mov esi, eax
cmp esi, edi
jne 0x408477
xor eax, eax
jmp 0x40847e
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
mov ecx, 0x4bc798
call fcn.004039ec
mov eax, dword [0x4bc798]
cmp dword [eax - 8], edi
je 0x4084df
call fcn.004820e5
lea ecx, [ebp - 0x4c]
call fcn.00494675
mov dword [ebp - 0x4c], 0x4a99c4
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x4c69a0
call fcn.004082be
push edi
push 0x46a720
push esi
push 0xd6
push dword [0x4c69a8]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x4083fd
lea ecx, [ebp - 0x4c]
call fcn.00494675
mov eax, dword [0x4af550]
push 0x105
lea ecx, [ebp - 4]
mov dword [ebp - 0x4c], 0x4a99c4
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 [0x4af550]
push 0x80
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.0040af1b
lea eax, [ebp - 0x10]
push str._uninstall.exe
push eax
mov esi, 0x4afefc
lea eax, [ebp - 0x14]
push esi
push eax
call fcn.0040a9a2
push eax
lea eax, [ebp - 8]
push eax
call fcn.0040a956
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.0045fecc
lea eax, [ebp - 0xc]
push eax
call fcn.0045f431
pop ecx
lea eax, [ebp - 0x10]
pop ecx
push 0x4b0258
push eax
lea eax, [ebp - 8]
push esi
push eax
call fcn.0040a9a2
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040a956
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.0045fecc
mov eax, dword [0x4bc51c]
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 [0x4af550]
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 0x408692
push 0x4af6b4
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.00461337
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 0x408732
mov esi, 0x4c55b8
lea ecx, [ebp - 0x28]
push esi
call fcn.004038b5
lea eax, [ebp - 0xc]
mov ecx, esi
push eax
call fcn.00403a8c
push edi
push 0x4afcb4
call fcn.0048ef58
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00403a8c
push 0x4b0254
lea ecx, [ebp - 8]
call fcn.00403927
cmp ebx, edi
mov esi, 0x4b0138
jne 0x4086e0
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.0040a9a2
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 0x408850
mov eax, dword [0x4bc51c]
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.0040a529
push 0x5c
push dword [ebp - 4]
call fcn.0049ce62
pop ecx
cmp eax, esi
pop ecx
je 0x4087c4
sub eax, dword [ebp - 4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4087d3
push 0x2f
lea ecx, [ebp - 4]
call fcn.0040adf2
cmp eax, 0xffffffff
je 0x40883a
inc eax
lea ecx, [ebp - 4]
push eax
push esi
call fcn.0040aeae
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 0x408821
push esi
push str.inst_all
lea ecx, [ebp - 4]
call fcn.00403d34
test eax, eax
jge 0x408821
push esi
push str.setup
lea ecx, [ebp - 4]
call fcn.00403d34
test eax, eax
jl 0x40883a
call fcn.004820e5
push ecx
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004038b5
call fcn.0040824f
pop ecx
mov esi, eax
lea ecx, [ebp - 4]
call fcn.004038fb
jmp 0x408846
xor esi, esi
lea ecx, [ebp + 8]
call fcn.004038fb
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret