Function at 0x10020b0
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 0x1002120
lea eax, [ebp - 0x68]
push eax
push 0x3ea
call fcn.0100200e
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x100233f
push ebx
push esi
mov ebx, 0x100178c
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 0x10021c6
push 0x10016f8
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 0x1002182
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 0x100219b
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x10022c4
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 0x1002244
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 0x10021e1
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 0x10021fa
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x10022c4
push 0x10016f8
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 0x10021cf
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 0x10022fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x10022d4
lea eax, [ebp - 0x68]
push eax
push 0x3ea
jmp 0x100231a
push 0x3e9
call fcn.0100200e
xor eax, eax
pop ecx
inc eax
jmp 0x100233d
cmp eax, 0x7b
jne 0x10022f3
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x68]
push eax
push 0x3eb
call fcn.0100200e
add esp, 0xc
jmp 0x1002321
push eax
push 0x3ec
jmp 0x100231a
push 0xffffffffffffffff
push dword [ebp - 0x89c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x1002325
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x3ed
call fcn.0100200e
pop ecx
pop ecx
mov eax, esi
jmp 0x100233d
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.010029c7
leave
ret 0xc