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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x488963
mov eax, dword fs:[0]
push eax
mov eax, 0x56d8
call fcn.0046a820
mov eax, dword [0x4bfcf0]
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
xor eax, eax
push 0x4ffe
mov word [ebp - 0x5628], ax
xor edi, edi
lea eax, [ebp - 0x5626]
push edi
push eax
call fcn.00466c70
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push edi
push eax
call fcn.00466c70
xor eax, eax
push esi
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push edi
push eax
call fcn.00466c70
xor eax, eax
push esi
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push edi
push eax
call fcn.00466c70
add esp, 0x30
mov esi, 0x104
push esi
lea eax, [ebp - 0x628]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x4c2954]
mov dword [ebp - 0x563c], eax
mov eax, dword [0x4c295c]
mov dword [ebp - 0x5640], eax
push esi
lea eax, [ebp - 0x218]
push eax
push 0x1a
call fcn.004460e3
add esp, 0xc
push str.__needcommunicate
lea ecx, [ebp - 0x562c]
call fcn.00418067
mov esi, str.__appdata_
push esi
mov dword [ebp - 4], edi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x218]
push eax
call fcn.00468f76
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov esi, 0x48faac
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
push edi
push 0x1c
lea eax, [ebp - 0x420]
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov ebx, str.__localappdata_
push ebx
call fcn.00468f76
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x420]
push eax
call fcn.00468f76
pop ecx
push eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x5630]
push eax
call fcn.00454a49
pop ecx
mov eax, dword [ebp - 0x5630]
mov byte [ebp - 4], 1
cmp dword [eax - 0xc], edi
je 0x453079
mov ebx, str.__curinstallpath_
push ebx
call fcn.00468f76
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov eax, dword [ebp - 0x5630]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
call fcn.00417d0b
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x5634]
push eax
call fcn.00454aec
pop ecx
push eax
lea ecx, [ebp - 0x5630]
mov byte [ebp - 4], 2
call fcn.00417f16
mov ecx, dword [ebp - 0x5634]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00417891
mov eax, dword [ebp - 0x5630]
cmp dword [eax - 0xc], edi
je 0x4530f5
mov ebx, str.__curstartmenu_
push ebx
call fcn.00468f76
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov eax, dword [ebp - 0x5630]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
call fcn.00417d0b
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x5634]
push eax
call fcn.00454df1
pop ecx
push eax
lea ecx, [ebp - 0x5630]
mov byte [ebp - 4], 3
call fcn.00417f16
mov ecx, dword [ebp - 0x5634]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00417891
mov eax, dword [ebp - 0x5630]
cmp dword [eax - 0xc], edi
je 0x453171
mov ebx, str.__waitclearlist_
push ebx
call fcn.00468f76
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov eax, dword [ebp - 0x5630]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
call fcn.00417d0b
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
lea eax, [ebp - 0x5634]
push eax
call fcn.00454b8f
pop ecx
push eax
lea ecx, [ebp - 0x5630]
mov byte [ebp - 4], 4
call fcn.00417f16
mov ecx, dword [ebp - 0x5634]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00417891
mov eax, dword [ebp - 0x5630]
cmp dword [eax - 0xc], edi
je 0x4531d9
mov esi, str.__curlocale
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov eax, dword [ebp - 0x5630]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
call fcn.00417d0b
lea eax, [ebp - 0x5634]
push eax
call fcn.00454c1f
pop ecx
push eax
lea ecx, [ebp - 0x5630]
mov byte [ebp - 4], 5
call fcn.00417f16
mov ecx, dword [ebp - 0x5634]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.00417891
mov eax, dword [ebp - 0x5630]
cmp dword [eax - 0xc], edi
je 0x453241
mov esi, str.__lang
push esi
call fcn.00468f76
pop ecx
push eax
push esi
lea ecx, [ebp - 0x562c]
call fcn.00417d0b
mov eax, dword [ebp - 0x5630]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
call fcn.00417d0b
push str.uninstallsend_message
lea ecx, [ebp - 0x5634]
call fcn.00418067
lea eax, [ebp - 0x5634]
push eax
lea eax, [ebp - 0x5638]
push eax
mov byte [ebp - 4], 6
call fcn.00445e75
pop ecx
pop ecx
mov ecx, dword [ebp - 0x5634]
add ecx, 0xfffffff0
mov byte [ebp - 4], 8
call fcn.00417891
lea eax, [ebp - 0x5638]
push eax
lea eax, [ebp - 0x5644]
push str.__msgwndname
push eax
call fcn.00425dd1
add esp, 0xc
mov eax, dword [eax]
push dword [eax - 0xc]
lea ecx, [ebp - 0x562c]
push eax
mov byte [ebp - 4], 9
call fcn.00417d0b
mov ecx, dword [ebp - 0x5644]
add ecx, 0xfffffff0
mov byte [ebp - 4], 8
call fcn.00417891
push dword [ebp - 0x562c]
lea eax, [ebp - 0x5628]
push eax
call fcn.0046b7e9
lea eax, [ebp - 0x5628]
push str.__upgradepower
push eax
call fcn.0046b7e9
xor ebx, ebx
inc ebx
add esp, 0x10
mov esi, ebx
cmp dword [ebp - 0x563c], ebx
jle 0x453323
lea eax, [ebp - 0x5628]
push 0x48fd94
push eax
call fcn.0046b7e9
mov eax, dword [ebp - 0x5640]
push dword [eax + esi*4]
lea eax, [ebp - 0x5628]
push eax
call fcn.0046b7e9
add esp, 0x10
inc esi
cmp esi, dword [ebp - 0x563c]
jl 0x4532f1
push 0x38
lea eax, [ebp - 0x56b4]
push edi
push eax
mov dword [ebp - 0x56b8], 0x3c
call fcn.00466c70
lea eax, [ebp - 0x628]
mov dword [ebp - 0x56a8], eax
lea eax, [ebp - 0x5628]
mov dword [ebp - 0x56a4], eax
add esp, 0xc
lea eax, [ebp - 0x56b8]
push eax
mov dword [ebp - 0x56b4], 0x500
mov dword [ebp - 0x5680], edi
mov dword [ebp - 0x56b0], edi
mov dword [ebp - 0x56ac], str.runas
mov dword [ebp - 0x569c], ebx
mov dword [ebp - 0x5698], edi
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x4533e3
push 5
pop esi
mov dword [0x4c2020], esi
mov ecx, dword [ebp - 0x5638]
add ecx, 0xfffffff0
call fcn.00417891
mov ecx, dword [ebp - 0x5630]
add ecx, 0xfffffff0
call fcn.00417891
mov ecx, dword [ebp - 0x562c]
add ecx, 0xfffffff0
call fcn.00417891
mov eax, esi
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.00466576
leave
ret
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push edi
push dword [0x4c1fe0]
mov esi, 0x4c2024
push edi
mov ecx, esi
call fcn.00450dc5
mov dword [ebp - 0x567c], 0x499928
mov dword [ebp - 0x5678], edi
mov dword [ebp - 0x5674], edi
mov dword [ebp - 0x5670], edi
mov dword [ebp - 0x566c], edi
mov dword [ebp - 0x5668], edi
mov dword [ebp - 0x5664], edi
lea eax, [ebp - 0x567c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.0045267a
lea eax, [ebp - 0x5638]
push eax
lea ecx, [ebp - 0x56e4]
call fcn.00453f75
lea ecx, [ebp - 0x567c]
mov byte [ebp - 4], 0xb
call fcn.00450d41
mov ecx, esi
call fcn.0045286b
mov ecx, esi
call fcn.00452844
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [0x4c2020]
lea ecx, [ebp - 0x56e4]
mov byte [ebp - 4], 0xa
call fcn.00453e8f
lea ecx, [ebp - 0x566c]
call fcn.00450c58
lea ecx, [ebp - 0x5678]
call fcn.00450c58
jmp 0x45339d