Function at 0x1002100
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 0x1002170
lea eax, [ebp - 0x68]
push eax
push 0x3ea
call fcn.0100205e
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x100238f
push ebx
push esi
mov ebx, 0x10017d4
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 0x1002216
push 0x1001740
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 0x10021d2
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 0x10021eb
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x1002314
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 0x1002294
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 0x1002231
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 0x100224a
sub eax, edi
sar eax, 1
lea eax, [eax + edx + 3]
cmp eax, esi
ja 0x1002314
push 0x1001740
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 0x100221f
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 0x100234b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1002324
lea eax, [ebp - 0x68]
push eax
push 0x3ea
jmp 0x100236a
push 0x3e9
call fcn.0100205e
xor eax, eax
pop ecx
inc eax
jmp 0x100238d
cmp eax, 0x7b
jne 0x1002343
lea eax, [ebp - 0x67c]
push eax
lea eax, [ebp - 0x68]
push eax
push 0x3eb
call fcn.0100205e
add esp, 0xc
jmp 0x1002371
push eax
push 0x3ec
jmp 0x100236a
push 0xffffffffffffffff
push dword [ebp - 0x89c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x1002375
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x3ed
call fcn.0100205e
pop ecx
pop ecx
mov eax, esi
jmp 0x100238d
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.01002a17
leave
ret 0xc