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

Disassembly:
sub esp, 0x8d8
mov eax, dword [0x4a9150]
xor eax, esp
mov dword [esp + 0x8d4], eax
mov eax, dword [esp + 0x8e0]
push ebx
push ebp
mov ebp, dword [esp + 0x8e4]
push esi
xor ecx, ecx
push 0x3a
push ecx
lea edx, [esp + 0x52]
push edx
mov dword [esp + 0x34], eax
mov word [esp + 0x54], cx
call fcn.0043f2b0
mov edx, dword [0x4ab7f4]
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
add esp, 0xc
push 0x1e
xor eax, eax
lea ecx, [esp + 0x4c]
push ecx
push 0x259
push edx
mov word [esp + 0x44], ax
mov dword [esp + 0x46], eax
mov dword [esp + 0x4a], eax
mov dword [esp + 0x4e], eax
mov dword [esp + 0x52], eax
mov word [esp + 0x56], ax
call ebx
mov ecx, dword [0x4ab7f4]
push 0xa
mov esi, eax
lea eax, [esp + 0x38]
push eax
push 0x25a
push ecx
call ebx
test esi, esi
je 0x42fc58
test eax, eax
je 0x42fc58
mov edx, 0x23
cmp dx, word [esp + 0x48]
je 0x42fc4b
mov eax, edx
cmp ax, word [esp + 0x34]
je 0x42fc4b
push edi
push 0x48ee60
call fcn.00414e90
lea ecx, [esp + 0x3c]
push ecx
call fcn.0043f268
lea edx, [esp + 0x20]
push edx
mov edi, eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x60]
push str._u._u._u
push edx
call fcn.00441e6f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
add esp, 0x1c
push 0xffffffffffffffff
push 0
push 0
push 0
push eax
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.00427af0
push 0
call fcn.0044186f
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.00440030
mov esi, eax
push esi
push str.Time_diff:__d
call fcn.00414e90
add esp, 8
cmp esi, edi
pop edi
jle 0x42fc58
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xca]
push ecx
mov word [esp + 0xcc], ax
call fcn.0043f2b0
xor edx, edx
push 0x3a
push edx
lea eax, [esp + 0x9a]
push eax
mov word [esp + 0x9c], dx
call fcn.0043f2b0
add esp, 0x18
lea ecx, [esp + 0xc0]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xf
lea edx, [esp + 0xc4]
push 0x48ee10
push edx
call fcn.0044026a
add esp, 0xc
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ecx, [esp + 0xc0]
test eax, eax
je 0x42fae6
push ecx
push 0x1e
lea edx, [esp + 0x8c]
push edx
push 0x49eb64
push 0x48ee0c
push 0x48ee04
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x84]
push eax
push str.X__W_ah
call fcn.00414e90
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x98]
push str._u._u._u
push ecx
call fcn.00441e6f
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 0x1c
push 0xffffffffffffffff
push 0
push 0
push 0
push edx
push eax
push ecx
lea ecx, [esp + 0x48]
call fcn.00427af0
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
sbb eax, dword [esp + 0x24]
push 0
push 0x15180
push eax
push edx
call fcn.00440030
test eax, eax
jne 0x42fb0b
test edx, edx
jne 0x42fb0b
jmp 0x42fc58
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x42fb0b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4da]
push eax
mov word [esp + 0x4dc], dx
call fcn.0043f2b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x6ee]
push edx
mov word [esp + 0x6f0], cx
call fcn.0043f2b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2ea]
push ecx
mov word [esp + 0x2ec], ax
call fcn.0043f2b0
add esp, 0x24
push str._Y._m._d
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x28]
call fcn.0042f7e0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc0]
push eax
push ecx
push 0x48ee0c
push 0x48ee04
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x4ab7f4]
push 0x104
lea edx, [esp + 0x6dc]
push edx
push 0xeb
push eax
call ebx
mov edx, dword [0x4ab7f4]
push 0x104
lea ecx, [esp + 0x4d4]
push ecx
push 0xea
push edx
call ebx
push ebp
lea eax, [esp + 0x4d4]
push eax
lea ecx, [esp + 0x2d0]
push ecx
call fcn.004112e0
add esp, 0xc
push 0x24
lea edx, [esp + 0x2cc]
push edx
lea eax, [esp + 0x6e0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x42fc40
mov ecx, dword [esp + 0x28]
push 5
push 0
push 0
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x18]
call fcn.0040d560
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x8d4]
xor ecx, esp
call fcn.0043f097
add esp, 0x8d8
ret
lea ecx, [esp + 0x18]
call fcn.0040d560
jmp 0x42fc58
push 0x48edb4
call fcn.00414e90
add esp, 4
mov ecx, dword [esp + 0x8e0]
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0043f097
add esp, 0x8d8
ret