Function at 0x409e30
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x8a0204]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x10c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x114], eax
push 0x85fbf4
mov ecx, dword [ebp - 0x114]
call fcn.0046f800
movzx ecx, al
test ecx, ecx
je 0x40a100
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x88]
cmp ecx, dword [eax + 0x554]
jne 0x409f96
call fcn.00409db0
movzx edx, al
test edx, edx
jne 0x409e99
jmp 0x40a11b
push 0x85fbfc
call fcn.00409bd0
add esp, 4
movzx eax, al
test eax, eax
je 0x409f06
push 0x85fab6
push 0x85fab7
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx - 0x1c]
push edx
call fcn.004060d0
add esp, 0xc
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
je 0x409f01
push 0x85fc08
call fcn.00409c80
add esp, 4
mov eax, dword [ebp - 0x10c]
sub eax, 0x20
mov dword [ebp - 0x11c], eax
push 1
mov ecx, dword [ebp - 0x11c]
call fcn.0040bc30
jmp 0x409f8c
push 0x85fc14
call fcn.00409bd0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x409f70
push 0x85fad5
push 0x85fad6
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx - 0x1c]
push eax
call fcn.004060d0
add esp, 0xc
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x409f6e
push 0x85fc20
call fcn.00409c80
add esp, 4
mov ecx, dword [ebp - 0x10c]
sub ecx, 0x20
mov dword [ebp - 0x124], ecx
push 1
mov ecx, dword [ebp - 0x124]
call fcn.0040bc30
jmp 0x409f8c
mov edx, dword [ebp - 0x10c]
sub edx, 0x20
mov dword [ebp - 0x128], edx
push 1
mov ecx, dword [ebp - 0x128]
call fcn.0040bc30
jmp 0x40a11b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [eax + 0x88]
cmp edx, dword [ecx + 0x560]
jne 0x409fcf
push 3
push 0
push 0
push str.https:__static.88gog.com_web_page_protocol_protocol.html
push 0x85fc68
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x40a11b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [eax + 0x88]
cmp edx, dword [ecx + 0x558]
jne 0x40a0db
push 0x104
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.00774aa0
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x154], 0
lea edx, [ebp - 0x108]
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], 0x85fc70
mov dword [ebp - 0x144], 0x4000
lea eax, [ebp - 0x154]
push eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x40a0d9
lea ecx, [ebp - 0x108]
push ecx
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40a0d9
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx + 0x570]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0x570]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x108]
push ecx
mov ecx, dword [ebp - 0x12c]
call dword [ebp - 0x130]
jmp 0x40a100
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x88]
cmp ecx, dword [eax + 0x564]
jne 0x40a100
mov ecx, dword [ebp - 0x10c]
sub ecx, 0x20
call fcn.0040db70
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x134]
call fcn.0046e230
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0075c173
mov esp, ebp
pop ebp
ret 4