Function at 0x402fcd
Capabilities:
Create process on windows
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x304
push ebx
push esi
push edi
push 0x100
push 0x408db0
call fcn.0040241f
add esp, 8
push 0x100
push 0x408cb0
call fcn.0040241f
add esp, 8
push str.UNINST.INI
push 0x408cb0
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x408cb0
call fcn.00402488
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x403042
push 0x10
push 0x4079ec
push str.Not_Found_UNINST.INI
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x403384
mov eax, dword [ebp + 8]
mov dword [0x407118], eax
mov byte [0x408bb0], 0
push 0x408cb0
push 0x100
push 0x408bb0
push 0x407a0c
push str.RESOURCE
push 0x407a1c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4030a7
push 0x408bb0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x407118], eax
cmp dword [0x407118], 0
jne 0x4030a7
mov eax, dword [ebp + 8]
mov dword [0x407118], eax
mov byte [0x408ab0], 0
push 0x408cb0
push 0x100
push 0x408ab0
push 0x407a24
push str.PLUGINS
push 0x407a30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4030ec
push 0x408ab0
call fcn.00401f10
add esp, 4
push 0x408cb0
push 0
push str.RESTART
push 0x407a40
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x40711c], eax
push 0x408cb0
push 0
push str.HIDE
push str.CONTROL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x407128], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x100
push 0x407130
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x100
push 0x407230
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x407330
push 0
call fcn.00402d1d
add esp, 8
push 0x407430
push 0
call fcn.00402d64
add esp, 8
push 0x407530
push 0
call fcn.00402dab
add esp, 8
push 0x407630
push 0
call fcn.00402df2
add esp, 8
push 0x407730
push 0
call fcn.00402f85
add esp, 8
call fcn.004010d5
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4031dd
movsx eax, byte [0x408ab0]
test eax, eax
je 0x4031bb
call fcn.00401f87
mov eax, dword [ebp + 8]
cmp dword [0x407118], eax
je 0x4031d6
mov eax, dword [0x407118]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x403384
call fcn.00401fe1
call fcn.00401b9e
call fcn.0040207a
call fcn.00401ce2
movsx eax, byte [0x408ab0]
test eax, eax
je 0x403212
call fcn.00401f87
push 0x408ab0
call fcn.004020b0
add esp, 4
movsx eax, byte [0x408bb0]
test eax, eax
je 0x403249
mov eax, dword [ebp + 8]
cmp dword [0x407118], eax
je 0x40323c
mov eax, dword [0x407118]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x408bb0
call fcn.004020b0
add esp, 4
call fcn.00401d23
push 0x408cb0
call fcn.004020b0
add esp, 4
push 0x408db0
call fcn.00402a3e
add esp, 4
push 0x408db0
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.UNINST16.EXE
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x304]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00402c22
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40337a
push 0x100
lea eax, [ebp - 0x204]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x100
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 0x407a68
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x100
lea eax, [ebp - 0x204]
push eax
push 0x408db0
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 0x408db0
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movsx eax, byte [ebp + eax - 0x105]
cmp eax, 0x5c
jne 0x403345
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x105], 0
push 0x407a6c
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 5
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
mov eax, 1
jmp 0x403384
pop edi
pop esi
pop ebx
leave
ret 0x10