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

Disassembly:
push ebp
lea ebp, [esp - 0xb84]
sub esp, 0xc04
mov eax, dword [0x100598e8]
xor eax, ebp
mov dword [ebp + 0xb80], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 8]
mov ebx, dword [eax + 0x86c]
xor esi, esi
mov dword [ebp - 0x38], ebx
and dword [ebp - 0x38], 0xffff
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], esi
je 0x10013a11
lea ecx, [ebp - 0x34]
push ecx
push dword [ebp - 0x38]
push eax
call fcn.100126cd
mov ecx, eax
call fcn.1002a9ae
test eax, eax
jne 0x10013a0e
lea eax, [ebp - 0x34]
push eax
mov eax, dword [edi + 4]
push dword [ebp - 0x38]
mov ecx, dword [eax + 0x10]
call fcn.1000aa76
test eax, eax
je 0x10013a11
lea esi, [ebp - 0x34]
lea eax, [ebx - 0xf000]
mov ebx, 0xf000
cmp eax, 0xfff
ja 0x10013a7f
test esi, esi
je 0x10013a7f
lea eax, [ebp - 0x44]
push eax
mov dword [esi + 8], 0x1d
call fcn.1000d790
pop ecx
test eax, eax
jne 0x10013a3f
and dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0x3ec
jb 0x10013a7f
cmp dword [ebp - 0x3c], ebx
jne 0x10013a7f
mov eax, dword [edi + 8]
cmp dword [eax + 0x234], 2
lea ecx, [ebp - 0x40]
jne 0x10013a60
push 2
jmp 0x10013a62
push 3
call fcn.100107c9
push dword [eax]
lea eax, [esi + 0x250]
push 0x20
push eax
call fcn.10012a0b
lea ecx, [ebp - 0x40]
call fcn.1000e380
push dword [edi + 8]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0xc]
push esi
push dword [ebp - 0x3c]
call fcn.10029569
mov dword [ebp - 0x38], eax
mov esi, 0x208
cmp dword [ebp - 0x3c], ebx
je 0x10013aa8
cmp dword [ebp - 0x3c], 0x76
jne 0x10013ccd
push 0x410
xor ebx, ebx
lea eax, [ebp + 0x360]
push ebx
push eax
call fcn.10031310
add esp, 0xc
cmp dword [ebp - 0x38], ebx
jne 0x10013c91
push esi
lea eax, [ebp + 0x770]
push ebx
push eax
call fcn.10031310
push esi
lea eax, [ebp + 0x978]
push ebx
push eax
call fcn.10031310
add esp, 0x18
cmp dword [ebp - 0x3c], 0x76
jne 0x10013afe
lea eax, [ebp - 0x44]
push eax
call fcn.1000d790
pop ecx
test eax, eax
jne 0x10013afe
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x44], 0x3ec
jb 0x10013b32
mov eax, dword [edi + 8]
cmp dword [eax + 0x234], 2
jne 0x10013b32
mov ebx, 0x104
lea eax, [ebp + 0x770]
push ebx
push eax
call fcn.1000ec51
pop ecx
pop ecx
push 0x1004c5c0
push ebx
jmp 0x10013bda
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0x1004c594
push 0x1005bd1c
lea eax, [ebp + 0x770]
push eax
call ebx
test eax, eax
je 0x10013b67
lea eax, [ebp + 0x770]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10013b67
push 0x1004c57c
jmp 0x10013bd5
xor eax, eax
push esi
push eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x770]
push eax
call fcn.10031310
add esp, 0xc
push 0x1004c55c
push 0x1005bd1c
lea eax, [ebp + 0x770]
push eax
call ebx
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x770]
push eax
call fcn.1000cc3d
add esp, 0xc
test eax, eax
jne 0x10013bb4
and dword [ebp - 0x38], eax
and dword [ebp - 0x40], eax
mov eax, 0x90000
cmp dword [ebp - 0x38], eax
ja 0x10013bd0
jne 0x10013bc9
cmp dword [ebp - 0x40], 0x41a
jae 0x10013bd0
push 0x1004c534
jmp 0x10013bd5
push 0x1004c4fc
push 0x104
lea eax, [ebp + 0x978]
push eax
call fcn.10009101
push dword [0x1005cb6c]
lea eax, [ebp + 0x770]
push eax
call fcn.1000f01b
pop ecx
pop ecx
test eax, eax
je 0x10013c3e
push 0x3c
pop ebx
push ebx
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.10031310
lea eax, [ebp + 0x770]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x80], ebx
lea eax, [ebp + 0x978]
xor ebx, ebx
mov dword [ebp - 0x6c], eax
add esp, 0xc
lea eax, [ebp - 0x80]
inc ebx
push eax
mov dword [ebp - 0x7c], 0x1400
mov dword [ebp - 0x64], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
jmp 0x10013c41
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x44], 0x3ec
mov eax, dword [edi + 8]
push dword [eax + 0x87c]
jb 0x10013c7a
mov ecx, dword [eax + 0x234]
dec ecx
lea eax, [ebp + 0x360]
je 0x10013c73
dec ecx
je 0x10013c6c
push 0x1004c468
jmp 0x10013c85
push 0x1004c3d0
jmp 0x10013c85
push 0x1004c338
jmp 0x10013c85
push 0x1004c288
lea eax, [ebp + 0x360]
push esi
push eax
call fcn.1000e4b8
add esp, 0x10
jmp 0x10013cb2
mov eax, dword [edi + 8]
push dword [eax + 0x87c]
lea eax, [ebp + 0x360]
push 0x1004c208
push esi
push eax
call fcn.1000e4b8
xor ebx, ebx
add esp, 0x10
inc ebx
mov eax, dword [0x1005cc04]
test eax, eax
je 0x10013cc8
mov ecx, dword [eax]
lea edx, [ebp + 0x360]
push edx
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x38], ebx
jmp 0x10013cd0
xor ebx, ebx
inc ebx
xor eax, eax
cmp dword [0x1005cb70], eax
je 0x10013e35
cmp dword [ebp - 0x3c], 0x75
jne 0x10013dba
cmp dword [ebp - 0x38], eax
jne 0x10013e35
push esi
push eax
lea eax, [ebp + 0x978]
push eax
call fcn.10031310
push esi
lea eax, [ebp + 0x770]
push 0
push eax
call fcn.10031310
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
add esp, 0x18
push 0x1004c1d0
push 0x1005bd1c
lea eax, [ebp + 0x978]
push eax
call esi
lea eax, [ebp + 0x978]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10013d64
push 0x1004c19c
push 0x1005bd1c
lea eax, [ebp + 0x978]
push eax
call esi
push 0x1004c0e8
push 0x104
lea eax, [ebp + 0x770]
push eax
call fcn.10009101
push dword [0x1005cb6c]
lea eax, [ebp + 0x978]
push eax
call fcn.1000f01b
pop ecx
pop ecx
test eax, eax
je 0x10013db7
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.10031310
lea eax, [ebp + 0x978]
mov dword [ebp - 0x70], eax
lea eax, [ebp + 0x770]
mov dword [ebp - 0x6c], eax
add esp, 0xc
lea eax, [ebp - 0x80]
push eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], 0x1400
mov dword [ebp - 0x64], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x3c], 0x77
je 0x10013dc6
cmp dword [ebp - 0x3c], 0x78
jne 0x10013e35
cmp dword [ebp - 0x38], 0
jne 0x10013e35
mov eax, dword [edi + 8]
push dword [eax + 0x880]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
xor esi, esi
cmp eax, esi
je 0x10013e23
push 0x1004c0d0
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x10013e23
mov ecx, dword [0x1005bb00]
push esi
push esi
push 0xd02
cmp ecx, esi
je 0x10013e0f
mov eax, dword [ecx]
push esi
push 0x1004afc4
call dword [eax + 0x10]
jmp 0x10013e32
mov ecx, dword [0x1005cb6c]
mov eax, dword [ecx]
call dword [eax + 0x28]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10013e32
mov eax, dword [edi + 8]
push dword [eax + 0x230]
call fcn.1000d29a
pop ecx
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp + 0xb80]
mov eax, dword [ebp - 0x38]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10031770
add ebp, 0xb84
leave
ret