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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x8e4
mov eax, dword [0x1004200]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
push dword [edi + 0x18]
mov dword [ebp - 0x888], eax
lea eax, [ebp - 0x68]
push 0x32
push eax
call sub.msvcrt.dll_wcscpy_s
add esp, 0xc
lea eax, [ebp - 0x8a0]
push eax
lea eax, [ebp - 0x884]
push eax
push 0x104
push 0
lea eax, [ebp - 0x68]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x1002160
lea eax, [ebp - 0x68]
push eax
push 0x3ea
call fcn.0100204e
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x100237f
push ebx
push esi
mov ebx, 0x10017cc
push ebx
mov esi, 0x309
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscpy_s
lea eax, [ebp - 0x884]
push eax
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
push ebx
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
add esp, 0x24
cmp dword [edi + 0x1c], 0
je 0x1002206
push 0x1001738
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
mov ebx, dword [edi + 0x1c]
mov eax, ebx
add esp, 0xc
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x10021c2
sub eax, ecx
sar eax, 1
mov edx, eax
lea eax, [ebp - 0x67c]
lea edi, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10021db
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x1002304
push ebx
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
add esp, 0xc
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0xc], edi
jle 0x1002284
mov eax, dword [ebp - 0x888]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x88c], eax
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x1002221
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [ebp - 0x67c]
lea edi, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100223a
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x1002304
push 0x1001738
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
push dword [ebp - 0x88c]
lea eax, [ebp - 0x67c]
push esi
push eax
call sub.msvcrt.dll_wcscat_s
add esp, 0x18
inc ebx
xor edi, edi
cmp ebx, dword [ebp + 0xc]
jl 0x100220f
push 0x44
pop esi
push esi
lea eax, [ebp - 0x8e4]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov word [ebp - 0x8b2], ax
lea eax, [ebp - 0x89c]
push eax
lea eax, [ebp - 0x8e4]
push eax
push edi
push edi
mov dword [ebp - 0x8e4], esi
push edi
xor esi, esi
inc esi
push esi
push edi
push edi
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x884]
push eax
mov dword [ebp - 0x8e0], edi
mov dword [ebp - 0x8d8], edi
mov dword [ebp - 0x8b8], edi
mov dword [ebp - 0x8b0], edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x100233b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1002314
lea eax, [ebp - 0x68]
push eax
push 0x3ea
jmp 0x100235a
push 0x3e9
call fcn.0100204e
xor eax, eax
pop ecx
inc eax
jmp 0x100237d
cmp eax, 0x7b
jne 0x1002333
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x68]
push eax
push 0x3eb
call fcn.0100204e
add esp, 0xc
jmp 0x1002361
push eax
push 0x3ec
jmp 0x100235a
push 0xffffffffffffffff
push dword [ebp - 0x89c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x1002365
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x3ed
call fcn.0100204e
pop ecx
pop ecx
mov eax, esi
jmp 0x100237d
push dword [ebp - 0x898]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x89c]
call esi
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.01002a07
leave
ret 0xc