Function at 0x42de20
Capabilities:
Check if file exists
Create process on windows
Get common file path
Read .ini file

Disassembly:
sub esp, 0x8d4
mov eax, dword [0x4b3c40]
xor eax, esp
mov dword [esp + 0x8d0], eax
push ebx
mov ebx, dword [esp + 0x8dc]
push ebp
mov ebp, dword [esp + 0x8e4]
push esi
push edi
xor eax, eax
push 0x3a
push eax
lea ecx, [esp + 0x52]
push ecx
mov word [esp + 0x54], ax
call fcn.004453c0
mov ecx, dword [0x4b5dec]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
xor eax, eax
add esp, 0xc
push 0x1e
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov dword [esp + 0x46], eax
mov word [esp + 0x4a], ax
lea eax, [esp + 0x4c]
push eax
push 0x259
xor edx, edx
push ecx
mov word [esp + 0x44], dx
call edi
push 0xa
lea edx, [esp + 0x38]
push edx
mov esi, eax
mov eax, dword [0x4b5dec]
push 0x25a
push eax
call edi
test esi, esi
je 0x42e1b6
test eax, eax
je 0x42e1b6
mov ecx, 0x23
cmp cx, word [esp + 0x48]
je 0x42e1b6
mov edx, ecx
cmp dx, word [esp + 0x34]
je 0x42e1b6
lea eax, [esp + 0x34]
push eax
call fcn.0044642a
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
mov esi, eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
push str._u._u._u
push ecx
call fcn.004489e0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 0x18
push 0xffffffffffffffff
push 0
push 0
push 0
push edx
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.004294f0
push 0
call fcn.004482d7
add esp, 4
mov dword [esp + 0x24], eax
sub eax, dword [esp + 0x1c]
push 0
mov dword [esp + 0x2c], edx
sbb edx, dword [esp + 0x24]
push 0x15180
push edx
push eax
call fcn.00447f30
cmp eax, esi
jle 0x42e1b6
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0xca]
push eax
mov word [esp + 0xcc], dx
call fcn.004453c0
xor ecx, ecx
push 0x3a
push ecx
lea edx, [esp + 0x9a]
push edx
mov word [esp + 0x9c], cx
call fcn.004453c0
add esp, 0x18
lea eax, [esp + 0xc0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xf
lea ecx, [esp + 0xc4]
push str.preprompted.tmp
push ecx
call fcn.00446602
add esp, 0xc
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42e066
lea eax, [esp + 0xc0]
push eax
push 0x1e
lea ecx, [esp + 0x8c]
push ecx
push 0x4a6c2c
push 0x49619c
push 0x496754
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x90]
push str._u._u._u
push edx
call fcn.004489e0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add esp, 0x14
push 0xffffffffffffffff
push 0
push 0
push 0
push eax
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.004294f0
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
sbb ecx, dword [esp + 0x28]
push 0
push 0x15180
push ecx
push eax
call fcn.00447f30
test eax, eax
jne 0x42e092
test edx, edx
jne 0x42e092
jmp 0x42e1b6
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea edx, [esp + 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x42e092
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x4da]
push ecx
mov word [esp + 0x4dc], ax
call fcn.004453c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x6ee]
push eax
mov word [esp + 0x6f0], dx
call fcn.004453c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2ea]
push edx
mov word [esp + 0x2ec], cx
call fcn.004453c0
add esp, 0x24
push 0x496740
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
call fcn.0042dd90
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0xc0]
push ecx
push edx
push 0x49619c
push 0x496754
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [0x4b5dec]
push 0x104
lea eax, [esp + 0x6dc]
push eax
push 0xeb
push ecx
call edi
mov eax, dword [0x4b5dec]
push 0x104
lea edx, [esp + 0x4d4]
push edx
push 0xea
push eax
call edi
push ebx
lea ecx, [esp + 0x4d4]
push ecx
lea edx, [esp + 0x2d0]
push edx
call fcn.00429250
add esp, 0xc
push 0x24
lea eax, [esp + 0x2cc]
push eax
lea ecx, [esp + 0x6e0]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x42e1ad
push 5
push 0
push 0
push ebp
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x1c]
call fcn.0040da40
mov eax, 1
jmp 0x42e1b8
lea ecx, [esp + 0x1c]
call fcn.0040da40
xor eax, eax
mov ecx, dword [esp + 0x8e0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004453a3
add esp, 0x8d4
ret