Function at 0x40fb90
Capabilities:
Resolve path using msvcrt

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x440
push ebx
push ebp
push esi
mov si, word [eax + 0x30]
test si, si
push edi
jne 0x40fbc0
push 0x401840
push 0xfe4
push 0
mov esi, 0x14c
call fcn.004314f0
add esp, 0xc
mov ebp, dword [esp + 0x458]
mov eax, esi
and eax, 0xffff
cmp eax, 0x1a6
jg 0x40fc18
cmp eax, 0x1a6
je 0x40fc11
add eax, 0xfffffeb4
cmp eax, 0x56
ja case.0x40fbee.336
xor ecx, ecx
mov cl, byte [eax + 0x40ff6c]
jmp dword [ecx*4 + 0x40ff58]
mov ebx, 0x401830
jmp 0x40fc41
mov ebx, 0x401820
jmp 0x40fc41
mov ebx, 0x401810
jmp 0x40fc41
mov ebx, 0x401800
jmp 0x40fc41
mov ebx, 0x4017f0
jmp 0x40fc41
cmp eax, 0x266
jg 0x40fe1b
je 0x40fe11
sub eax, 0x1c0
je 0x40fe07
sub eax, 0x30
je 0x40fe39
mov ebx, dword [esp + 0x10]
push 0x401748
push 0
call dword [sym.imp.MSVCRT.dll__tempnam]
mov esi, eax
add esp, 8
test esi, esi
jne 0x40fc6a
push 0x40173c
push 0x450
push eax
call fcn.00431420
add esp, 0xc
push 1
push 0x180
push 0x8302
push esi
call fcn.0040b370
push eax
call fcn.0040b890
push esi
call fcn.00451750
push esi
mov dword [ebp + 4], eax
call dword [sym.imp.MSVCRT.dll_free]
or ecx, 0xffffffff
mov edi, 0x4017e8
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x38]
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x4017e4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x38]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x38]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4017e4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
lea edx, [esp + 0x248]
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x4017e4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x248]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x248]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4017e4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], 0x4017dc
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x38]
and ecx, 3
mov dword [esp + 0x20], eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 0x4017d4
mov dword [esp + 0x24], 0x4017c8
mov dl, byte [ecx + 0x14b]
lea eax, [esp + 0x28]
test dl, dl
je 0x40fe43
mov dword [esp + 0x28], 0x4017bc
jmp 0x40fe55
mov ebx, 0x4017ac
jmp 0x40fc41
mov ebx, 0x40179c
jmp 0x40fc41
cmp eax, 0x601
jne case.0x40fbee.336
mov edx, dword [ebp]
push edx
push 0x620
push 0
call fcn.00431420
add esp, 0xc
mov ebx, 0x40178c
jmp 0x40fc41
mov dl, byte [ecx + 0x14c]
test dl, dl
je 0x40fe59
mov dword [esp + 0x28], 0x401774
lea eax, [esp + 0x2c]
mov dl, byte [ecx + 0x14d]
test dl, dl
je 0x40fe6c
mov dword [eax], 0x401760
add eax, 4
lea ecx, [esp + 0x248]
push 0
mov dword [eax], ecx
mov dword [eax + 4], 0
call dword [sym.imp.MSVCRT.dll_fflush]
add esp, 4
lea edx, [esp + 0x350]
lea eax, [esp + 0x10]
push 0
push 0
push edx
push eax
call dword [sym.imp.MSVCRT.dll___p__pgmptr]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.MSVCRT.dll__splitpath]
push 0x401758
lea edx, [esp + 0x368]
push 0x4017dc
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x164]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__makepath]
lea edx, [esp + 0x16c]
push 0
push edx
call dword [sym.imp.MSVCRT.dll__access]
add esp, 0x30
test eax, eax
jne 0x40ff04
lea eax, [esp + 0x14]
lea ecx, [esp + 0x144]
push eax
push ecx
push 0
call dword [sym.imp.MSVCRT.dll__spawnv]
add esp, 0xc
lea ecx, [esp + 0x144]
jmp 0x40ff1e
lea edx, [esp + 0x14]
push edx
push 0x40174c
push 0
call dword [sym.imp.MSVCRT.dll__spawnvp]
add esp, 0xc
mov ecx, 0x40174c
test eax, eax
je 0x40ff48
cmp eax, 0xffffffff
jne 0x40ff37
push ecx
push 0x486
push 0
call fcn.00431420
add esp, 0xc
mov eax, dword [ebp]
push 0x463
push eax
call fcn.00431420
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x440
ret 8